curatenie si fix target

This commit is contained in:
2026-04-10 14:04:59 +03:00
parent 24b682532e
commit 3dcff3ce6d
1247 changed files with 22172 additions and 144368 deletions
@@ -1,3 +0,0 @@
You can view the guide here
https://documentation.rcore.cz/paid-resources/rcore_casino/lucky-wheel-and-podium-vehicle#replacing-the-podium-vehicle
@@ -1,296 +0,0 @@
QBCore = nil
ESX = nil
PlayerData = {}
function RefreshPlayerData()
if Framework.Active == 1 then
PlayerData = ESX.GetPlayerData()
elseif Framework.Active == 2 then
PlayerData = UpdatePlayerDataForQBCore()
elseif Framework.Active == 3 then
PlayerData = UpdatePlayerDataForStandalone()
elseif Framework.Active == 4 then
PlayerData = UpdatePlayerDataForCustomFramework()
end
return PlayerData
end
function IsPlayerWorkingAtCasino()
return (PlayerData.job and PlayerData.job.name == Config.JobName)
end
--- @param job string
--- @param GradeArray table
--- will return true/False if player is in this grade.
function IsAtJob(job, GradeArray, MinGrade, MaxGrade)
if PlayerData == nil or PlayerData.job == nil then
return false
end
if not MaxGrade then
MaxGrade = MinGrade
end
local gradeLevel = PlayerData.job.grade
if not gradeLevel then
gradeLevel = 0
end
if GradeArray == nil then
return PlayerData.job.name == job and gradeLevel >= MinGrade and gradeLevel <= MaxGrade
end
return PlayerData.job.name == job and
(GradeArray[PlayerData.job.grade_name] or (gradeLevel >= MinGrade and gradeLevel <= MaxGrade))
end
function RemovePlayerHunger(itemName)
if Framework.Active == 1 then
TriggerEvent('esx_status:add', 'hunger', 200000)
end
if Framework.Active == 2 then
TriggerEvent("consumables:client:Eat", itemName)
end
if Framework.Active == 4 then
-- implement function that removes player hunger
end
end
function RemovePlayerThirst(itemName)
if Framework.Active == 1 then
TriggerEvent('esx_status:add', 'thirst', 200000)
end
if Framework.Active == 2 then
TriggerEvent("consumables:client:Drink", itemName)
end
if Framework.Active == 4 then
-- implement function that removes player thirst
end
end
if Framework.Active == 1 then
CreateThread(function()
GetCoreObject(Framework.Active, Framework.ES_EXTENDED_RESOURCE_NAME, function(object)
ESX = object
if ESX and ESX.IsPlayerLoaded() then
PlayerData = ESX.GetPlayerData()
TriggerEvent("rcore_casino:PlayerDataLoaded")
end
end)
end, "GetPlayerData ESX")
RegisterNetEvent(Events.ES_PLAYER_LOADED, function(data)
PlayerData = data
TriggerEvent("rcore_casino:DataHasChanged")
end)
RegisterNetEvent(Events.ES_PLAYER_JOB_UPDATE, function(data)
PlayerData.job = data
TriggerEvent("rcore_casino:DataHasChanged")
end)
end
if Framework.Active == 4 then
function UpdatePlayerDataForCustomFramework()
local inventory = {}
local accounts = {}
local job = {}
-- client side player inventory
table.insert(inventory, {
name = "casino_chips",
count = 123
})
-- client side player accounts
table.insert(accounts, {
money = 123,
name = "cash",
label = "cash"
})
table.insert(accounts, {
money = 123,
name = "bank",
label = "bank"
})
-- client side player job data
job = {
id = -1,
name = "unemployed",
label = "unemployed",
grade_name = "unemployed",
grade = 0,
}
local structure = {
job = job,
inventory = inventory,
accounts = accounts
}
return structure
end
PlayerData = UpdatePlayerDataForCustomFramework()
end
if Framework.Active == 3 then
function UpdatePlayerDataForStandalone()
if not PLAYER_CACHE then
return {}
end
local inventory = {}
for k, v in pairs(PLAYER_CACHE.fakeInventory) do
table.insert(inventory, {
name = k,
count = v
})
end
local accounts = {}
for k, v in pairs(PLAYER_CACHE.fakeAccounts or {}) do
table.insert(accounts, {
money = v,
name = k,
label = k
})
end
local x = {
job = {
id = -1,
name = PLAYER_CACHE.jobGrade and "casino" or "unemployed",
label = PLAYER_CACHE.jobGrade and "casino" or "unemployed",
grade_name = PLAYER_CACHE.jobGrade,
grade = PLAYER_CACHE.jobGrade
},
inventory = inventory,
accounts = accounts
}
return x
end
PlayerData = UpdatePlayerDataForStandalone()
end
if Framework.Active == 2 then
function UpdatePlayerDataForQBCore()
local pData = QBCore.Functions.GetPlayerData()
local jobName = "none"
local gradeName = "none"
local grade = 0
if pData.job then
jobName = pData.job.name or "none"
-- I am not sure if I should check if its nil or not so I will just make sure so it wont break anything.
if pData.job.grade then
local gradeData = pData.job.grade
gradeName = gradeData.name
if gradeData.level then
grade = gradeData.level
end
elseif pData.job.grades then
grade = GetGreatestNumber(pData.job.grades)
end
end
local stacked = {}
local inventory = {}
if pData.items then
for slot = 1, 50, 1 do
local v = pData.items[slot]
if v and v.name then
if stacked[v.name] then
stacked[v.name] = stacked[v.name] + (v.amount or v.count)
else
stacked[v.name] = (v.amount or v.count)
end
end
end
end
for k, v in pairs(stacked) do
table.insert(inventory, {
name = k,
count = v
})
end
local accounts = {}
for k, v in pairs(pData.money or {}) do
table.insert(accounts, {
money = v,
name = k,
label = k
})
end
local x = {
job = {
id = -1,
name = jobName,
grade_name = gradeName,
grade = grade
},
inventory = inventory,
accounts = accounts
}
return x
end
CreateThread(function()
GetCoreObject(Framework.Active, Framework.QB_CORE_RESOURCE_NAME, function(object)
QBCore = object
if QBCore and QBCore.Functions.GetPlayerData() then
PlayerData = UpdatePlayerDataForQBCore()
TriggerEvent("rcore_casino:PlayerDataLoaded")
end
end)
end, "GetPlayerData QBCore")
RegisterNetEvent(Events.QB_PLAYER_LOADED, function()
PlayerData = UpdatePlayerDataForQBCore()
TriggerEvent("rcore_casino:DataHasChanged")
end)
RegisterNetEvent(Events.QB_PLAYER_JOB_UPDATE, function()
PlayerData = UpdatePlayerDataForQBCore()
TriggerEvent("rcore_casino:DataHasChanged")
end)
end
-- Built-In HUD
function RegisterBuiltInHud()
if not Framework.BUILTIN_HUD_CHIPS then
return
end
if Framework.Active == 1 then
local chipTpl = '<div><img src="img/accounts/' .. Framework.BUILTIN_HUD_CHIPS_ICON .. '"/>&nbsp;{{chips}}</div>'
ESX.UI.HUD.RegisterElement('casinochips', 0, 0, chipTpl, {
chips = ESX.Math.GroupDigits(PLAYER_CHIPS)
})
end
end
function UpdateBuiltInHud()
if not Framework.BUILTIN_HUD_CHIPS then
return
end
if Framework.Active == 1 then
ESX.UI.HUD.UpdateElement("casinochips", {
chips = ESX.Math.GroupDigits(PLAYER_CHIPS)
})
end
end
function UnregisterBuiltInHud()
if not Framework.BUILTIN_HUD_CHIPS then
return
end
if Framework.Active == 1 then
ESX.UI.HUD.RemoveElement("casinochips")
end
end
@@ -1,65 +0,0 @@
.key {
font-family: 'Segoe UI Light', sans-serif;
color: black;
background: white;
border-radius: 2px;
user-select: none;
height: 2.8vh;
line-height: 2.8vh;
margin-right: 0.7vh;
margin-left: 1.0vh;
display: inline-block;
text-align: center;
}
.keySmall {
-webkit-text-stroke: 1.00px;
font-size: 1.70vh;
width: 2.8vh;
justify-content: center;
}
.keyBig {
-webkit-text-stroke: 0.50px;
font-size: 1.50vh;
width: 4.5vh;
}
.keyCustom {
height: 2.8vh;
width: 2.8vh;
margin-right: 1.0vh;
margin-left: 0.8vh;
}
#instbuttons {
background: #000000c6;
color: white;
width: fit-content;
display: none;
justify-content: center;
align-items: center;
height: 3.5vh;
padding-left: 1.0vh;
position: absolute;
font-family: 'Segoe UI Light', sans-serif;
font-weight: 100;
font-size: 1.70vh;
line-height: 1.70vh;
-webkit-text-stroke: 0.10px;
border-radius: 3px;
position: absolute;
bottom: 1.70vh;
right: 1.35vw;
}
.justText {
user-select: none;
margin-top: 1.2vh;
margin-left: 1.2vh;
}
body {
background: url(./img/unknown.png);
}
@@ -1,21 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="./css/instbuttons.css" type="text/css">
</head>
<body style="background: transparent !important;">
<div id="instbuttons">
</div>
<div id="nuichips" style="height: 5vh;display:none;">
<img style="float: left; width: auto; height: 100%;"
src=" data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAABVCAYAAAA49ahaAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAC4jAAAuIwF4pT92AAABiklEQVR42u2aWw6DMBDEQtX7X5l+gSpoIZCdfSD7AMmOW0EYaA0AAAAAAAAAAAAAIIgpeoCFeZ7n4TDTlCJP2BAWEk/DBUl23dRD5N+gjoJdNoqUuQvsIFe6QSaZu+BCubKFMwtdw4vEShatIHQVIBBrvmAloasEY7Gmi1UUuoowFPuKDvNEkCoAqQKQKgCpApAqgHNqsz+n8k8VwGNqhcfUhQpiSxUqC5nFlqz+vskkt3xJvYXXKTdYpJ0F8JTbO4uldGn1d2VQ71fUI7OezmG10JGYLO/jvWZ8eweJEOx9LXeR+i+gUnDkTdFd6lHwEcmpjm3WC2YK1y2BQiU/FCoUKsbhKxYqreWUqz7WUago9vAMRKFygyvlRJYvqR9bqFgKvrtnGamjAx/Jtl6znFTV8FnnolARkOrZP6pQsf5xQ1uqLZnOsyPw7C+4BNFSCXjkjaI7PIWKYWgKFePAFCqGQasWKr1k+kJFsqf3hlsUgqM/3giX+osroqMFAgAAAAAAAAAAAACk4gPL3+w48nO4igAAAABJRU5ErkJggg==" />
<div id="nuichipsvalue"
style="float: left; line-height: 5vh;vertical-align:middle; font-size: 3vh; font-weight: bold; color: white;">
12345</div>
</div>
</body>
<script src="./scripts/instbuttons.js" type="text/javascript"></script>
</html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 308 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 761 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

@@ -1,111 +0,0 @@
var container = document.getElementById("instbuttons");
var inputId = 0;
var keyMap = {
44: [0, "Q.png", 2, "rb.png"],
46: [0, "E.png", 2, "dirr.png"],
49: [0, "F", 2, "y.png"],
134: [0, "D", 2, "rb.png"],
139: [0, "S", 0, "RT"],
176: [0, "176_pc.png", 2, "a.png"],
177: [1, "177_pc.png", 2, "b.png"],
187: [0, "187.png", 2, "dird.png"],
188: [0, "188.png", 2, "diru.png"],
189: [0, "189_pc.png", 2, "dirl.png"],
190: [0, "190_pc.png", 2, "dirr.png"],
193: [0, "193_pc.png", 2, "x.png"],
201: [0, "176_pc.png", 2, "a.png"],
202: [0, "Esc.png", 2, "b.png"],
203: [0, "193_pc.png", 2, "x.png"],
204: [0, "Tab.png", 2, "y.png"],
206: [0, "E.png", 2, "rb.png"],
207: [1, "207.png", 0, "LT"],
208: [1, "208.png", 0, "RT"],
210: [1, "LCtrl.png", 2, "r.png"],
237: [2, "237.png", 2, "237.png"],
238: [2, "238.png", 2, "238.png"],
};
function CreateKey(keyType, keyContent) {
if (keyType == 0) {
// square key small
var o = document.createElement("span");
o.className = "key keySmall";
if (keyContent.includes(".png")) {
o.innerHTML = "<img src='./keys/" + keyContent + "' style='width:100%;height:100%'>";
}
else {
o.innerHTML = keyContent;
}
return o;
}
else if (keyType == 1) {
//square key large
// square key small
var o = document.createElement("span");
o.className = "key keyBig";
if (keyContent.includes(".png")) {
o.innerHTML = "<img src='./keys/" + keyContent + "' style='width:100%;height:100%'>";
}
else {
o.innerHTML = keyContent;
}
return o;
}
else if (keyType == 2) {
//no square, just img
var o = document.createElement("span");
o.className = "keyCustom";
o.innerHTML = "<img src='./keys/" + keyContent + "' style='width:100%;height:100%'>";
return o;
}
}
function AppendKey(keyCode, keyCaption, extraKey) {
var keyType = keyMap[keyCode][inputId];
var keyContent = keyMap[keyCode][inputId + 1]
var c = document.createElement("p");
c.innerHTML = keyCaption;
c.className = "justText";
container.appendChild(c);
container.appendChild(CreateKey(keyType, keyContent));
if (extraKey) {
keyType = keyMap[extraKey][inputId];
keyContent = keyMap[extraKey][inputId + 1]
var o = CreateKey(keyType, keyContent);
o.style.marginLeft = "-0.00vh";
container.appendChild(o);
}
}
window.addEventListener('message', (event) => {
let action = event.data.action;
if (action == "drawInstButtons") {
container.innerHTML = "";
var buttons = event.data.buttons;
inputId = event.data.isGamepad == true ? 2 : 0;
container.style.display = (buttons && buttons.length > 0 ? "flex" : "none");
if (buttons) {
for (let index = buttons.length - 1; index >= 0; index--) {
const el = buttons[index];
AppendKey(el.key, el.title, el.extraKey)
}
}
}
if (action == "chipshud") {
document.getElementById("nuichipsvalue").innerHTML = event.data.chips;
document.getElementById("nuichips").style.display = event.data.chips != -1 ? "block" : "none";
}
})
@@ -1,342 +0,0 @@
-- cashier instances
local cashiers = {}
local history = {}
-- session
local s_cashierCoords = nil
local s_myCashier = nil
local s_lastMoneyLimit = 100
-- get cashier instance from coords
local function GetCashierFromCoords(coords)
if not coords then
return
end
DebugStart("GetCashierFromCoords")
for _, o in pairs(cashiers) do
if #(coords - o.coords) < 0.2 then
return o
end
end
return nil
end
-- generate list of balances (rageui)
function CashierGetBalanceOptions(balance, max)
DebugStart("CashierGetBalanceOptions")
if max < balance then
balance = max
end
local options = {}
local c = 0
local x = 0
while x < balance do
c = c + 1
if x < 100 then
x = x + 10
elseif x < 1000 then
x = x + 100
elseif x < 10000 then
x = x + 500
elseif x < 100000 then
x = x + 10000
elseif x < 1000000 then
x = x + 100000
else
x = x + 1000000
end
local option = Clamp(x, 1, balance)
option = math.ceil(option)
option = math.round(option / 10) * 10
if option >= 10 and balance >= option then
table.insert(options, option)
end
if c > 200 then
break
end
end
if #(options) == 0 then
table.insert(options, 0)
end
return options
end
function CashierGetMoneyBalanceOptions(balance)
DebugStart("CashierGetBalanceOptions")
local options = {}
local c = 0
local x = 0
balance = math.ceil(balance / Config.ExchangeRate)
while x < balance do
c = c + 1
if x < 100 then
x = x + 10
elseif x < 1000 then
x = x + 100
elseif x < 10000 then
x = x + 500
elseif x < 100000 then
x = x + 10000
elseif x < 1000000 then
x = x + 100000
else
x = x + 1000000
end
local option = Clamp(x, 1, balance)
option = math.ceil(option)
option = math.round(option / 10) * 10
if option >= 10 and balance >= option then
table.insert(options, option)
end
if c > 200 then
break
end
end
if #(options) == 0 then
table.insert(options, 0)
end
return options
end
-- get chips, pay with money
function Cashier_AcquireChips(amount)
DebugStart("Cashier_AcquireChips")
BlockPlayerInteraction(1500)
TriggerServerEvent("rcore_casino:AcquireChips", amount)
Stats_Increase("rcore_casino_cashier_used", 1)
end
-- get money, pay with chips
function Cashier_TradeInChips(amount)
DebugStart("Cashier_TradeInChips")
BlockPlayerInteraction(1500)
TriggerServerEvent("rcore_casino:TradeInChips", amount)
Stats_Increase("rcore_casino_cashier_used", 1)
end
-- get daily bonus, if enabled
function Cashier_DailyBonus()
DebugStart("Cashier_DailyBonus")
if Config.CASHIER_DAILY_BONUS == 0 then
return
end
if PLAYER_CACHE.lastDailyBonus and PLAYER_CACHE.lastDailyBonus == SERVER_DATE then
return
end
BlockPlayerInteraction(2000)
TriggerServerEvent("rcore_casino:DailyBonus")
end
function Cashier_RequestVIP()
if PROMPT_ACTIVE then
return
end
Cashier_OnQuit()
local message = string.format(Translation.Get("CASHIER_VIP_CONFIRM_MSG"), FormatPrice(Config.CASHIER_VIP_PRICE))
if Config.CASHIER_VIP_DURATION then
message = message ..
string.format(Translation.Get("CASHIER_VIP_CONFIRM_MSG_2"),
FormatTimestamp(Config.CASHIER_VIP_DURATION))
end
FullscreenPrompt(Translation.Get("CASHIER_VIP_CONFIRM_CAPT"), message, function(yes)
if yes then
DebugStart("Cashier_RequestVIP")
TriggerServerEvent("rcore_casino:BecomeVIP")
ResetCashierUISelection(s_lastMoneyLimit)
end
end)
end
function Cashier_OnInteraction(forceCoords)
if forceCoords then
s_cashierCoords = forceCoords
end
DebugStart("Cashier_OnInteraction")
if not CAN_INTERACT then
return
end
if PLAYER_DRUNK_LEVEL >= 1.0 then
return
end
BlockPlayerInteraction(2000)
local usedBefore = history[s_cashierCoords] and true or false
local isDrunk = PLAYER_DRUNK_LEVEL > 0.5
TriggerServerEvent("rcore_casino:Cashier:Use", s_cashierCoords, usedBefore, isDrunk)
end
function Cashier_OnBecomeVIP()
DebugStart("Cashier_OnBecomeVIP")
ResetCashierUISelection(s_lastMoneyLimit)
end
function Cashier_ShowNotifyUI(coords)
if Config.UseTarget then
return
end
DebugStart("Cashier_ShowNotifyUI")
local cashier = GetCashierFromCoords(coords)
if not cashier then
return
end
if cashier.playerId ~= -1 then
InfoPanel_UpdateNotification(Translation.Get("CASHIER_BEING_USED"))
return
end
InfoPanel_UpdateNotification(Translation.Get("CASHIER_PRESS_TO_USE"))
s_cashierCoords = coords
end
-- load cashiers
function Cashier_Load()
DebugStart("Cashier_Load")
for _, o in pairs(CashierDatas) do
if o.enabled then
local coords = o.coords
local head = o.heading
local model = GetHashKey(o.model)
RequestModelAndWait(model)
local cashier = {}
cashier.playerId = -1
cashier.coords = coords
cashier.ped = CreatePed(2, model, coords, head, false, false)
o.ped = cashier.ped
SetPedBrave(cashier.ped)
table.insert(cashiers, cashier)
-- target
local targetOffset = GetObjectOffsetFromCoords(coords, head, 0.0, 0.2, 0.5)
local targetData = {{
num = 1,
type = "client",
event = "rcore_casino:Target",
icon = 'fas fa-cash-register',
label = removePlaceholderText(Translation.Get("CASHIER_PRESS_TO_USE")),
targeticon = 'fas fa-cash-register',
canInteract = function(entity, distance, data)
return CAN_INTERACT
end,
drawColor = {255, 255, 255, 255},
successDrawColor = {30, 144, 255, 255},
eventAction = "cashier_enter",
cashierCoords = coords
}}
if Config.TargetUsePeds then
CreateTargetEntity(cashier.ped, targetData)
else
CreateTargetZone(vector3(targetOffset.x, targetOffset.y, targetOffset.z), 3.5, 6.0, 0.0, targetData)
end
end
end
SetCasinoBlip(cashiers[1].coords, 683, Translation.Get("BLIP_CASHIER"), false)
end
RegisterNetEvent("rcore_casino:Cashier:Use")
AddEventHandler("rcore_casino:Cashier:Use", function(coords, playerId, greetings, moneyLimit, canPurchaseVIP, maxMoney, extraData)
local cashier = GetCashierFromCoords(coords)
if not cashier then
return
end
cashier.playerId = playerId
PlayPedAmbientSpeechWithVoiceNative(cashier.ped, greetings, "u_f_m_casinocash_01", "SPEECH_PARAMS_FORCE_NORMAL", 0)
if playerId == GetMyPlayerId() then
UnblockPlayerInteraction()
SetInventoryBusy(true)
SetLastStartedGameType("cashier")
Cashier_ShowMenu(moneyLimit, canPurchaseVIP, maxMoney, extraData)
s_lastMoneyLimit = moneyLimit
s_cashierCoords = coords
s_myCashier = cashier
CAN_MOVE = false
end
end)
RegisterNetEvent("rcore_casino:Cashier:Sessions")
AddEventHandler("rcore_casino:Cashier:Sessions", function(sessions)
for _, v in pairs(sessions) do
local cashier = GetCashierFromCoords(v.coords)
if not cashier then
goto continue
end
cashier.playerId = v.playerId
cashier.coords = v.coords
::continue::
end
end)
RegisterNetEvent("rcore_casino:Cashier:Quit")
AddEventHandler("rcore_casino:Cashier:Quit", function(coords, playerId)
local cashier = GetCashierFromCoords(coords)
if playerId == GetMyPlayerId() then
CAN_MOVE = true
end
if not cashier then
return
end
cashier.playerId = -1
end)
-- trade results
RegisterNetEvent("rcore_casino:TradeResults")
AddEventHandler("rcore_casino:TradeResults", function(chipsNow, moneyNow, comment, moneyLimit, societyNow, pCache)
if chipsNow and chipsNow ~= -1 then
PLAYER_CHIPS = chipsNow
PLAYER_MONEY = moneyNow
s_lastMoneyLimit = moneyLimit
if pCache and type(pCache) == "table" then
PLAYER_CACHE = pCache
end
Casino_AnimateBalance()
if s_myCashier ~= nil then
PlayPedAmbientSpeechWithVoiceNative(s_myCashier.ped, comment, "u_f_m_casinocash_01",
"SPEECH_PARAMS_FORCE_NORMAL", 0)
ResetCashierUISelection(moneyLimit, societyNow)
end
else
Cashier_OnQuit()
local societyMoney = moneyNow
FullscreenPrompt(Translation.Get("CASHIER_TRADEIN_FAILED_CAPT"), Translation.Get("CASHIER_TRADEIN_FAILED_MSG"),
nil, string.format(Translation.Get("CASHIER_SOCIETY_BALANCE"), FormatPrice(societyMoney)))
PlaySound("CHECKPOINT_MISSED", "HUD_MINI_GAME_SOUNDSET")
end
end)
-- on quit
function Cashier_OnQuit()
DebugStart("Cashier_OnQuit")
if Config.CASHIER_MULTITASK then
local cashier = GetCashierFromCoords(s_cashierCoords)
if cashier then
cashier.playerId = -1
end
end
TriggerServerEvent("rcore_casino:Cashier:Quit")
CloseAllMenus()
CAN_MOVE = true
SetInventoryBusy(false)
ForgotLastStartedGameType("cashier")
end
-- destroy all cashiers
function Cashier_Destroy()
DebugStart("Cashier_Destroy")
for _, o in pairs(cashiers) do
ForceDeleteEntity(o.ped)
end
cashiers = {}
end
@@ -1,217 +0,0 @@
DoorSystem = {}
DoorSystem.Pool = {}
DoorSystem.Uid = 0
DoorSystem.EntranceLock = true
function DoorSystem:RegisterDoor(entity, coords, heading, model, group)
if entity then
coords = GetEntityCoords(entity)
model = GetEntityModel(entity)
if not heading then
heading = GetEntityHeading(heading) -- of closed state
end
end
if not group then
group = "casino"
end
local o = {}
o.handle = GetHashKey("casinodoors_" .. DoorSystem.Uid)
o.coords = coords
o.model = model
o.heading = heading
o.entity = entity
o.state = -1
o.group = group
local exist, existHandle = DoorSystemFindExistingDoor(coords.x, coords.y, coords.z, model)
if exist then
o.handle = existHandle
end
if not IsDoorRegisteredWithSystem(o.handle) then
AddDoorToSystem(o.handle, o.model, o.coords.x, o.coords.y, o.coords.z, false, false, false)
end
o.setState = function(state)
if o.state == state then
return
end
o.state = state
DoorSystemSetDoorState(o.handle, state, false, false)
end
o.refresh = function(relink)
if o.state >= 3 then -- this frame only states
DoorSystemSetDoorState(o.handle, o.state, false, true)
end
if not o.entity and relink then
o.entity = GetClosestObjectOfType(o.coords.x, o.coords.y, o.coords.z, 0.10, o.model, false, false, false)
end
if DoesEntityExist(o.entity) and (o.state == 1 or o.state == 4) then -- locked states
SetEntityHeading(o.entity, o.heading)
end
end
o.unlock = function()
o.setState(0)
end
o.lock = function()
o.setState(1)
end
o.open = function(forceUpdate)
o.unlock()
if not forceUpdate then
forceUpdate = false
end
DoorSystemSetOpenRatio(o.handle, -1.0, false, forceUpdate)
end
o.close = function(forceUpdate)
if not forceUpdate then
forceUpdate = false
end
DoorSystemSetOpenRatio(o.handle, 0.0, false, forceUpdate)
end
o.lockLoop = function()
o.setState(4)
end
o.unlockLoop = function()
o.setState(3)
end
o.openLoop = function()
o.open()
o.setState(5)
end
o.closeLoop = function()
o.close()
o.setState(6)
end
table.insert(DoorSystem.Pool, o)
DoorSystem.Uid = DoorSystem.Uid + 1
return o
end
function DoorSystem:GetDoors(group)
local list = {}
for k, v in pairs(DoorSystem.Pool) do
if v.group == group then
table.insert(list, v)
end
end
return list
end
function DoorSystem:Unregister(o)
for i = 1, #DoorSystem.Pool do
if DoorSystem.Pool[i] == o then
table.remove(DoorSystem.Pool, i)
break
end
end
end
function DoorSystem:InitializeCasino()
if #DoorSystem.Pool > 0 then
return
end
-- left wings (entrance)
DoorSystem:RegisterDoor(nil, vector3(927.676880, 49.645515, 81.543098), 328.15661621094 - 90.0, 21324050, "entrance")
DoorSystem:RegisterDoor(nil, vector3(926.188293, 47.248829, 81.543098), 328.15661621094 - 90.0, 21324050, "entrance")
DoorSystem:RegisterDoor(nil, vector3(924.706238, 44.862366, 81.543098), 328.15661621094 - 90.0, 21324050, "entrance")
-- right wings (entrance)
DoorSystem:RegisterDoor(nil, vector3(926.347046, 47.515320, 81.543098), 328.15661621094 + 90.0, 21324050, "entrance")
DoorSystem:RegisterDoor(nil, vector3(924.859009, 45.119484, 81.543098), 328.15661621094 + 90.0, 21324050, "entrance")
DoorSystem:RegisterDoor(nil, vector3(923.376038, 42.731743, 81.543098), 328.15661621094 + 90.0, 21324050, "entrance")
if Config.MapType == 1 then
-- garage <=> interior
DoorSystem:RegisterDoor(nil, vector3(930.422791, 33.263103, 81.242676), 150.0, 901693952, "int2garage")
-- office elevator (normal)
DoorSystem:RegisterDoor(nil, vector3(952.656677, 57.975616, 74.432373), 60.0, -1240156945, "officeelevator")
DoorSystem:RegisterDoor(nil, vector3(953.451599, 59.247688, 74.432373), -120.0, -1240156945, "officeelevator")
-- office elevator (down) (normal)
DoorSystem:RegisterDoor(nil, vector3(976.157166, 73.089081, 69.232674), 60.0, -1240156945, "officeelevator")
DoorSystem:RegisterDoor(nil, vector3(977.429199, 72.294205, 69.232674), -120.0, -1240156945, "officeelevator")
if CASHIER_DOORS then
-- casino staff cashier
local cashierDoors = DoorSystem:RegisterDoor(nil, CASHIER_DOORS.pos, CASHIER_DOORS.heading, 1266543998,
"cashier")
cashierDoors.close()
cashierDoors.lock()
end
elseif Config.MapType == 2 or Config.MapType == 3 then
-- office elevator (gabz)
DoorSystem:RegisterDoor(nil, vector3(993.200623, 55.761406, 74.059692), 60.0, -1240156945, "officeelevator")
DoorSystem:RegisterDoor(nil, vector3(993.992004, 57.035648, 74.059692), -120.0, -1240156945, "officeelevator")
-- office elevator (down) (gabz)
DoorSystem:RegisterDoor(nil, vector3(1016.659668, 70.939056, 68.859993), 60.0, -1240156945, "officeelevator")
DoorSystem:RegisterDoor(nil, vector3(1017.933899, 70.147675, 68.859993), -120.0, -1240156945, "officeelevator")
end
local elevators = DoorSystem:GetDoors("officeelevator")
for k, v in pairs(elevators) do
v.close(true)
end
end
local function RecheckEntranceLock()
local lock = IsActivityEnabled("casinoentrance")
if Config.LeaveThroughTeleport then
lock = false -- always lock if leaving through teleports
end
if lock ~= DoorSystem.EntranceLock then
DoorSystem.EntranceLock = lock
for k, v in pairs(DoorSystem.Pool) do
if v.group == "entrance" or v.group == "int2garage" then
if lock then
v.close()
v.unlock()
else
v.lockLoop()
v.close()
end
end
end
end
end
local function HandleDoors(relink)
local playerPosition = GetEntityCoords(PlayerPedId())
local sleepTime = 1000
if relink then
RecheckEntranceLock()
end
for k, v in pairs(DoorSystem.Pool) do
if #(playerPosition - v.coords) < 10.0 then
v.refresh(relink)
sleepTime = 0
end
end
Wait(sleepTime)
end
DoorSystem:InitializeCasino()
CreateThread(function()
local checkTime = GetGameTimer() + 2000
while true do
local timer = GetGameTimer()
local check = timer > checkTime
HandleDoors(check)
if check then
checkTime = timer + 2000
end
end
end, true)
@@ -1,85 +0,0 @@
2434503858;-2.3212890625;19.685930252075;-0.19699859619141;53.98041229248;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;-18.206115722656;5.7392959594727;0.19771575927734;341.53660888672;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-18.9736328125;-19.563510894775;0.44073486328125;54.179363250732;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-35.496276855469;-14.365493774414;0.069168090820313;159.56734924316;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-32.623840332031;-22.029476165771;0.45345306396484;162.71843261719;0/2/1;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;-20.952941894531;5.3609809875488;-0.15920257568359;100.40215301514;0/4/0;1/0/0;2/8/1;3/5/2;4/4/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;9.7550659179688;-9.0881958007813;-0.7998046875;202.15742492676;0/11/2;1/0/0;2/14/1;3/13/2;4/8/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-31.058898925781;-9.5620651245117;0.46534729003906;154.19045715332;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;-34.730529785156;-13.453735351563;0.041999816894531;-30.239999771118;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;-22.536804199219;-30.46821975708;1.2356948852539;42.482411193848;0/4/0;1/1/0;2/4/0;3/1/0;4/0/0;5/0/0;6/1/0;7/2/0;8/3/0;9/0/0;10/1/0;11/1/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
2600762591;-9.4402465820313;7.5219421386719;-0.59600067138672;23.760000228882;0/10/2;1/0/0;2/15/0;3/1/1;4/11/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
337826907;13.319458007813;0.85515213012695;-0.97772979736328;253.39671020508;0/5/0;1/0/0;2/5/0;3/0/4;4/1/0;5/0/0;6/0/0;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
279228114;0.71099853515625;11.82998085022;-0.55995941162109;125.95603637695;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-33.015808105469;-3.6640548706055;0.44068908691406;144.64302062988;0/6/1;1/0/0;2/3/0;3/6/0;4/3/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;8.0192260742188;22.348573684692;-0.55995941162109;191.12475585938;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-8.8323364257813;6.7239532470703;-0.59600067138672;222.76583557129;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;-12.514831542969;18.159801483154;0.035446166992188;29.78155708313;0/1/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;NOANIM;NOANIM;3
2434503858;-10.096435546875;6.5718841552734;-0.59600067138672;144.0;0/6/1;1/0/0;2/8/1;3/9/5;4/4/3;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
1278330017;-31.090637207031;-8.3707122802734;0.44069671630859;350.85969238281;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;-35.916564941406;-13.393447875977;0.067863464355469;36.659759521484;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-4.4703979492188;11.47047996521;-0.56785583496094;221.87998657227;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
279228114;-9.700927734375;1.3271408081055;-0.18263244628906;127.49905395508;0/4/2;1/0/0;2/9/0;3/6/2;4/5/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-10.754211425781;-24.333232879639;0.44069671630859;174.93353271484;0/4/1;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
553826858;9.237548828125;-2.7126541137695;-0.82183837890625;347.5698425293;0/5/0;1/0/0;2/4/0;3/3/0;4/2/0;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
2600762591;-9.149658203125;-1.6710662841797;-0.15850067138672;-88.380012512207;0/13/2;1/0/0;2/9/0;3/13/2;4/9/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;8.816162109375;-8.6635551452637;-0.79960632324219;148.41452026367;0/3/2;1/0/0;2/7/2;3/4/2;4/3/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SECURITY_SHINE_TORCH;interview_short_anton;missmic4premiere;3
279228114;-17.254150390625;10.492946624756;-0.006988525390625;232.8263671875;0/0/2;1/0/0;2/0/0;3/1/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_COMPUTER;NOANIM;NOANIM;2
553826858;-17.671813964844;-20.024723052979;0.44068908691406;316.77166748047;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;11.544921875;-9.9813842773438;-0.7996826171875;229.26098632813;0/7/0;1/0/0;2/3/0;3/6/1;4/4/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;3
553826858;7.6781616210938;19.367282867432;-0.55995941162109;183.16337585449;0/7/2;1/0/0;2/3/0;3/6/2;4/3/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_WINDOW_SHOP_BROWSE;NOANIM;NOANIM;3
4150317356;-14.908264160156;1.1704330444336;-0.15917205810547;80.89026184082;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_STANDING;NOANIM;NOANIM;3
553826858;-8.1075439453125;-3.9700012207031;-0.18000030517578;-148.45899963379;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;0.44256591796875;12.959438323975;-0.56001281738281;35.283293914795;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-5.4266357421875;11.56548500061;-0.59600067138672;90.391998291016;0/9/1;1/0/0;2/11/2;3/12/2;4/7/1;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;9.5970458984375;-4.2397727966309;-0.79525756835938;231.06343383789;0/0/1;1/0/0;2/5/1;3/2/0;4/0/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_CASINO_TERRACE;NOANIM;NOANIM;1
279228114;-20.054809570313;5.9362335205078;-0.15920257568359;319.75811767578;0/1/2;1/0/0;2/2/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
55858852;13.678283691406;-5.1783676147461;-0.59566497802734;279.58372802734;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
3138220789;-34.43603515625;6.0365447998047;0.44069671630859;6.3087017059326;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;3
279228114;-8.7015380859375;-3.2505035400391;-0.16000366210938;42.865997314453;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;5.7977294921875;16.442882537842;-0.54164123535156;129.04111938477;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;10.246154785156;6.8676071166992;-1.0139999389648;227.17247314453;0/0/1;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_FACILITY;NOANIM;NOANIM;1
2600762591;9.1370849609375;6.6064262390137;-1.000114440918;151.72654724121;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-37.6806640625;-17.387680053711;0.43772125244141;3.7649207115173;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;7.3496704101563;0.65901947021484;-1.0001678466797;181.88602905273;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;9.3544921875;7.8700561523438;-1.0359954833984;43.959365844727;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
553826858;-9.026123046875;16.151987075806;-0.57041931152344;4.5585260391235;0/8/1;1/0/0;2/1/0;3/8/0;4/6/0;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;1
279228114;5.8204956054688;12.256853103638;-0.56000518798828;243.84157104492;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-16.626098632813;5.791446685791;-0.56474304199219;45.98267364502;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;5.399169921875;13.381549835205;-0.54174041748047;334.91586303711;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
2600762591;12.949584960938;19.80983543396;-0.56000518798828;275.12399291992;0/5/0;1/0/0;2/4/1;3/6/0;4/4/3;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;3
279228114;-8.8939819335938;14.512456893921;-0.56764984130859;189.77952880859;0/4/0;1/0/0;2/9/1;3/6/1;4/5/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;1.642822265625;12.49750328064;-0.57600402832031;272.04014892578;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;2.5347290039063;6.9387321472168;-0.20298767089844;159.70381469727;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;-11.734680175781;18.750513076782;-0.035064697265625;23.184113693237;0/2/2;1/0/0;2/2/0;3/2/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;3
450271392;-4.5588989257813;22.353923797607;-0.56000518798828;13.837906837463;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
4188740747;-0.9521484375;18.75630569458;-0.29718017578125;-48.959999084473;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;2
2600762591;-31.840637207031;-3.4384803771973;0.44069671630859;237.34228820801;0/7/1;1/0/0;2/7/0;3/8/3;4/5/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
967594628;-1.6597290039063;22.329448699951;-0.55992889404297;285.9864074707;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_LOW_CLASS;NOANIM;NOANIM;3
279228114;-32.937072753906;-2.4253196716309;0.44069671630859;341.03814697266;0/3/2;1/0/0;2/6/2;3/3/2;4/2/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;8.1873779296875;-4.0992813110352;-0.79987335205078;86.88433380127;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_FACILITY;NOANIM;NOANIM;1
553826858;-45.362609863281;4.3761596679688;0.44078826904297;79.912719726563;0/0/0;1/0/0;2/2/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE;NOANIM;NOANIM;1
279228114;-9.0543212890625;1.9701614379883;-0.25605010986328;283.49948120117;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-31.920166015625;-20.994541168213;0.45345306396484;324.58986206055;0/4/2;1/0/0;2/8/0;3/5/1;4/4/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1415150394;-0.20037841796875;17.305589675903;-0.27812957763672;291.30180053711;0/0/0;1/-1/255;2/0/0;3/0/0;4/0/0;5/-1/255;6/0/0;7/-1/255;8/-1/255;9/-1/255;10/-1/255;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
-1860463438;11.875;6.2086639404297;-1.0001907348633;341.09956665039;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-36.5263671875;7.1977615356445;0.44081878662109;297.2998046875;0/3/1;1/0/0;2/7/1;3/4/0;4/3/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT;NOANIM;NOANIM;3
279228114;-52.217895507813;-14.667984008789;1.4408645629883;221.72512817383;0/4/1;1/0/0;2/9/1;3/6/0;4/5/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-1860463438;-37.584777832031;7.0065307617188;0.44082641601563;26.39906578064;0/6/0;1/0/0;2/8/0;3/9/4;4/4/1;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-28.341613769531;-0.0093727111816406;0.4407958984375;352.19938964844;0/0/2;1/0/0;2/2/0;3/1/0;4/1/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
279228114;-53.113586425781;-14.065052032471;1.4428405761719;59.699509429932;0/1/1;1/0/0;2/3/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;-53.912719726563;-6.995174407959;1.3979949951172;305.39948730469;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-63.516784667969;-3.9238929748535;1.4413681030273;65.999870300293;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-43.256530761719;-25.443897247314;1.0408248901367;238.19868774414;0/3/2;1/0/0;2/3/2;3/1/3;4/1/0;5/0/0;6/0/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-59.064392089844;-22.138889312744;1.4408569335938;184.74311828613;0/3/1;1/0/0;2/3/1;3/0/2;4/1/0;5/0/0;6/0/1;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;1
-1860463438;-54.520812988281;-31.258235931396;1.0408248901367;43.798686218262;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
553826858;-41.940856933594;1.7172203063965;0.44113922119141;192.89949035645;0/4/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_FACILITY;NOANIM;NOANIM;1
-1694204705;-23.35546875;-7.073802947998;-0.15924835205078;154.49736022949;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;-30.47998046875;-29.383121490479;0.44069671630859;150.89926452637;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-15.574096679688;-28.165584564209;0.82003021240234;360.24982910156;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;-31.451416015625;-28.793575286865;0.44167327880859;88.578625488281;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;-25.285339355469;-20.848438262939;0.44087219238281;18.0;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-26.120056152344;-21.742847442627;0.44075775146484;89.999969482422;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-12.392761230469;-27.024753570557;0.84078216552734;268.74055175781;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_SLUMPED;NOANIM;NOANIM;3
553826858;-22.664489746094;-27.572383880615;0.82898712158203;275.99908447266;0/6/0;1/0/0;2/3/0;3/7/1;4/4/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
279228114;-23.663146972656;-27.995822906494;0.84578704833984;128.99987792969;0/0/2;1/0/0;2/5/1;3/1/0;4/1/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
@@ -1,26 +0,0 @@
951767867;-1547.1401367188;-595.23504638672;31.284715652466;226.82543945312;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_LEANING_CASINO_TERRACE;NOANIM;NOANIM;2
-1106743555;-1514.6903076172;-607.78692626953;31.284715652466;347.08923339844;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_LEANING_CASINO_TERRACE;NOANIM;NOANIM;2
808859815;-1531.8341064453;-601.88714599609;31.284715652466;140.11024475098;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;2
808859815;-1532.4754638672;-602.65447998047;31.284715652466;320.11026000977;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1750583735;-1512.1911621094;-580.49200439453;31.284715652466;151.92321777344;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
1750583735;-1513.0399169922;-581.02075195312;31.284715652466;271.92044067383;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1750583735;-1512.1575927734;-581.49145507812;31.284715652466;31.922561645508;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-781039234;-1505.9663085938;-580.94018554688;35.246990203857;159.03387451172;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
808859815;-1507.3817138672;-580.75457763672;35.215034484863;186.89027404785;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
-1106743555;-1507.5667724609;-595.17730712891;31.284715652466;25.52347946167;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1106743555;-1507.9976806641;-594.27484130859;31.284715652466;205.52346801758;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
951767867;-1502.6485595703;-600.09118652344;31.284715652466;140.0563659668;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1674107025;-1503.6446533203;-600.17932128906;31.284715652466;230.05635070801;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
115168927;-1503.5565185547;-601.17541503906;31.284715652466;320.05639648438;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;2
-1106743555;-1502.5604248047;-601.08728027344;31.284715652466;50.056381225586;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
808859815;-1530.3522949219;-593.97863769531;31.284715652466;140.28826904297;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
808859815;-1531.2902832031;-594.32537841797;31.284715652466;260.28671264648;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
808859815;-1530.5209960938;-594.96435546875;31.284715652466;20.28737449646;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1760377969;-1499.4295654297;-581.31561279297;31.284715652466;180.16958618164;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-573920724;-1499.9270019531;-582.18304443359;31.284715652466;300.16485595703;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1106743555;-1498.9270019531;-582.18017578125;31.284715652466;60.16646194458;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
-1760377969;-1534.7135009766;-597.88433837891;31.284715652466;140.0563659668;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
-1760377969;-1535.7095947266;-597.97247314453;31.284715652466;230.05635070801;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1106743555;-1535.6214599609;-598.96856689453;31.284715652466;320.05639648438;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1606864033;-1534.6253662109;-598.88043212891;31.284715652466;50.056381225586;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-88831029;-1500.0230712891;-604.65411376953;35.246990203857;78.819747924805;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;2
@@ -1,57 +0,0 @@
2434503858;-16.539428710938;20.066440582275;0.062034606933594;242.67785644531;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;9.0155029296875;21.547157287598;-0.53272247314453;352.89311523437;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-29.576232910156;34.75;-0.99781799316406;54.179363250732;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-26.527709960938;22.44149017334;-0.99781799316406;159.56734924316;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-23.619934082031;41.76953125;-0.74790954589844;37.689247131348;0/2/1;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
2434503858;27.448669433594;54.079345703125;-0.75228881835938;170.31623840332;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;34.248046875;59.236511230469;-0.75218200683594;270.63166503906;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;0.126220703125;6.9256782531738;-0.997802734375;99.109677124023;0/4/0;1/1/0;2/4/0;3/1/0;4/0/0;5/0/0;6/1/0;7/2/0;8/3/0;9/0/0;10/1/0;11/1/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
2600762591;-17.272521972656;14.673774719238;0.0020751953125;100.14435577393;0/10/2;1/0/0;2/15/0;3/1/1;4/11/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;-13.441101074219;39.570388793945;-0.74790954589844;197.78056335449;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-26.021240234375;15.276123046875;-0.997802734375;14.268159866333;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;4.5505981445312;29.812873840332;-1.4491424560547;181.53439025879;0/1/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;NOANIM;NOANIM;3
1278330017;3.6876831054688;55.551239013672;-0.75191497802734;5.8032531738281;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;9.8182983398438;54.887462615967;-0.74814605712891;237.46920471191;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-31.528137207031;21.700531005859;-0.99781799316406;146.87956237793;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
2600762591;-5.8760986328125;63.231460571289;-0.997802734375;284.92987060547;0/13/2;1/0/0;2/9/0;3/13/2;4/9/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-9.0887451171875;44.741523742676;-1.4879760742188;292.76510620117;0/0/2;1/0/0;2/0/0;3/1/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_COMPUTER;NOANIM;NOANIM;2
553826858;-7.312744140625;63.198497772217;-0.98562622070312;66.095741271973;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
4150317356;-34.441711425781;29.110229492188;-0.99781799316406;80.89026184082;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_STANDING;NOANIM;NOANIM;3
553826858;0.9083251953125;42.507026672363;-1.9978561401367;67.79065246582;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-26.050476074219;29.326293945312;-0.99781799316406;338.28314208984;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
55858852;-23.331237792969;48.051246643066;-0.53583526611328;53.355727386475;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
3138220789;-15.37548828125;58.843601226807;-1.0047302246094;353.63372802734;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;3
279228114;8.7046508789062;55.618816375732;-0.75180053710938;50.41070098877;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;-6.4005126953125;26.978115081787;-0.7479248046875;251.22888183594;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-8.3335571289062;0.19869995117188;-0.99755096435547;160.42750549316;0/0/1;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_FACILITY;NOANIM;NOANIM;1
2600762591;-34.260803222656;37.929870605469;-0.99781799316406;138.22598571777;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-37.065185546875;10.761161804199;-0.49797058105469;125.33883666992;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;-33.299865722656;38.499885559082;-0.99781799316406;328.88531494141;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-14.153198242188;40.867530822754;-0.74791717529297;22.014518737793;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
279228114;1.0282592773438;62.239521026611;-0.99401092529297;336.11703491211;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-23.837219238281;17.645526885986;-0.99775695800781;303.89767456055;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;-38.518371582031;33.700042724609;-0.99781799316406;175.91569519043;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
279228114;13.83984375;58.789855957031;-0.49789428710938;32.13843421936;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-11.468872070312;13.684150695801;0.080093383789062;322.46450805664;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;32.301208496094;64.924987792969;0.50986480712891;348.60534667969;0/2/2;1/0/0;2/2/0;3/2/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;3
450271392;-26.030639648438;27.808471679688;-0.99781799316406;208.83740234375;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
4188740747;14.342468261719;23.734668731689;-0.53607940673828;45.757423400879;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;2
279228114;-25.882080078125;14.029033660889;-0.99785614013672;165.37129211426;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_FACILITY;NOANIM;NOANIM;1
553826858;-27.284729003906;28.546020507812;-0.99781799316406;79.912719726563;0/0/0;1/0/0;2/2/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE;NOANIM;NOANIM;1
279228114;27.373779296875;55.725070953369;-0.75210571289062;339.65982055664;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
1415150394;-39.432434082031;36.948738098145;-0.99781799316406;291.30180053711;0/0/0;1/-1/255;2/0/0;3/0/0;4/0/0;5/-1/255;6/0/0;7/-1/255;8/-1/255;9/-1/255;10/-1/255;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
-1860463438;-26.393127441406;23.680450439453;-0.99781799316406;341.09956665039;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
-1860463438;-33.304443359375;28.243522644043;-0.99781799316406;236.39855957031;0/6/0;1/0/0;2/8/0;3/9/4;4/4/1;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT_CLUBHOUSE;NOANIM;NOANIM;3
-1860463438;-15.694519042969;24.434471130371;0.0020751953125;95.439849853516;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-3.3563232421875;22.884216308594;-0.74485015869141;307.41641235352;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-16.415222167969;14.173160552979;0.0021438598632812;237.56948852539;0/3/1;1/0/0;2/3/1;3/0/2;4/1/0;5/0/0;6/0/1;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;1
-1860463438;-7.6656494140625;43.495449066162;-1.9978637695312;176.58346252441;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
553826858;-18.405334472656;28.540252685547;-0.99781799316406;192.89949035645;0/4/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_FACILITY;NOANIM;NOANIM;1
-1694204705;-7.8748779296875;27.049724578857;-0.74791717529297;68.834759521484;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;-14.379638671875;49.119934082031;-0.99996948242188;295.34315795898;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-31.107788085938;33.973937988281;-0.99785614013672;263.70142822266;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;2.6519775390625;11.619575500488;-0.99782562255859;36.653053283691;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;-14.629516601562;25.195140838623;0.0020751953125;323.02557373047;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;14.603271484375;57.999443054199;-0.49337768554688;237.84196166992;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-6.6162109375;31.428741455078;0.0679931640625;308.77313232422;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;intro_loop_ped_d;anim@heists@fleeca_bank@hostages@intro;3
553826858;28.305786132812;54.878395080566;-0.74781799316406;254.76569824219;0/6/0;1/0/0;2/3/0;3/7/1;4/4/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
@@ -1,85 +0,0 @@
2434503858;-2.3212890625;19.685930252075;-0.19699859619141;53.98041229248;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;-18.206115722656;5.7392959594727;0.19771575927734;341.53660888672;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-18.855163574219;-20.024723052979;0.44068908691406;54.179363250732;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-35.496276855469;-14.365493774414;0.069168090820313;159.56734924316;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-32.623840332031;-22.029476165771;0.45345306396484;162.71843261719;0/2/1;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;-20.952941894531;5.3609809875488;-0.15920257568359;100.40215301514;0/4/0;1/0/0;2/8/1;3/5/2;4/4/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;10.11376953125;-7.6902618408203;-0.7998046875;128.056640625;0/11/2;1/0/0;2/14/1;3/13/2;4/8/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-31.058898925781;-9.5620651245117;0.46534729003906;154.19045715332;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;-34.730529785156;-13.453735351563;0.041999816894531;-30.239999771118;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;-22.536804199219;-30.46821975708;1.2389907836914;42.482411193848;0/4/0;1/1/0;2/4/0;3/1/0;4/0/0;5/0/0;6/1/0;7/2/0;8/3/0;9/0/0;10/1/0;11/1/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
2600762591;-9.4402465820313;7.5219421386719;-0.59600067138672;23.760000228882;0/10/2;1/0/0;2/15/0;3/1/1;4/11/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
337826907;13.319458007813;0.85515213012695;-0.97772979736328;222.79661560059;0/5/0;1/0/0;2/5/0;3/0/4;4/1/0;5/0/0;6/0/0;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
279228114;0.71099853515625;11.82998085022;-0.55995941162109;125.95603637695;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-33.015808105469;-3.6640548706055;0.44068908691406;144.64302062988;0/6/1;1/0/0;2/3/0;3/6/0;4/3/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;8.0192260742188;22.348573684692;-0.55995941162109;191.12475585938;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-8.8323364257813;6.7239532470703;-0.59600067138672;222.76583557129;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;-12.514831542969;18.159801483154;0.035446166992188;29.78155708313;0/1/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;NOANIM;NOANIM;3
2434503858;-10.096435546875;6.5718841552734;-0.59600067138672;144.0;0/6/1;1/0/0;2/8/1;3/9/5;4/4/3;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
1278330017;-31.090637207031;-8.3707122802734;0.44069671630859;350.85969238281;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;-35.916564941406;-13.393447875977;0.067863464355469;36.659759521484;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-4.4703979492188;11.47047996521;-0.56785583496094;221.87998657227;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
279228114;-9.700927734375;1.3271408081055;-0.18263244628906;127.49905395508;0/4/2;1/0/0;2/9/0;3/6/2;4/5/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-10.754211425781;-24.333232879639;0.44069671630859;174.93353271484;0/4/1;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
553826858;10.245727539063;-3.0544052124023;-0.82183837890625;166.66883544922;0/5/0;1/0/0;2/4/0;3/3/0;4/2/0;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
2600762591;-9.149658203125;-1.6710662841797;-0.15850067138672;-88.380012512207;0/13/2;1/0/0;2/9/0;3/13/2;4/9/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;14.890075683594;-3.6628456115723;-0.79960632324219;148.1124420166;0/3/2;1/0/0;2/7/2;3/4/2;4/3/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SECURITY_SHINE_TORCH;interview_short_anton;missmic4premiere;3
279228114;-17.254150390625;10.492946624756;-0.006988525390625;232.8263671875;0/0/2;1/0/0;2/0/0;3/1/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_COMPUTER;NOANIM;NOANIM;2
553826858;-17.671813964844;-20.024723052979;0.44068908691406;316.77166748047;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;11.544921875;-9.9813842773438;-0.7996826171875;229.26098632813;0/7/0;1/0/0;2/3/0;3/6/1;4/4/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;3
553826858;7.6781616210938;19.367282867432;-0.55995941162109;183.16337585449;0/7/2;1/0/0;2/3/0;3/6/2;4/3/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_WINDOW_SHOP_BROWSE;NOANIM;NOANIM;3
4150317356;-14.908264160156;1.1704330444336;-0.15917205810547;80.89026184082;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_STANDING;NOANIM;NOANIM;3
553826858;-8.1075439453125;-3.9700012207031;-0.18000030517578;-148.45899963379;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;0.44256591796875;12.959438323975;-0.56001281738281;35.283293914795;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-5.4266357421875;11.56548500061;-0.59600067138672;90.391998291016;0/9/1;1/0/0;2/11/2;3/12/2;4/7/1;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;10.828247070313;-2.1398582458496;-0.79525756835938;231.06343383789;0/0/1;1/0/0;2/5/1;3/2/0;4/0/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_CASINO_TERRACE;NOANIM;NOANIM;1
279228114;-20.054809570313;5.9362335205078;-0.15920257568359;319.75811767578;0/1/2;1/0/0;2/2/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
55858852;8.4107666015625;-5.4996795654297;-0.59566497802734;161.08085327148;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
3138220789;-34.43603515625;6.0365447998047;0.44069671630859;6.3087017059326;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;3
279228114;-8.7015380859375;-3.2505035400391;-0.16000366210938;42.865997314453;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;5.7977294921875;16.442882537842;-0.54164123535156;129.04111938477;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;10.246154785156;6.8676071166992;-1.0139999389648;227.17247314453;0/0/1;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_FACILITY;NOANIM;NOANIM;1
2600762591;9.1370849609375;6.6064262390137;-1.000114440918;151.72654724121;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-37.6806640625;-17.387680053711;0.43772125244141;3.7649207115173;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;7.3496704101563;0.65901947021484;-1.0001678466797;181.88602905273;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;9.3544921875;7.8700561523438;-1.0359954833984;43.959365844727;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
553826858;-9.026123046875;16.151987075806;-0.57041931152344;4.5585260391235;0/8/1;1/0/0;2/1/0;3/8/0;4/6/0;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;1
279228114;5.8204956054688;12.256853103638;-0.56000518798828;243.84157104492;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-16.626098632813;5.791446685791;-0.56474304199219;45.98267364502;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;5.399169921875;13.381549835205;-0.54174041748047;334.91586303711;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
2600762591;12.949584960938;19.80983543396;-0.56000518798828;275.12399291992;0/5/0;1/0/0;2/4/1;3/6/0;4/4/3;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;3
279228114;-8.8939819335938;14.512456893921;-0.56764984130859;189.77952880859;0/4/0;1/0/0;2/9/1;3/6/1;4/5/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;1.642822265625;12.49750328064;-0.57600402832031;272.04014892578;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;2.5347290039063;6.9387321472168;-0.20298767089844;159.70381469727;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;-11.734680175781;18.750513076782;-0.035064697265625;23.184113693237;0/2/2;1/0/0;2/2/0;3/2/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;3
450271392;-4.5588989257813;22.353923797607;-0.56000518798828;13.837906837463;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
4188740747;-0.9521484375;18.75630569458;-0.29718017578125;-48.959999084473;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;2
2600762591;-31.840637207031;-3.4384803771973;0.44069671630859;237.34228820801;0/7/1;1/0/0;2/7/0;3/8/3;4/5/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
967594628;-1.6597290039063;22.329448699951;-0.55992889404297;285.9864074707;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_LOW_CLASS;NOANIM;NOANIM;3
279228114;-32.937072753906;-2.4253196716309;0.44069671630859;341.03814697266;0/3/2;1/0/0;2/6/2;3/3/2;4/2/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;9.7188720703125;-1.9393692016602;-0.79987335205078;86.88433380127;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_FACILITY;NOANIM;NOANIM;1
553826858;-45.362609863281;4.3761596679688;0.44078826904297;79.912719726563;0/0/0;1/0/0;2/2/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE;NOANIM;NOANIM;1
279228114;-9.0543212890625;1.9701614379883;-0.25605010986328;283.49948120117;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-31.920166015625;-20.994541168213;0.45345306396484;324.58986206055;0/4/2;1/0/0;2/8/0;3/5/1;4/4/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1415150394;-0.20037841796875;17.305589675903;-0.27812957763672;291.30180053711;0/0/0;1/-1/255;2/0/0;3/0/0;4/0/0;5/-1/255;6/0/0;7/-1/255;8/-1/255;9/-1/255;10/-1/255;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
-1860463438;11.875;6.2086639404297;-1.0001907348633;341.09956665039;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-36.5263671875;7.1977615356445;0.44081878662109;297.2998046875;0/3/1;1/0/0;2/7/1;3/4/0;4/3/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT;NOANIM;NOANIM;3
279228114;-52.217956542969;-14.667984008789;1.4408645629883;221.72512817383;0/4/1;1/0/0;2/9/1;3/6/0;4/5/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-1860463438;-37.584777832031;7.0065307617188;0.44082641601563;26.39906578064;0/6/0;1/0/0;2/8/0;3/9/4;4/4/1;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-28.341613769531;-0.0093727111816406;0.4407958984375;352.19938964844;0/0/2;1/0/0;2/2/0;3/1/0;4/1/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
279228114;-53.113586425781;-14.065052032471;1.4428405761719;59.699509429932;0/1/1;1/0/0;2/3/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;-53.912780761719;-6.995174407959;1.3979949951172;305.39948730469;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-63.516784667969;-3.9238929748535;1.4413681030273;65.999870300293;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-59.064392089844;-22.138889312744;1.4408569335938;184.74311828613;0/3/1;1/0/0;2/3/1;3/0/2;4/1/0;5/0/0;6/0/1;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;1
-1860463438;-54.520812988281;-31.258235931396;1.0408248901367;43.798686218262;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
553826858;-41.940856933594;1.7172203063965;0.44113922119141;192.89949035645;0/4/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_FACILITY;NOANIM;NOANIM;1
-1694204705;-23.35546875;-7.073802947998;-0.15924835205078;154.49736022949;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;-30.47998046875;-29.697948455811;0.44069671630859;175.4988067627;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-15.423950195313;-28.315578460693;0.82003021240234;360.24982910156;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;-31.451416015625;-28.793575286865;0.44167327880859;88.578625488281;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;-25.285339355469;-20.848438262939;0.44087219238281;18.0;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-26.120056152344;-21.742847442627;0.44075775146484;89.999969482422;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-12.018310546875;-26.574199676514;1.452751159668;296.35328369141;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;intro_loop_ped_d;anim@heists@fleeca_bank@hostages@intro;3
553826858;-22.664489746094;-27.572383880615;0.83346557617188;275.99908447266;0/6/0;1/0/0;2/3/0;3/7/1;4/4/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
279228114;-23.663146972656;-27.995822906494;0.84578704833984;128.99987792969;0/0/2;1/0/0;2/5/1;3/1/0;4/1/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
337826907;-43.363220214844;-25.368274688721;1.0408325195313;248.69999694824;0/2/1;1/0/0;2/2/0;3/0/3;4/1/0;5/0/0;6/0/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND;NOANIM;NOANIM;3
@@ -1,86 +0,0 @@
2434503858;-13.5732421875;19.082153320313;-0.048599243164063;30.89669342041;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;-18.288818359375;-4.8194274902344;0.16125869750977;354.98463745117;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-4.771728515625;-26.612487792969;0.40897369384766;322.75564575195;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-39.382568359375;-3.3134155273438;0.069168090820313;159.56734924316;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-37.111328125;-11.207763671875;0.45345306396484;162.71843261719;0/2/1;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;-0.416015625;12.747192382813;-0.59174346923828;45.252239227295;0/4/0;1/0/0;2/8/1;3/5/2;4/4/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-5.093994140625;-2.5357055664063;-0.99837493896484;109.15727233887;0/11/2;1/0/0;2/14/1;3/13/2;4/8/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-33.892578125;1.8054809570313;0.46534729003906;154.19045715332;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;-21.4853515625;-24.458312988281;0.408935546875;205.65797424316;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;-0.5859375;-36.301284790039;1.2090873718262;43.745446014404;0/4/0;1/1/0;2/4/0;3/1/0;4/0/0;5/0/0;6/1/0;7/2/0;8/3/0;9/0/0;10/1/0;11/1/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
2600762591;3.93994140625;-3.7120666503906;-1.0216178894043;217.79685974121;0/10/2;1/0/0;2/15/0;3/1/1;4/11/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
337826907;-3.352294921875;-5.2702331542969;-1.0163269042969;303.4961730957;0/5/0;1/0/0;2/5/0;3/0/4;4/1/0;5/0/0;6/0/0;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
279228114;11.18408203125;4.2882385253906;-0.83496475219727;21.42064781189;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-42.044189453125;-35.110260009766;1.4089164733887;49.039932250977;0/6/1;1/0/0;2/3/0;3/6/0;4/3/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-1.07666015625;29.732391357422;-0.55995941162109;191.12475585938;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-12.741943359375;5.5121154785156;-0.59174728393555;116.42286682129;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;-20.212158203125;8.3562622070313;-0.012851715087891;58.932732391357;0/1/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;NOANIM;NOANIM;3
2434503858;-22.789794921875;-31.328582763672;0.007293701171875;111.67665863037;0/6/1;1/0/0;2/8/1;3/9/5;4/4/3;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
1278330017;-22.383544921875;-23.826431274414;0.44069671630859;41.859588623047;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;-24.526611328125;-16.135284423828;0.50440216064453;36.659759521484;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-10.65771484375;5.421630859375;-0.59173202514648;253.89924621582;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
279228114;3.62109375;11.665588378906;-1.0057983398438;54.070674133301;0/4/2;1/0/0;2/9/0;3/6/2;4/5/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-16.979736328125;-17.825958251953;-0.16488265991211;174.93353271484;0/4/1;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
553826858;4.57373046875;-25.612670898438;0.40896987915039;233.4513092041;0/5/0;1/0/0;2/4/0;3/3/0;4/2/0;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
2600762591;-15.71630859375;-36.045700073242;0.40888595581055;225.82611083984;0/13/2;1/0/0;2/9/0;3/13/2;4/9/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-2.894775390625;14.588287353516;-0.59175872802734;321.28866577148;0/3/2;1/0/0;2/7/2;3/4/2;4/3/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE;interview_short_anton;missmic4premiere;3
279228114;-28.95751953125;9.9549865722656;-0.006988525390625;232.8263671875;0/0/2;1/0/0;2/0/0;3/1/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_COMPUTER;NOANIM;NOANIM;2
553826858;-5.917236328125;-27.344268798828;0.40898132324219;147.80230712891;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;10.595947265625;7.5359802246094;-1.0052909851074;269.87001342773;0/7/0;1/0/0;2/3/0;3/6/1;4/4/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;3
553826858;-0.306640625;27.939727783203;-0.55995941162109;183.16337585449;0/7/2;1/0/0;2/3/0;3/6/2;4/3/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_WINDOW_SHOP_BROWSE;NOANIM;NOANIM;3
4150317356;-13.653076171875;-7.4779968261719;-0.19110870361328;75.460891723633;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_STANDING;NOANIM;NOANIM;3
553826858;-19.68798828125;1.8592224121094;-0.5653076171875;25.839921951294;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_PATROL;NOANIM;NOANIM;1
279228114;-7.8095703125;8.1486511230469;-0.59173202514648;145.72909545898;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-6.884521484375;9.6104736328125;-0.59170532226563;351.57077026367;0/9/1;1/0/0;2/11/2;3/12/2;4/7/1;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;16.960205078125;3.6361999511719;-0.86564254760742;43.004718780518;0/0/1;1/0/0;2/5/1;3/2/0;4/0/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_CASINO_TERRACE;NOANIM;NOANIM;1
279228114;-20.5947265625;-5.3287963867188;-0.15920257568359;30.557552337646;0/1/2;1/0/0;2/2/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
55858852;10.192626953125;0.016754150390625;-0.63654327392578;179.74023132324;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
3138220789;-32.482177734375;-13.078338623047;0.41983413696289;37.753075408936;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;3
279228114;-10.235107421875;0.53091430664063;-0.59174346923828;210.88955688477;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;8.063720703125;27.936950683594;-0.54164123535156;129.04111938477;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-5.639892578125;-18.439712524414;-0.19110870361328;202.60032653809;0/0/1;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_FACILITY;NOANIM;NOANIM;1
2600762591;0.703857421875;12.374053955078;-0.59170913696289;309.30047607422;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-38.900146484375;-50.631622314453;1.4089202880859;189.63984680176;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;6.26416015625;4.3052062988281;-1.030330657959;202.58579711914;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;5.165771484375;11.414093017578;-1.0058135986328;251.85249023438;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
553826858;-16.988525390625;3.79296875;-0.59170913696289;121.62433624268;0/8/1;1/0/0;2/1/0;3/8/0;4/6/0;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;1
279228114;-6.27294921875;8.4688110351563;-0.59170532226563;243.84157104492;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-26.22265625;-20.429656982422;0.40893173217773;133.40716552734;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;-21.150146484375;-6.3165283203125;-0.19109344482422;158.85913085938;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
279228114;-8.770751953125;-30.092514038086;0.40898132324219;310.716796875;0/3/1;1/0/0;2/6/0;3/3/0;4/2/0;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-10.02490234375;2.1296691894531;-0.59174728393555;329.93286132813;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-1.3779296875;17.9814453125;-0.20298767089844;159.70381469727;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;-20.5439453125;7.7368774414063;-0.018733978271484;59.994819641113;0/2/2;1/0/0;2/2/0;3/2/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;3
450271392;-9.806396484375;19.048797607422;-0.59174728393555;324.65447998047;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
4188740747;-12.35107421875;15.538024902344;-0.28887557983398;4.6533505439758;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;2
2600762591;-23.363037109375;-38.781524658203;0.3933219909668;135.68293762207;0/7/1;1/0/0;2/7/0;3/8/3;4/5/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
967594628;-10.4072265625;18.010192871094;-0.59170532226563;152.51422119141;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_LOW_CLASS;NOANIM;NOANIM;3
279228114;-39.653076171875;-22.253692626953;0.408935546875;163.98332214355;0/3/2;1/0/0;2/6/2;3/3/2;4/2/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;17.581298828125;2.9004821777344;-0.79987335205078;86.88433380127;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_FACILITY;NOANIM;NOANIM;1
553826858;-35.187744140625;10.183898925781;0.44078826904297;79.912719726563;0/0/0;1/0/0;2/2/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE;NOANIM;NOANIM;1
279228114;-11.266357421875;1.4255676269531;-0.59174728393555;83.41187286377;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-36.900146484375;-40.341003417969;1.4089393615723;235.8763885498;0/4/2;1/0/0;2/8/0;3/5/1;4/4/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1415150394;-10.84375;15.41650390625;-0.29487609863281;353.35062866211;0/0/0;1/-1/255;2/0/0;3/0/0;4/0/0;5/-1/255;6/0/0;7/-1/255;8/-1/255;9/-1/255;10/-1/255;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
-1860463438;11.334228515625;2.9382934570313;-0.83710479736328;194.09878540039;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-41.084228515625;-3.5946655273438;0.44081878662109;297.2998046875;0/3/1;1/0/0;2/7/1;3/4/0;4/3/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT;NOANIM;NOANIM;3
279228114;-9.53076171875;-31.380828857422;0.40898132324219;150.59912109375;0/4/1;1/0/0;2/9/1;3/6/0;4/5/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-1860463438;-26.864990234375;2.2797546386719;0.44082641601563;28.199049758911;0/6/0;1/0/0;2/8/0;3/9/4;4/4/1;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-22.1328125;-9.9440307617188;0.4407958984375;352.19938964844;0/0/2;1/0/0;2/2/0;3/1/0;4/1/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
279228114;-40.210205078125;-21.170944213867;0.38017654418945;59.21212387085;0/1/1;1/0/0;2/3/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;12.467529296875;3.3342590332031;-0.83204650878906;229.77044677734;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-23.667236328125;-44.602325439453;1.0090484619141;263.33177490234;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-54.858154296875;-27.075225830078;1.0408248901367;238.19868774414;0/3/2;1/0/0;2/3/2;3/1/3;4/1/0;5/0/0;6/0/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-20.707275390625;6.1807250976563;-0.59172439575195;60.761502075195;0/3/1;1/0/0;2/3/1;3/0/2;4/1/0;5/0/0;6/0/1;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;1
-1860463438;-29.437255859375;-56.013214111328;0.99850463867188;57.2177734375;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
553826858;-51.260986328125;8.8157653808594;0.44113922119141;192.89949035645;0/4/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_FACILITY;NOANIM;NOANIM;1
-1694204705;-26.25;4.2784729003906;-0.5504035949707;103.49549407959;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;-11.3466796875;-42.34944152832;0.40894317626953;207.55474853516;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-8.035400390625;-37.1328125;0.82003021240234;360.24982910156;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;-13.244873046875;-41.6650390625;0.40895462036133;80.652603149414;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;-15.371337890625;-27.090316772461;0.44087219238281;18.0;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;4.607666015625;-24.341110229492;0.40898895263672;342.3327331543;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;base;anim@amb@office@boardroom@boss@female@;1
279228114;3.045654296875;-30.727813720703;0.80910110473633;14.54231262207;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_SLUMPED;NOANIM;NOANIM;3
553826858;-30.8310546875;-35.971939086914;1.0158615112305;272.70567626953;0/6/0;1/0/0;2/3/0;3/7/1;4/4/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
279228114;-23.257080078125;-16.341064453125;0.44073867797852;263.99914550781;0/0/2;1/0/0;2/5/1;3/1/0;4/1/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
279228114;-21.9384765625;-30.499206542969;0.0088920593261719;305.99966430664;0/2/0;1/0/0;2/0/1;3/1/1;4/1/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;base;anim@amb@office@boardroom@boss@female@;3
279228114;-21.723388671875;-38.674728393555;0.40880966186523;277.17681884766;0/3/0;1/0/0;2/6/1;3/4/1;4/3/0;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
@@ -1,77 +0,0 @@
2434503858;-8.7872924804688;23.961009979248;-0.25996398925781;-0.020168560743332;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;16.277465820313;18.272291183472;-0.11618041992188;326.27932739258;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-18.864318847656;-19.675247192383;-0.70819091796875;54.179363250732;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-12.779235839844;15.591951370239;-0.67390441894531;110.77623748779;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
553826858;30.58642578125;-5.018985748291;-0.7552490234375;68.124870300293;0/2/1;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;-4.3040161132813;-32.721099853516;-0.67387390136719;336.61962890625;0/4/0;1/0/0;2/8/1;3/5/2;4/4/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;11.405029296875;-6.0403289794922;-0.6871337890625;86.056533813477;0/11/2;1/0/0;2/14/1;3/13/2;4/8/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-13.685974121094;-18.847267150879;-0.67822265625;217.37690734863;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;-28.88818359375;-14.186309814453;-0.67391967773438;63.763027191162;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;1.8112182617188;-7.6772880554199;-0.69148254394531;191.28015136719;0/5/0;1/0/0;2/5/0;3/0/4;4/1/0;5/0/0;6/0/0;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
279228114;-2.0689086914063;18.453989028931;-0.66619873046875;112.45561523438;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;30.411071777344;3.8069267272949;-0.67398071289063;234.56781005859;0/6/1;1/0/0;2/3/0;3/6/0;4/3/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-0.23419189453125;13.93713760376;-0.67386627197266;48.884963989258;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-8.1416625976563;6.1239776611328;-0.66889953613281;342.76519775391;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;30.428283691406;-14.059211730957;0.030380249023438;216.07926635742;0/1/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;NOANIM;NOANIM;3
2434503858;-8.68505859375;5.3419342041016;-0.66512298583984;144.89999084473;0/6/1;1/0/0;2/8/1;3/9/5;4/4/3;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
1278330017;-14.859130859375;-18.609802246094;-0.6590576171875;92.956588745117;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;12.797424316406;-26.692459106445;-0.67387390136719;186.74208068848;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-5.9449462890625;12.739471435547;-0.66284942626953;221.87998657227;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
279228114;-10.22900390625;2.704345703125;-0.65725708007813;106.49894714355;0/4/2;1/0/0;2/9/0;3/6/2;4/5/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-14.779968261719;-25.711486816406;-0.67388153076172;174.93353271484;0/4/1;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
553826858;10.816284179688;-3.3903579711914;-0.69092559814453;179.86836242676;0/5/0;1/0/0;2/4/0;3/3/0;4/2/0;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
2600762591;-7.91845703125;-4.1009788513184;-0.65665435791016;274.61987304688;0/13/2;1/0/0;2/9/0;3/13/2;4/9/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;14.529724121094;-3.6628456115723;-0.68708801269531;208.11218261719;0/3/2;1/0/0;2/7/2;3/4/2;4/3/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SECURITY_SHINE_TORCH;interview_short_anton;missmic4premiere;3
279228114;4.1708984375;24.064912796021;-0.10147094726563;139.71432495117;0/0/2;1/0/0;2/0/0;3/1/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_COMPUTER;NOANIM;NOANIM;2
553826858;-15.090759277344;-14.147415161133;-0.66891479492188;45.870944976807;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;11.544921875;-9.9813842773438;-0.7996826171875;229.26098632813;0/7/0;1/0/0;2/3/0;3/6/1;4/4/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;3
553826858;8.3779296875;19.84729385376;-0.733154296875;321.16220092773;0/7/2;1/0/0;2/3/0;3/6/2;4/3/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_WINDOW_SHOP_BROWSE;NOANIM;NOANIM;3
4150317356;-22.207153320313;-24.72492980957;-0.67391204833984;74.806259155273;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_STANDING;NOANIM;NOANIM;3
553826858;-8.6715087890625;-5.350414276123;-0.67018890380859;-148.45899963379;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-1.6362915039063;19.790523529053;-0.64662170410156;25.383219909668;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-7.1082763671875;12.82543182373;-0.66837310791016;93.391899108887;0/9/1;1/0/0;2/11/2;3/12/2;4/7/1;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;11.49462890625;-2.0588569641113;-0.68126678466797;296.16398925781;0/0/1;1/0/0;2/5/1;3/2/0;4/0/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_CASINO_TERRACE;NOANIM;NOANIM;1
279228114;1.5167846679688;-24.610343933105;-0.75183868408203;6.0595998764038;0/1/2;1/0/0;2/2/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
55858852;24.944091796875;-13.559906005859;-0.35398101806641;140.65014343262;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
3138220789;18.698974609375;9.9356842041016;-0.67382049560547;185.33483581543;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;3
279228114;-9.4822998046875;-4.0004692077637;-0.67018890380859;42.865997314453;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;5.6478271484375;13.493465423584;-0.66499328613281;165.04089355469;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;23.150939941406;-14.019443511963;-0.57590484619141;141.49633789063;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;12.711547851563;19.106533050537;-0.67390441894531;330.55627441406;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;7.3496704101563;0.65901947021484;-1.0001678466797;181.88602905273;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;9.3544921875;7.8700561523438;-1.0359954833984;43.959365844727;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
553826858;-12.275817871094;16.312839508057;-0.67397308349609;29.177249908447;0/8/1;1/0/0;2/1/0;3/8/0;4/6/0;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;1
279228114;4.7060546875;12.79080581665;-0.66825103759766;243.84157104492;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-17.613159179688;-1.2354278564453;-0.67396545410156;96.303718566895;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;24.3603515625;10.715633392334;-0.67380523681641;298.25578613281;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
279228114;-7.5050659179688;-7.9612846374512;-0.67391967773438;272.57165527344;0/4/0;1/0/0;2/9/1;3/6/1;4/5/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-0.59619140625;18.482517242432;-0.66362762451172;280.13953857422;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;3.2254028320313;3.212947845459;-0.20298767089844;153.4035369873;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
450271392;0.6334228515625;35.269824981689;-0.67389678955078;339.43181152344;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
2600762591;14.848815917969;18.41828918457;-0.67387390136719;-1.1043182611465;0/7/1;1/0/0;2/7/0;3/8/3;4/5/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
967594628;-4.896728515625;28.99919128418;-0.67389678955078;350.97969360352;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_LOW_CLASS;NOANIM;NOANIM;3
279228114;-4.9805908203125;-33.754745483398;-0.67396545410156;92.30640411377;0/3/2;1/0/0;2/6/2;3/3/2;4/2/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;9.8928833007813;-2.8846740722656;-0.69168090820313;91.536666870117;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_FACILITY;NOANIM;NOANIM;1
553826858;-17.99072265625;-8.7537727355957;-0.67391967773438;258.76701660156;0/0/0;1/0/0;2/2/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE;NOANIM;NOANIM;1
279228114;-8.9125366210938;2.7949981689453;-0.64796447753906;274.49938964844;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;31.346923828125;-5.9255180358887;-0.76172637939453;225.64598083496;0/4/2;1/0/0;2/8/0;3/5/1;4/4/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;11.875;6.2086639404297;-1.0001907348633;341.09956665039;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;24.313049316406;11.93147277832;-0.67381286621094;292.57995605469;0/3/1;1/0/0;2/7/1;3/4/0;4/3/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT;NOANIM;NOANIM;3
279228114;15.574768066406;1.7040901184082;-0.69168853759766;143.32348632813;0/4/1;1/0/0;2/9/1;3/6/0;4/5/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-1860463438;-14.354614257813;-9.681468963623;-0.67396545410156;154.81707763672;0/6/0;1/0/0;2/8/0;3/9/4;4/4/1;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT_CLUBHOUSE;NOANIM;NOANIM;3
279228114;0.3314208984375;12.971771240234;-0.67397308349609;158.36950683594;0/1/1;1/0/0;2/3/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;-14.920471191406;-8.4204750061035;-0.67397308349609;45.343883514404;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;17.108093261719;0.73680114746094;-0.67396545410156;319.08322143555;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-6.0908203125;19.376499176025;-0.67393493652344;56.572829437256;0/3/2;1/0/0;2/3/2;3/1/3;4/1/0;5/0/0;6/0/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;15.346069335938;-14.009948730469;-0.67397308349609;31.769347000122;0/3/1;1/0/0;2/3/1;3/0/2;4/1/0;5/0/0;6/0/1;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;1
-1860463438;0.9892578125;23.701154708862;-0.7557373046875;79.969654846191;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
553826858;-7.4312133789063;-15.935153961182;-0.67396545410156;164.74014587402;0/4/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_FACILITY;NOANIM;NOANIM;1
-1694204705;-25.307373046875;-4.5838394165039;-0.66722869873047;118.49718475342;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;23.643737792969;4.3163871765137;-0.687255859375;126.12964630127;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-4.7685546875;-24.110244750977;-0.66854858398438;32.302276611328;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;23.78125;5.5352439880371;-0.66900634765625;-0.32176947593689;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;22.073547363281;-24.316719055176;-0.67396545410156;202.77962036133;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-26.83056640625;-21.726509094238;-0.67394256591797;171.5920715332;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;2.4996337890625;-25.996803283691;-0.5816650390625;244.27853393555;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_SLUMPED;NOANIM;NOANIM;3
553826858;-28.075927734375;-15.321235656738;-0.65979766845703;130.39946746826;0/6/0;1/0/0;2/3/0;3/7/1;4/4/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
279228114;-27.674072265625;-13.950191497803;-0.67387390136719;350.48880004883;0/0/2;1/0/0;2/5/1;3/1/0;4/1/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
@@ -1,67 +0,0 @@
2434503858;-19.838256835938;-29.570804595947;-1.1579742431641;97.981251525879;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;-3.2247314453125;6.0386700630188;-1.1584243774414;5.1603555679321;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-18.581481933594;-2.7016830444336;3.2426452636719;122.91455841064;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-18.634338378906;-24.216781616211;3.2424926757812;258.56672668457;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-3.8907470703125;-7.5634326934814;-1.1578826904297;183.09489440918;0/4/0;1/0/0;2/8/1;3/5/2;4/4/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-20.777893066406;-46.473964691162;-1.1580352783203;294.24591064453;0/11/2;1/0/0;2/14/1;3/13/2;4/8/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-36.887329101562;-4.6235961914062;3.2421417236328;70.489926147461;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;-17.838562011719;25.154922485352;-1.1591644287109;351.74349975586;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;-41.81640625;-19.90637588501;4.0841064453125;69.922569274902;0/4/0;1/1/0;2/4/0;3/1/0;4/0/0;5/0/0;6/1/0;7/2/0;8/3/0;9/0/0;10/1/0;11/1/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
2600762591;-16.094177246094;-12.426784515381;3.2424926757812;311.759765625;0/10/2;1/0/0;2/15/0;3/1/1;4/11/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
337826907;-14.289001464844;-15.702922821045;3.2422027587891;270.19537353516;0/5/0;1/0/0;2/5/0;3/0/4;4/1/0;5/0/0;6/0/0;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
279228114;-64.581298828125;-47.360157012939;-1.1587371826172;77.157054138184;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-21.361694335938;-24.310531616211;-1.1582260131836;134.51545715332;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-23.511413574219;-16.296873092651;3.2424926757812;262.96563720703;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;-17.903015136719;19.85259437561;-1.1586074829102;331.38000488281;0/6/1;1/0/0;2/8/1;3/9/5;4/4/3;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
1278330017;-23.456359863281;-1.909478187561;3.2424621582031;23.738506317139;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;-42.659729003906;-51.848621368408;-1.1586303710938;62.385772705078;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-2.8207397460938;-19.76473236084;-1.1576538085938;88.169021606445;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
279228114;-41.066284179688;-57.056888580322;-1.1588287353516;41.132080078125;0/4/2;1/0/0;2/9/0;3/6/2;4/5/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-59.837280273438;-14.758823394775;-1.1579437255859;349.84075927734;0/4/1;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
553826858;-30.496154785156;-54.54740524292;-1.1585845947266;34.151985168457;0/5/0;1/0/0;2/4/0;3/3/0;4/2/0;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
279228114;-27.9765625;-7.6263027191162;3.2424697875977;184.26542663574;0/3/2;1/0/0;2/7/2;3/4/2;4/3/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SECURITY_SHINE_TORCH;interview_short_anton;missmic4premiere;3
553826858;-34.851257324219;-0.90953826904297;3.2424926757812;102.87080383301;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-18.226257324219;-7.8966808319092;3.2424926757812;263.46086425781;0/7/0;1/0/0;2/3/0;3/6/1;4/4/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;3
553826858;-23.898803710938;-10.473737716675;3.2424926757812;-148.45899963379;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-37.531372070312;20.085004806519;-1.1582336425781;247.05068969727;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-24.970703125;2.373908996582;3.2419586181641;104.87320709229;0/9/1;1/0/0;2/11/2;3/12/2;4/7/1;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;-23.373229980469;-12.906795501709;3.2424926757812;231.06343383789;0/0/1;1/0/0;2/5/1;3/2/0;4/0/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_CASINO_TERRACE;NOANIM;NOANIM;1
55858852;-24.515319824219;-16.84888458252;3.2424926757812;83.982151794434;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;-4.0256958007812;-6.6103439331055;-1.1578826904297;8.6422243118286;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;-62.109436035156;-54.607326507568;-0.76171875;237.62396240234;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-26.574279785156;-9.4267177581787;3.2424926757812;146.17247009277;0/0/1;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_FACILITY;NOANIM;NOANIM;1
2600762591;-20.761779785156;-24.113594055176;-1.1578063964844;358.81484985352;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;0.9691162109375;-13.886451721191;-1.1577987670898;232.85092163086;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;-21.216735839844;-22.905567169189;-1.1572723388672;235.99612426758;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-23.967529296875;3.2760448455811;3.2424545288086;344.47076416016;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
553826858;-1.73388671875;-20.017433166504;-1.1577606201172;239.91159057617;0/8/1;1/0/0;2/1/0;3/8/0;4/6/0;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;1
279228114;-50.34912109375;-57.829402923584;-1.1599960327148;178.48895263672;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-6.7276611328125;-7.3364143371582;-1.1577987670898;113.85373687744;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;-23.480895996094;2.1632041931152;3.242301940918;280.94766235352;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
279228114;-38.39892578125;20.574663162231;-1.1583251953125;81.252288818359;0/4/0;1/0/0;2/9/1;3/6/1;4/5/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-17.408569335938;-1.9984741210938;3.2425231933594;291.28167724609;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-31.609375;-7.935697555542;3.2904663085938;159.70381469727;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;-32.47314453125;-54.054599761963;-0.6007080078125;138.40638427734;0/2/2;1/0/0;2/2/0;3/2/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;3
450271392;-27.932067871094;25.281848907471;-1.1593322753906;297.02154541016;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
4188740747;-30.648803710938;-28.622646331787;3.2215423583984;84.741188049316;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;2
2600762591;-22.3310546875;-2.6285591125488;3.2424926757812;237.34228820801;0/7/1;1/0/0;2/7/0;3/8/3;4/5/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
967594628;-17.1943359375;-3.2479820251465;3.2424011230469;234.16453552246;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_LOW_CLASS;NOANIM;NOANIM;3
279228114;-17.928466796875;18.786331176758;-1.1584548950195;151.4581451416;0/3/2;1/0/0;2/6/2;3/3/2;4/2/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-41.748474121094;-52.03600692749;-1.1585006713867;294.05926513672;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
1415150394;-17.000854492188;-6.6426639556885;2.9756393432617;239.10246582031;0/0/0;1/-1/255;2/0/0;3/0/0;4/0/0;5/-1/255;6/0/0;7/-1/255;8/-1/255;9/-1/255;10/-1/255;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
-1860463438;-28.666687011719;13.520670890808;-1.1578521728516;42.178745269775;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-23.137817382812;-3.1716976165771;3.2424774169922;189.8394317627;0/3/1;1/0/0;2/7/1;3/4/0;4/3/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT;NOANIM;NOANIM;3
279228114;-28.9453125;24.763179779053;-1.1584167480469;70.567970275879;0/4/1;1/0/0;2/9/1;3/6/0;4/5/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;-21.824951171875;-47.222465515137;-1.1579742431641;103.42781524658;0/1/1;1/0/0;2/3/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;-28.252807617188;-6.6486511230469;3.2424545288086;29.282115936279;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-52.179626464844;-16.19548034668;3.1614761352539;63.538203430176;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-30.06640625;-55.486919403076;-1.1589050292969;178.40603637695;0/3/2;1/0/0;2/3/2;3/1/3;4/1/0;5/0/0;6/0/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
-1860463438;-12.838806152344;13.818646430969;-1.1583099365234;266.32236938477;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
-1694204705;-0.46539306640625;-5.6159629821777;-1.1578903198242;65.928462219238;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;-30.702453613281;12.143587112427;3.2414321899414;51.978393554688;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-30.720703125;-4.3775596618652;3.2424926757812;255.25027770996;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;-67.253784179688;-48.930229187012;-0.76409912109375;354.1537902832;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;-55.75927734375;-55.550403594971;-1.1589965820312;125.26559448242;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-24.664611816406;-12.861818313599;3.2424926757812;89.999969482422;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-36.048950195312;-3.2915649414062;3.2424926757812;31.740230560303;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_SLUMPED;NOANIM;NOANIM;3
279228114;-40.436889648438;-57.659236907959;-1.1587524414062;232.07540893555;0/0/2;1/0/0;2/5/1;3/1/0;4/1/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
@@ -1,85 +0,0 @@
2434503858;-2.3212890625;19.685930252075;-0.19699859619141;53.98041229248;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
2526968950;-18.206115722656;5.7392959594727;0.19771575927734;341.53660888672;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL_EATING;NOANIM;NOANIM;3
2600762591;-18.9736328125;-19.563507080078;0.44073486328125;54.179363250732;0/3/0;1/0/0;2/3/0;3/5/0;4/3/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-35.496276855469;-14.365493774414;0.069168090820313;159.56734924316;0/9/0;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-32.623840332031;-22.029472351074;0.45345306396484;162.71843261719;0/2/1;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;-20.952941894531;5.3609809875488;-0.15920257568359;100.40215301514;0/4/0;1/0/0;2/8/1;3/5/2;4/4/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;9.7550659179688;-9.0881958007813;-0.7998046875;202.15742492676;0/11/2;1/0/0;2/14/1;3/13/2;4/8/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;-31.058898925781;-9.5620651245117;0.46534729003906;154.19045715332;0/12/2;1/0/0;2/15/1;3/15/2;4/10/2;5/0/0;6/7/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;2
279228114;-34.730529785156;-13.453735351563;0.041999816894531;-30.239999771118;0/3/0;1/0/0;2/7/0;3/3/1;4/2/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
337826907;-22.536804199219;-30.468215942383;1.2356948852539;42.482411193848;0/4/0;1/1/0;2/4/0;3/1/0;4/0/0;5/0/0;6/1/0;7/2/0;8/3/0;9/0/0;10/1/0;11/1/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
2600762591;-9.4402465820313;7.5219421386719;-0.59600067138672;23.760000228882;0/10/2;1/0/0;2/15/0;3/1/1;4/11/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
337826907;13.319458007813;0.85515213012695;-0.97772979736328;253.39671020508;0/5/0;1/0/0;2/5/0;3/0/4;4/1/0;5/0/0;6/0/0;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
279228114;0.71099853515625;11.829982757568;-0.55995941162109;125.95603637695;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-33.015808105469;-3.6640548706055;0.44068908691406;144.64302062988;0/6/1;1/0/0;2/3/0;3/6/0;4/3/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;8.0192260742188;22.348573684692;-0.55995941162109;191.12475585938;0/5/2;1/0/0;2/4/0;3/5/2;4/2/2;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;check_out_b;clothingshirt;3
2600762591;-8.8323364257813;6.7239532470703;-0.59600067138672;222.76583557129;0/11/1;1/0/0;2/11/0;3/12/0;4/10/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
553826858;-12.514831542969;18.159801483154;0.035446166992188;29.78155708313;0/1/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_DECKCHAIR_DRINK;NOANIM;NOANIM;3
2434503858;-10.096435546875;6.5718841552734;-0.59600067138672;144.0;0/6/1;1/0/0;2/8/1;3/9/5;4/4/3;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
1278330017;-31.090637207031;-8.3707122802734;0.44069671630859;350.85969238281;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MUSCLE_FLEX;NOANIM;NOANIM;2
279228114;-35.916564941406;-13.393447875977;0.067863464355469;36.659759521484;0/1/2;1/0/0;2/4/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2600762591;-4.4703979492188;11.470481872559;-0.56785583496094;221.87998657227;0/0/0;1/0/0;2/12/0;3/0/0;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;2
279228114;-9.700927734375;1.3271408081055;-0.18263244628906;127.49905395508;0/4/2;1/0/0;2/9/0;3/6/2;4/5/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
553826858;-10.754211425781;-24.333236694336;0.44069671630859;174.93353271484;0/4/1;1/0/0;2/2/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
553826858;9.237548828125;-2.7126541137695;-0.82183837890625;347.5698425293;0/5/0;1/0/0;2/4/0;3/3/0;4/2/0;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
2600762591;-9.149658203125;-1.6710662841797;-0.15850067138672;-88.380012512207;0/13/2;1/0/0;2/9/0;3/13/2;4/9/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;8.816162109375;-8.6635551452637;-0.79960632324219;148.41452026367;0/3/2;1/0/0;2/7/2;3/4/2;4/3/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SECURITY_SHINE_TORCH;interview_short_anton;missmic4premiere;3
279228114;-17.254150390625;10.492946624756;-0.006988525390625;232.8263671875;0/0/2;1/0/0;2/0/0;3/1/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_COMPUTER;NOANIM;NOANIM;2
553826858;-17.671813964844;-20.024726867676;0.44068908691406;316.77166748047;0/7/1;1/0/0;2/3/0;3/7/2;4/4/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;11.544921875;-9.9813842773438;-0.7996826171875;229.26098632813;0/7/0;1/0/0;2/3/0;3/6/1;4/4/0;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;3
553826858;7.6781616210938;19.367282867432;-0.55995941162109;183.16337585449;0/7/2;1/0/0;2/3/0;3/6/2;4/3/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_WINDOW_SHOP_BROWSE;NOANIM;NOANIM;3
4150317356;-14.908264160156;1.1704330444336;-0.15917205810547;80.89026184082;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_STANDING;NOANIM;NOANIM;3
553826858;-8.1075439453125;-3.9700012207031;-0.18000030517578;-148.45899963379;0/3/1;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;0.44256591796875;12.959438323975;-0.56001281738281;35.283293914795;0/2/2;1/0/0;2/5/0;3/2/1;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
2434503858;-5.4266357421875;11.565483093262;-0.59600067138672;90.391998291016;0/9/1;1/0/0;2/11/2;3/12/2;4/7/1;5/0/0;6/5/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
279228114;9.5970458984375;-4.2397727966309;-0.79525756835938;231.06343383789;0/0/1;1/0/0;2/5/1;3/2/0;4/0/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_CASINO_TERRACE;NOANIM;NOANIM;1
279228114;-20.054809570313;5.9362335205078;-0.15920257568359;319.75811767578;0/1/2;1/0/0;2/2/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
55858852;8.4437255859375;-5.532341003418;-0.59566497802734;148.78296203613;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
3138220789;-34.43603515625;6.0365447998047;0.44069671630859;6.3087017059326;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;3
279228114;-8.7015380859375;-3.2505035400391;-0.16000366210938;42.865997314453;0/2/1;1/0/0;2/1/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
2434503858;5.7977294921875;16.442882537842;-0.54164123535156;129.04111938477;0/11/1;1/0/0;2/13/0;3/14/1;4/9/1;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;10.246154785156;6.8676071166992;-1.0139999389648;227.17247314453;0/0/1;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_FACILITY;NOANIM;NOANIM;1
2600762591;9.1370849609375;6.6064262390137;-1.000114440918;151.72654724121;0/12/0;1/0/0;2/8/1;3/13/1;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
553826858;-37.6806640625;-17.387680053711;0.43772125244141;3.7649207115173;0/2/2;1/0/0;2/2/0;3/1/0;4/0/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CLUBHOUSE;NOANIM;NOANIM;1
2434503858;7.3496704101563;0.65901947021484;-1.0001678466797;181.88602905273;0/10/1;1/0/0;2/12/2;3/12/1;4/7/0;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;9.3544921875;7.8700561523438;-1.0359954833984;43.959365844727;0/1/1;1/0/0;2/4/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MAP;NOANIM;NOANIM;1
553826858;-9.026123046875;16.151987075806;-0.57041931152344;4.5585260391235;0/8/1;1/0/0;2/1/0;3/8/0;4/6/0;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;EAR_TO_TEXT;NOANIM;NOANIM;1
279228114;5.8204956054688;12.256855010986;-0.56000518798828;243.84157104492;0/2/1;1/0/0;2/3/0;3/0/1;4/1/1;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT;NOANIM;NOANIM;2
553826858;-16.626098632813;5.791446685791;-0.56474304199219;45.98267364502;0/3/0;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
2600762591;5.399169921875;13.381549835205;-0.54174041748047;334.91586303711;0/9/0;1/0/0;2/1/0;3/10/4;4/7/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
2600762591;12.949584960938;19.80983543396;-0.56000518798828;275.12399291992;0/5/0;1/0/0;2/4/1;3/6/0;4/4/3;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;3
279228114;-8.8939819335938;14.51245880127;-0.56764984130859;189.77952880859;0/4/0;1/0/0;2/9/1;3/6/1;4/5/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
279228114;1.642822265625;12.497505187988;-0.57600402832031;272.04014892578;0/0/0;1/0/0;2/5/1;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;3
2434503858;2.5347290039063;6.9387321472168;-0.20298767089844;159.70381469727;0/3/1;1/0/0;2/5/2;3/5/2;4/2/0;5/0/0;6/1/3;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SEAT_WALL;NOANIM;NOANIM;3
279228114;-11.734680175781;18.750513076782;-0.035064697265625;23.184113693237;0/2/2;1/0/0;2/2/0;3/2/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;3
450271392;-4.5588989257813;22.353923797607;-0.56000518798828;13.837906837463;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_HIGH_CLASS;NOANIM;NOANIM;3
4188740747;-0.9521484375;18.75630569458;-0.29718017578125;-48.959999084473;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;PROP_HUMAN_SEAT_BENCH_DRINK_BEER;NOANIM;NOANIM;2
2600762591;-31.840637207031;-3.4384803771973;0.44069671630859;237.34228820801;0/7/1;1/0/0;2/7/0;3/8/3;4/5/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
967594628;-1.6597290039063;22.329448699951;-0.55992889404297;285.9864074707;0/0/0;1/0/0;2/0/0;3/0/0;4/0/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PROSTITUTE_LOW_CLASS;NOANIM;NOANIM;3
279228114;-32.937072753906;-2.4253196716309;0.44069671630859;341.03814697266;0/3/2;1/0/0;2/6/2;3/3/2;4/2/1;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;8.1873779296875;-4.0992813110352;-0.79987335205078;86.88433380127;0/1/0;1/0/0;2/2/1;3/0/2;4/1/2;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRINKING_FACILITY;NOANIM;NOANIM;1
553826858;-45.362609863281;4.3761596679688;0.44078826904297;79.912719726563;0/0/0;1/0/0;2/2/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE_UPRIGHT_CLUBHOUSE;NOANIM;NOANIM;1
279228114;-9.0543212890625;1.9701614379883;-0.25605010986328;283.49948120117;0/1/2;1/0/0;2/1/0;3/1/2;4/0/2;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;3
279228114;-31.920166015625;-20.99454498291;0.45345306396484;324.58986206055;0/4/2;1/0/0;2/8/0;3/5/1;4/4/1;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1415150394;-0.20037841796875;17.305589675903;-0.27812957763672;291.30180053711;0/0/0;1/-1/255;2/0/0;3/0/0;4/0/0;5/-1/255;6/0/0;7/-1/255;8/-1/255;9/-1/255;10/-1/255;11/0/0;PROP_HUMAN_SEAT_CHAIR_FOOD;NOANIM;NOANIM;2
-1860463438;11.875;6.2086639404297;-1.0001907348633;341.09956665039;0/7/1;1/0/0;2/9/0;3/8/1;4/4/2;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;3
279228114;-36.5263671875;7.1977615356445;0.44081878662109;297.2998046875;0/3/1;1/0/0;2/7/1;3/4/0;4/3/2;5/0/0;6/0/0;7/0/0;8/5/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT;NOANIM;NOANIM;3
279228114;-52.217895507813;-14.667984008789;1.4408645629883;221.72512817383;0/4/1;1/0/0;2/9/1;3/6/0;4/5/2;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-1860463438;-37.584777832031;7.0065307617188;0.44082641601563;26.39906578064;0/6/0;1/0/0;2/8/0;3/9/4;4/4/1;5/0/0;6/3/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING_POT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-28.341613769531;-0.0093727111816406;0.4407958984375;352.19938964844;0/0/2;1/0/0;2/2/0;3/1/0;4/1/0;5/0/0;6/1/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
279228114;-53.113586425781;-14.065052032471;1.4428405761719;59.699509429932;0/1/1;1/0/0;2/3/0;3/2/2;4/0/2;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1860463438;-53.912719726563;-6.995174407959;1.3979949951172;305.39948730469;0/9/0;1/0/0;2/12/0;3/12/0;4/7/2;5/0/0;6/5/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT_CLUBHOUSE;NOANIM;NOANIM;3
553826858;-63.516845703125;-3.9238929748535;1.4413681030273;65.999870300293;0/1/2;1/0/0;2/2/0;3/2/0;4/0/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-43.256530761719;-25.443893432617;1.0408248901367;238.19868774414;0/3/2;1/0/0;2/3/2;3/1/3;4/1/0;5/0/0;6/0/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;1
337826907;-59.064392089844;-22.138885498047;1.4408569335938;184.74311828613;0/3/1;1/0/0;2/3/1;3/0/2;4/1/0;5/0/0;6/0/1;7/3/0;8/2/0;9/0/0;10/2/0;11/2/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;1
-1860463438;-54.520812988281;-31.258232116699;1.0408248901367;43.798686218262;0/5/0;1/0/0;2/6/1;3/6/2;4/3/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MAID_CLEAN;NOANIM;NOANIM;1
553826858;-41.940856933594;1.7172203063965;0.44113922119141;192.89949035645;0/4/0;1/0/0;2/2/0;3/2/0;4/1/0;5/0/0;6/2/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_FACILITY;NOANIM;NOANIM;1
-1694204705;-23.35546875;-7.073802947998;-0.15924835205078;154.49736022949;0/6/2;1/0/0;2/6/2;3/8/1;4/6/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_DRUG_DEALER_HARD;NOANIM;NOANIM;3
553826858;-30.47998046875;-29.383125305176;0.44069671630859;150.89926452637;0/8/0;1/0/0;2/0/0;3/8/1;4/6/1;5/0/0;6/3/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STUPOR_CLUBHOUSE;NOANIM;NOANIM;3
279228114;-15.574096679688;-28.165588378906;0.82003021240234;360.24982910156;0/0/0;1/0/0;2/0/0;3/0/0;4/1/0;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_TOURIST_MOBILE;NOANIM;NOANIM;3
-1860463438;-31.451416015625;-28.793571472168;0.44167327880859;88.578625488281;0/8/1;1/0/0;2/10/2;3/11/1;4/6/1;5/0/0;6/4/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_JOG_STANDING;NOANIM;NOANIM;3
279228114;-25.285339355469;-20.848434448242;0.44087219238281;18.0;0/0/1;1/0/0;2/1/0;3/2/0;4/1/0;5/0/0;6/0/0;7/0/0;8/3/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-26.120056152344;-21.742851257324;0.44075775146484;89.999969482422;0/2/0;1/0/0;2/5/0;3/1/1;4/0/1;5/0/0;6/0/0;7/0/0;8/2/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;1
279228114;-12.392761230469;-27.024757385254;0.84078216552734;268.74055175781;0/4/1;1/0/0;2/8/1;3/5/0;4/4/0;5/0/0;6/0/0;7/0/0;8/6/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_BUM_SLUMPED;NOANIM;NOANIM;3
553826858;-22.664489746094;-27.572380065918;0.82898712158203;275.99908447266;0/6/0;1/0/0;2/3/0;3/7/1;4/4/2;5/0/0;6/6/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
279228114;-23.663146972656;-27.995819091797;0.84578704833984;128.99987792969;0/0/2;1/0/0;2/5/1;3/1/0;4/1/0;5/0/0;6/0/0;7/0/0;8/4/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET_CLUBHOUSE;NOANIM;NOANIM;2
@@ -1,6 +0,0 @@
-1519253631;-1925.2986;-1326.1562;-2.6549;170.32;0/1/1;1/0/0;2/2/0;3/1/0;4/0/3;5/0/0;6/0/0;7/0/0;8/1/1;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_LEANING_CASINO_TERRACE;NOANIM;NOANIM;1
-1106743555;-1934.0895;-1337.6454;-2.6589;197.30;0/1/0;1/0/0;2/1/0;3/0/3;4/1/1;5/0/0;6/0/0;7/0/0;8/1/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-771835772;-1933.7921;-1338.6002;-2.6589;17.30;0/0/1;1/0/0;2/0/0;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
-1606864033;-1924.4449;-1345.0160;-2.6665;111.35;0/1/0;1/0/0;2/1/0;3/1/2;4/1/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;1
-1606864033;-1925.4336;-1344.8656;-2.6665;231.35;0/0/0;1/0/0;2/0/1;3/0/1;4/0/1;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;1
-781039234;-1925.0695;-1345.7970;-2.6665;351.35;0/1/0;1/0/0;2/1/0;3/0/1;4/0/2;5/0/0;6/0/0;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;1
@@ -1,37 +0,0 @@
-1760377969;-1373.4498291016;-1060.470703125;11.466174125671;306.86770629883;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;2
1750583735;-1350.9283447266;-1064.3785400391;7.0069794654846;216.15802001953;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_LEANING_CASINO_TERRACE;NOANIM;NOANIM;2
1328415626;-1352.8482666016;-1072.0590820312;11.467930793762;140.0007019043;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1328415626;-1353.8458251953;-1071.9892578125;11.467930793762;212.00015258789;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_MOBILE_FILM_SHOCKING;NOANIM;NOANIM;2
-1606864033;-1354.2204589844;-1072.9165039062;11.467930793762;284.00036621094;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1106743555;-1353.4543457031;-1073.5593261719;11.467930793762;356.00103759766;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
-88831029;-1352.6063232422;-1073.029296875;11.467930793762;68.003150939941;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1106743555;-1346.2290039062;-1051.2973632812;11.473196983337;139.99722290039;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
532905404;-1347.6236572266;-1051.4193115234;11.473196983337;229.99723815918;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
951767867;-1347.5017089844;-1052.8139648438;11.473196983337;319.99722290039;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_MOBILE;NOANIM;NOANIM;2
808859815;-1346.1070556641;-1052.6920166016;11.473196983337;49.997222900391;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;2
-1106743555;-1351.5688476562;-1088.7530517578;14.461860656738;243.13638305664;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1606864033;-1351.1953125;-1089.8934326172;14.461860656738;333.13635253906;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;2
-1106743555;-1350.0549316406;-1089.5198974609;14.461860656738;63.136360168457;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;2
808859815;-1350.4284667969;-1088.3795166016;14.461860656738;153.13635253906;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1519253631;-1333.9119873047;-1057.4927978516;12.472941398621;88.437103271484;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-771835772;-1334.7640380859;-1056.9693603516;12.472941398621;208.43449401855;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;2
-150026812;-1334.7913818359;-1057.9689941406;12.472941398621;328.43374633789;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;2
808859815;-1357.7598876953;-1081.0675048828;14.461861610413;210.42828369141;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_LEANING_CASINO_TERRACE;NOANIM;NOANIM;2
-1029146878;-1319.0225830078;-1051.01953125;12.472941398621;157.19375610352;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;2
951767867;-1319.978515625;-1051.7448730469;12.472941398621;277.18634033203;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1328415626;-1318.8723144531;-1052.2100830078;12.472941398621;37.194969177246;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;2
532905404;-1354.3010253906;-1094.9360351562;14.461860656738;149.99716186523;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_SMOKING;NOANIM;NOANIM;2
1699403886;-1355.3403320312;-1095.5360107422;14.461860656738;270.0;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
1004114196;-1354.3010253906;-1096.1359863281;14.461860656738;30.002820968628;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
808859815;-1353.4924316406;-1069.5164794922;6.9393043518066;82.702194213867;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-88831029;-1354.4471435547;-1068.7893066406;6.9393043518066;202.70683288574;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
1750583735;-1354.5994873047;-1069.9796142578;6.9393043518066;322.70404052734;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1760377969;-1348.1529541016;-1075.0477294922;7.0343465805054;210.42851257324;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;2
1699403886;-1353.4696044922;-1051.2901611328;11.466174125671;140.00311279297;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_GUARD_STAND_CASINO;NOANIM;NOANIM;2
-771835772;-1354.5971679688;-1051.7005615234;11.466174125671;259.99493408203;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1519253631;-1353.6779785156;-1052.4719238281;11.466174125671;19.999492645264;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_HANG_OUT_STREET;NOANIM;NOANIM;2
-1606864033;-1339.2288818359;-1068.5532226562;11.467930793762;172.81280517578;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
532905404;-1339.3790283203;-1069.7438964844;11.467930793762;352.8127746582;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
-1760377969;-1360.1525878906;-1096.7788085938;14.607006072998;295.40869140625;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_LEANING_CASINO_TERRACE;NOANIM;NOANIM;2
1004114196;-1354.6751708984;-1079.1682128906;6.9393043518066;203.02227783203;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_PARTYING;NOANIM;NOANIM;2
532905404;-1354.2840576172;-1080.0886230469;6.9393043518066;23.022274017334;0/12/0;1/0/0;2/15/2;3/15/1;4/10/1;5/0/0;6/7/1;7/0/0;8/0/0;9/0/0;10/0/0;11/0/0;WORLD_HUMAN_STAND_IMPATIENT;NOANIM;NOANIM;2
@@ -1,205 +0,0 @@
local bossMenu = createMarker()
local vehReplacenent = createMarker()
local enterTeleport = nil
CreateThread(function()
bossMenu.setType(1)
bossMenu.setPosition(OfficeBossMarkerPosition)
bossMenu.setScale(vector3(1, 1, 1))
bossMenu.setInRadius(1.3)
bossMenu.setColor({
r = 225,
g = 125,
b = 250,
a = 50
})
bossMenu.setRotation(true)
bossMenu.setKeys({38})
bossMenu.on("enter", function()
ShowHelpNotification(Translation.Get("PRESS_TO_OPEN_BOSSMENU"))
end)
bossMenu.on("leave", function()
if ESX then
if ESX.UI then
ESX.UI.Menu.CloseAll()
end
end
-- I didnt found any way to close the qbcore menu seems like there isnt anything for this?
-- if you know the answer please contact us support and dont hesitate to help us!
if QBCore then
end
end)
bossMenu.setRenderJob(Config.JobName)
bossMenu.setGrades({
[Config.BossName] = true
})
bossMenu.setMinGrade(Config.BossGrade)
bossMenu.on("key", function()
if Framework.Active == 1 then
TriggerEvent(Events.ES_BOSS_MENU, Config.JobName, function(data, menu)
if menu then
menu.close()
end
end, {
withdraw = true,
deposit = true,
wash = true,
employees = true,
grades = true
})
elseif Framework.Active == 2 then
TriggerEvent(Events.QB_BOSS_MENU)
elseif Framework.Active == 4 then
-- implement function that opens bossmenu
end
end)
vehReplacenent.setType(36)
vehReplacenent.setPosition(vehicleReplacementCoords)
vehReplacenent.setScale(vector3(1, 1, 1))
vehReplacenent.setRotation(true)
vehReplacenent.setOnlyVehicle(1)
vehReplacenent.setInRadius(3.0)
vehReplacenent.setKeys({38})
vehReplacenent.setColor({
r = 255,
g = 255,
b = 255,
a = 125
})
vehReplacenent.setRenderJob(Config.JobName)
vehReplacenent.setGrades({
[Config.BossName] = true
})
vehReplacenent.setMinGrade(1)
vehReplacenent.on("enter", function()
ShowHelpNotification(Translation.Get("PRESS_TO_GIFT_LUCKYWHEEL_VEH"))
end)
vehReplacenent.on("key", function(key)
CasinoGarage_OnInteraction()
end)
vehReplacenent.on("leave", function()
if ESX then
if ESX.UI then
ESX.UI.Menu.CloseAll()
end
end
-- I didnt found any way to close the qbcore menu seems like there isnt anything for this?
-- if you know the answer please contact us support and dont hesitate to help us!
if QBCore then
end
end)
end)
-- Teleports
local function CreateTeleport(fromCoord, toCoord, message)
local enterTeleport = createMarker()
enterTeleport.setActivity("casinoteleporter")
enterTeleport.setType(1)
enterTeleport.setPosition(fromCoord)
enterTeleport.setScale(vector3(1.0, 1.0, 1.0))
enterTeleport.setRotation(true)
enterTeleport.setInRadius(3.0)
enterTeleport.setKeys({38})
enterTeleport.setColor({
r = 225,
g = 125,
b = 250,
a = 125
})
enterTeleport.on("enter", function()
ShowHelpNotification(message)
end)
enterTeleport.on("key", function(key)
CreateThread(function()
DoScreenFadeOut(500)
Wait(500)
SetEntityCoordsNoOffset(PlayerPedId(), toCoord)
Wait(500)
DoScreenFadeIn(500)
end, "custom tp")
end)
end
function BossMenu_Refresh()
bossMenu.setPosition(OfficeBossMarkerPosition)
vehReplacenent.setPosition(vehicleReplacementCoords)
-- refresh leave teleport for 5
if enterTeleport then
enterTeleport.destroy()
enterTeleport = nil
end
if Config.LeaveThroughTeleport then
enterTeleport = createMarker()
enterTeleport.setActivity("casinoteleporter")
enterTeleport.setType(1)
enterTeleport.setPosition(Config.EnterCheckpointPosition)
enterTeleport.setScale(vector3(1.0, 1.0, 1.0))
enterTeleport.setRotation(true)
enterTeleport.setInRadius(3.0)
enterTeleport.setKeys({38})
enterTeleport.setColor({
r = 225,
g = 125,
b = 250,
a = 125
})
enterTeleport.on("enter", function()
if OPEN_STATE[1] == true then
ShowHelpNotification(Translation.Get("PRESS_TO_ENTER_CASINO"))
else
local m = string.format(Translation.Get("OPENINGHOURS_CLOSED"), OPEN_STATE[2])
if FORCE_CLOSED then
m = Translation.Get("CASINO_TEMPORARY_CLOSED")
end
ShowHelpNotification(m)
end
end)
enterTeleport.on("key", function(key)
if OPEN_STATE[1] == true then
CreateThread(function()
Wait(500)
if Config.MapType ~= 5 then
DoScreenFadeOut(500)
SetEntityCoordsNoOffset(PlayerPedId(), Config.EnterPosition)
else
StartGTAOTPScene()
end
end, "teleport thread to casino")
else
Casino_ShowNotInOpenHoursPrompt(false)
end
end)
end
end
--[[
-- from casino to roof
CreateTeleport(vec3(919.722412, 41.050205, 80.095779), vec3(964.190613, 59.005474, 112.552979),
"Press [E] to go to the rooftop")
-- back
CreateTeleport(vec3(964.190613, 59.005474, 111.552979), vec3(919.722412, 41.050205, 80.095779),
"Press [E] to go back to the casino")
]]
File diff suppressed because it is too large Load Diff
@@ -1,273 +0,0 @@
local targetId = 5
local usedTargetModels = {}
local usedBoxZones = {}
local usedEntities = {}
local function GetUniqueTargetName()
targetId = targetId + 1
return "casinotarget_" .. targetId
end
TargetType = {
NO_TARGET = 0,
Q_TARGET = 1,
BT_TARGET = 2,
QB_TARGET = 3,
OX_TARGET = 4
}
TargetTypeResourceName = {
[TargetType.NO_TARGET] = "none",
[TargetType.Q_TARGET] = "qtarget",
[TargetType.BT_TARGET] = "bt-target",
[TargetType.QB_TARGET] = "qb-target",
[TargetType.OX_TARGET] = "ox_target"
}
function CreateTargetZone(coords, length, width, heading, options)
if not Config.UseTarget then
return
end
Config.ShowHowToPlayUI = 0
local resourceName = TargetTypeResourceName[Config.TargetZoneType]
local targetName = GetUniqueTargetName()
local job = TargetType.BT_TARGET and {"all"} or nil
local sameExports = {
[TargetType.Q_TARGET] = true,
[TargetType.BT_TARGET] = true,
[TargetType.QB_TARGET] = true
}
if Config.TargetZoneType == TargetType.OX_TARGET then
coords = vector3(coords.x, coords.y, coords.z - 0.5)
local zoneId = exports.ox_target:addBoxZone({
name = targetName,
coords = coords,
size = vector3(width, length, 2.0),
rotation = heading,
-- debug = true,
minZ = coords.z - length,
maxZ = coords.z + length,
options = options,
distance = 5.0
})
usedBoxZones[zoneId] = true
elseif sameExports[Config.TargetZoneType] then
local targetoptions = {
options = options,
distance = 5.0,
heading = heading,
job = job
}
exports[resourceName]:AddBoxZone(targetName, coords, length, width, {
name = targetName,
heading = heading,
-- debugPoly = true,
minZ = coords.z - length,
maxZ = coords.z + length
}, targetoptions)
end
end
function CreateTargetModel(model, options)
if not Config.UseTarget then
return
end
if not tonumber(model) then
model = GetHashKey(model)
end
usedTargetModels[model] = true
Config.ShowHowToPlayUI = 0
local resourceName = TargetTypeResourceName[Config.TargetZoneType]
local targetName = GetUniqueTargetName()
local job = TargetType.BT_TARGET and {"all"} or nil
local sameExports = {
[TargetType.Q_TARGET] = true,
[TargetType.BT_TARGET] = true,
[TargetType.QB_TARGET] = true
}
if Config.TargetZoneType == TargetType.OX_TARGET then
exports.ox_target:addModel(model, options)
elseif sameExports[Config.TargetZoneType] then
local targetoptions = {
options = options,
distance = 5.0,
job = job
}
if Config.TargetZoneType == TargetType.BT_TARGET then
model = {model}
end
exports[resourceName]:AddTargetModel(model, targetoptions)
end
end
function CreateTargetEntity(entity, options)
if not Config.UseTarget then
return
end
if usedEntities[entity] then
return
end
usedEntities[entity] = true
local resourceName = TargetTypeResourceName[Config.TargetZoneType]
if Config.TargetZoneType == TargetType.OX_TARGET then
exports[resourceName]:addLocalEntity(entity, options)
elseif Config.TargetZoneType == TargetType.QB_TARGET then
exports[resourceName]:AddTargetEntity(entity, {
distance = 5.0,
options = options
})
elseif Config.TargetZoneType == TargetType.Q_TARGET then
exports[resourceName]:AddTargetEntity(entity, options)
elseif Config.TargetZoneType == TargetType.BT_TARGET then
local entityCoords = GetEntityCoords(entity)
CreateTargetZone(entityCoords, 1.0, 1.0, GetEntityHeading(entity), options)
end
end
function RemoveAllTargetEntities()
local resourceName = TargetTypeResourceName[Config.TargetZoneType]
for entityId, v in pairs(usedEntities) do
if Config.TargetZoneType == TargetType.OX_TARGET then
exports[resourceName]:removeLocalEntity(entityId)
elseif Config.TargetZoneType == TargetType.QB_TARGET then
exports[resourceName]:RemoveTargetEntity(entityId)
elseif Config.TargetZoneType == TargetType.Q_TARGET then
exports[resourceName]:RemoveTargetEntity(entityId)
end
end
usedEntities = {}
end
function RemoveAllTargetZones()
if not Config.UseTarget then
return
end
local resourceName = TargetTypeResourceName[Config.TargetZoneType]
local targetName = GetUniqueTargetName()
local sameExports = {
[TargetType.Q_TARGET] = true,
[TargetType.BT_TARGET] = true,
[TargetType.QB_TARGET] = true
}
if Config.TargetZoneType == TargetType.OX_TARGET then
for k, v in pairs(usedTargetModels) do
exports.ox_target:removeModel(k)
end
for k, v in pairs(usedBoxZones) do
exports.ox_target:removeZone(k)
end
elseif sameExports[Config.TargetZoneType] then
for i = 5, targetId, 1 do
exports[resourceName]:RemoveZone("casinotarget_" .. i)
end
if Config.TargetZoneType ~= TargetType.BT_TARGET then -- bt target doesn't have RemoveTargetModel
for k, v in pairs(usedTargetModels) do
exports[resourceName]:RemoveTargetModel(k)
end
end
end
usedTargetModels = {}
usedBoxZones = {}
RemoveAllTargetEntities()
end
RegisterNetEvent("rcore_casino:Target")
AddEventHandler("rcore_casino:Target", function(data)
if not CAN_INTERACT or LAST_STARTED_GAME_TYPE ~= nil then
return
end
if not data or not data.eventAction then
return
end
if data.eventAction == "wheel_enter" then
LAST_INTERACTION_GAME = "luckywheel"
LuckyWheel_OnInteraction(true)
elseif data.eventAction == "wheel_info" then
LuckyWheel_ShowWelcome()
elseif data.eventAction == "slots_start" then
LAST_INTERACTION_GAME = "slots"
if not data.entity or not DoesEntityExist(data.entity) then
return
end
local model = GetEntityModel(data.entity)
local machineData = machineModels[model]
if not machineData then
return
end
Slots_OnInteraction(data.entity)
elseif data.eventAction == "slots_info" then
if not data.entity or not DoesEntityExist(data.entity) then
return
end
local model = GetEntityModel(data.entity)
Slots_ShowWelcome(model)
elseif data.eventAction == "cashier_enter" then
LAST_INTERACTION_GAME = "cashier"
Cashier_OnInteraction(data.cashierCoords)
elseif data.eventAction == "drinkingbar_ped" then
LAST_INTERACTION_GAME = "drinkingbar"
DrinkingBar_OnInteraction(data.bartenderCoords)
elseif data.eventAction == "drinkingbar_chair" then
LAST_INTERACTION_GAME = "drinkingbar"
Drinkingbar_UseChair(data.chairCoords)
elseif data.eventAction == "bj_enter" then
if not data.entity or not DoesEntityExist(data.entity) then
return
end
local tableCoords = GetEntityCoords(data.entity)
LAST_INTERACTION_GAME = "blackjack"
Blackjack_OnInteraction(tableCoords)
elseif data.eventAction == "bj_info" then
if not data.color or not BlackjackTableDatas[data.color] then
return
end
Blackjack_ShowWelcome(data.color)
elseif data.eventAction == "poker_enter" then
if not data.entity or not DoesEntityExist(data.entity) then
return
end
local tableCoords = GetEntityCoords(data.entity)
LAST_INTERACTION_GAME = "poker"
Poker_OnInteraction(tableCoords)
elseif data.eventAction == "poker_info" then
if not data.color or not PokerTableDatas[data.color] then
return
end
Poker_ShowWelcome(data.color)
elseif data.eventAction == "rl_enter" then
if not data.entity or not DoesEntityExist(data.entity) then
return
end
local tableCoords = GetEntityCoords(data.entity)
LAST_INTERACTION_GAME = "roulette"
Roulette_OnInteraction(tableCoords)
elseif data.eventAction == "rl_info" then
if not data.color or not RouletteTableDatas[data.color] then
return
end
Roulette_ShowWelcome(data.color)
elseif data.eventAction == "it_start" then
if not data.chairId then
return
end
LAST_INTERACTION_GAME = "insidetrack"
InsideTrack_OnInteraction()
elseif data.eventAction == "it_info" then
InsideTrack_ShowWelcome()
elseif data.eventAction == "podium_info" then
Podium_ShowFullscreenInfo()
elseif data.eventAction == "seat_enter" then
LAST_INTERACTION_GAME = "seating"
Seating_OnInteraction(data.chairIndex)
elseif data.eventAction == "elevator_enter" then
StartElevatorScene(data.elevator)
elseif data.eventAction == "cameras_enter" then
LAST_INTERACTION_GAME_TYPE = "cameras"
LAST_INTERACTION_GAME = "cameras"
Office.OnInteraction()
end
end)
File diff suppressed because it is too large Load Diff
@@ -1,185 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
---CreateMenu
---@param Title string
---@param Subtitle string
---@param X number
---@param Y number
---@param TextureDictionary string
---@param TextureName string
---@param R number
---@param G number
---@param B number
---@param A number
---@return RageUIMenus
---@public
function RageUI.CreateMenu(Title, Subtitle, X, Y, TextureDictionary, TextureName, R, G, B, A)
local Menu = {}
Menu.Display = {};
Menu.ConfirmCaption = Translation.Get("BTN_CONFIRM")
Menu.ConfirmKey = 176
Menu.Display.Header = true
Menu.Display.Subtitle = true
Menu.Display.Background = true
Menu.Display.Navigation = true
Menu.Display.PageCounter = true
Menu.IsPlayerList = false
Menu.MugshotCache = {}
Menu.Title = Title or ""
Menu.TitleFont = 1
Menu.TitleScale = 1.2
Menu.Subtitle = string.upper(Subtitle) or nil
Menu.SubtitleHeight = -37
Menu.Description = nil
Menu.DescriptionHeight = RageUI.Settings.Items.Description.Background.Height
Menu.X = X or 0
Menu.Y = Y or 0
Menu.Parent = nil
Menu.WidthOffset = 0
Menu.Open = false
Menu.Controls = RageUI.Settings.Controls
Menu.Index = 1
Menu.Sprite = {
Dictionary = TextureDictionary or "commonmenu",
Texture = TextureName or "interaction_bgd",
Color = {
R = R,
G = G,
B = B,
A = A
}
}
Menu.Rectangle = nil
Menu.Pagination = {
Minimum = 1,
Maximum = 10,
Total = 10
}
Menu.Safezone = true
Menu.SafeZoneSize = nil
Menu.EnableMouse = false
Menu.Options = 0
Menu.Closable = false
if string.starts(Menu.Subtitle, "~") then
Menu.PageCounterColour = string.lower(string.sub(Menu.Subtitle, 1, 3))
else
Menu.PageCounterColour = ""
end
if Menu.Subtitle ~= "" then
local SubtitleLineCount = Graphics.GetLineCount(Menu.Subtitle, Menu.X + RageUI.Settings.Items.Subtitle.Text.X,
Menu.Y + RageUI.Settings.Items.Subtitle.Text.Y, 0, RageUI.Settings.Items.Subtitle.Text.Scale, 245, 245, 245,
255, nil, false, false, RageUI.Settings.Items.Subtitle.Background.Width + Menu.WidthOffset)
if SubtitleLineCount > 1 then
Menu.SubtitleHeight = 18 * SubtitleLineCount
else
Menu.SubtitleHeight = 0
end
end
return setmetatable(Menu, RageUIMenus)
end
---CreateSubMenu
---@param ParentMenu function
---@param Title string
---@param Subtitle string
---@param X number
---@param Y number
---@param TextureDictionary string
---@param TextureName string
---@param R number
---@param G number
---@param B number
---@param A number
---@return RageUIMenus
---@public
function RageUI.CreateSubMenu(ParentMenu, Title, Subtitle, X, Y, TextureDictionary, TextureName, R, G, B, A)
if ParentMenu ~= nil then
if ParentMenu() then
local Menu = RageUI.CreateMenu(Title or ParentMenu.Title,
string.upper(Subtitle) or string.upper(ParentMenu.Subtitle), X or ParentMenu.X, Y or ParentMenu.Y)
Menu.Parent = ParentMenu
Menu.WidthOffset = ParentMenu.WidthOffset
Menu.Safezone = ParentMenu.Safezone
if ParentMenu.Sprite then
Menu.Sprite = {
Dictionary = TextureDictionary or ParentMenu.Sprite.Dictionary,
Texture = TextureName or ParentMenu.Sprite.Texture,
Color = {
R = R or ParentMenu.Sprite.Color.R,
G = G or ParentMenu.Sprite.Color.G,
B = B or ParentMenu.Sprite.Color.B,
A = A or ParentMenu.Sprite.Color.A
}
}
else
Menu.Rectangle = ParentMenu.Rectangle
end
return setmetatable(Menu, RageUIMenus)
else
return nil
end
else
return nil
end
end
---SetSubtitle
---@param Subtitle string
---@return nil
---@public
function RageUIMenus:SetSubtitle(Subtitle)
self.Subtitle = string.upper(Subtitle) or string.upper(self.Subtitle)
if string.starts(self.Subtitle, "~") then
self.PageCounterColour = string.lower(string.sub(self.Subtitle, 1, 3))
else
self.PageCounterColour = ""
end
if self.Subtitle ~= "" then
local SubtitleLineCount = Graphics.GetLineCount(self.Subtitle, self.X + RageUI.Settings.Items.Subtitle.Text.X,
self.Y + RageUI.Settings.Items.Subtitle.Text.Y, 0, RageUI.Settings.Items.Subtitle.Text.Scale, 245, 245, 245,
255, nil, false, false, RageUI.Settings.Items.Subtitle.Background.Width + self.WidthOffset)
if SubtitleLineCount > 1 then
self.SubtitleHeight = 18 * SubtitleLineCount
else
self.SubtitleHeight = 0
end
else
self.SubtitleHeight = -37
end
end
---IsVisible
---@param Item fun(Item:Items)
---@param Panel fun(Panel:Panels)
function RageUIMenus:IsVisible(Item, Panel)
if (RageUI.Visible(self)) and (UpdateOnscreenKeyboard() ~= 0) and (UpdateOnscreenKeyboard() ~= 3) then
RageUI.Banner()
RageUI.Subtitle()
Item(Items);
RageUI.Background();
RageUI.Navigation();
RageUI.Description();
Panel(Panels);
RageUI.PoolMenus.Timer = 1
RageUI.Render()
end
end
function RageUIMenus:KeysRegister(Controls, ControlName, Description, Action)
RegisterKeyMapping(string.format('riv-%s', ControlName), Description, "keyboard", Controls)
RegisterCommand(string.format('riv-%s', ControlName), function(source, args)
if (Action ~= nil) then
Action();
end
end, false)
end
@@ -1,380 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
RageUI.LastControl = false
local ControlActions = {'Left', 'Right', 'Select', 'Click'}
---GoUp
---@param Options number
---@return nil
---@public
function RageUI.GoUp(Options)
local CurrentMenu = RageUI.CurrentMenu;
if CurrentMenu ~= nil then
Options = CurrentMenu.Options
if CurrentMenu() then
if (Options ~= 0) then
if Options > CurrentMenu.Pagination.Total then
if CurrentMenu.Index <= CurrentMenu.Pagination.Minimum then
if CurrentMenu.Index == 1 then
CurrentMenu.Pagination.Minimum = Options - (CurrentMenu.Pagination.Total - 1)
CurrentMenu.Pagination.Maximum = Options
CurrentMenu.Index = Options
else
CurrentMenu.Pagination.Minimum = (CurrentMenu.Pagination.Minimum - 1)
CurrentMenu.Pagination.Maximum = (CurrentMenu.Pagination.Maximum - 1)
CurrentMenu.Index = CurrentMenu.Index - 1
end
else
CurrentMenu.Index = CurrentMenu.Index - 1
end
else
if CurrentMenu.Index == 1 then
CurrentMenu.Pagination.Minimum = Options - (CurrentMenu.Pagination.Total - 1)
CurrentMenu.Pagination.Maximum = Options
CurrentMenu.Index = Options
else
CurrentMenu.Index = CurrentMenu.Index - 1
end
end
if CurrentMenu.Options > 1 then
Audio.PlaySound(RageUI.Settings.Audio.UpDown.audioName, RageUI.Settings.Audio.UpDown.audioRef)
end
RageUI.LastControl = true
if (CurrentMenu.onIndexChange ~= nil) then
CurrentMenu.onIndexChange(CurrentMenu.Index)
end
else
Audio.PlaySound(RageUI.Settings.Audio.Error.audioName, RageUI.Settings.Audio.Error.audioRef)
end
end
end
end
---GoDown
---@param Options number
---@return nil
---@public
function RageUI.GoDown(Options)
local CurrentMenu = RageUI.CurrentMenu;
if CurrentMenu ~= nil then
Options = CurrentMenu.Options
if CurrentMenu() then
if (Options ~= 0) then
if Options > CurrentMenu.Pagination.Total then
if CurrentMenu.Index >= CurrentMenu.Pagination.Maximum then
if CurrentMenu.Index == Options then
CurrentMenu.Pagination.Minimum = 1
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total
CurrentMenu.Index = 1
else
CurrentMenu.Pagination.Maximum = (CurrentMenu.Pagination.Maximum + 1)
CurrentMenu.Pagination.Minimum =
CurrentMenu.Pagination.Maximum - (CurrentMenu.Pagination.Total - 1)
CurrentMenu.Index = CurrentMenu.Index + 1
end
else
CurrentMenu.Index = CurrentMenu.Index + 1
end
else
if CurrentMenu.Index == Options then
CurrentMenu.Pagination.Minimum = 1
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total
CurrentMenu.Index = 1
else
CurrentMenu.Index = CurrentMenu.Index + 1
end
end
if CurrentMenu.Options > 1 then
Audio.PlaySound(RageUI.Settings.Audio.UpDown.audioName, RageUI.Settings.Audio.UpDown.audioRef)
end
RageUI.LastControl = false
if (CurrentMenu.onIndexChange ~= nil) then
CurrentMenu.onIndexChange(CurrentMenu.Index)
end
else
Audio.PlaySound(RageUI.Settings.Audio.Error.audioName, RageUI.Settings.Audio.Error.audioRef)
end
end
end
end
function RageUI.GoActionControl(Controls, Action)
if Controls[Action or 'Left'].Enabled then
for Index = 1, #Controls[Action or 'Left'].Keys do
if not Controls[Action or 'Left'].Pressed then
if IsDisabledControlJustPressed(Controls[Action or 'Left'].Keys[Index][1],
Controls[Action or 'Left'].Keys[Index][2]) then
Controls[Action or 'Left'].Pressed = true
Citizen.CreateThread(function()
Controls[Action or 'Left'].Active = true
Citizen.Wait(0.01)
Controls[Action or 'Left'].Active = false
Citizen.Wait(175)
while Controls[Action or 'Left'].Enabled and
IsDisabledControlPressed(Controls[Action or 'Left'].Keys[Index][1],
Controls[Action or 'Left'].Keys[Index][2]) do
Controls[Action or 'Left'].Active = true
Citizen.Wait(1)
Controls[Action or 'Left'].Active = false
Citizen.Wait(124)
end
Controls[Action or 'Left'].Pressed = false
if (Action ~= ControlActions[5]) then
Citizen.Wait(10)
end
end)
break
end
end
end
end
end
function RageUI.GoActionControlSlider(Controls, Action)
if Controls[Action].Enabled then
for Index = 1, #Controls[Action].Keys do
if not Controls[Action].Pressed then
if IsDisabledControlJustPressed(Controls[Action].Keys[Index][1], Controls[Action].Keys[Index][2]) then
Controls[Action].Pressed = true
Citizen.CreateThread(function()
Controls[Action].Active = true
Citizen.Wait(1)
Controls[Action].Active = false
while Controls[Action].Enabled and
IsDisabledControlPressed(Controls[Action].Keys[Index][1], Controls[Action].Keys[Index][2]) do
Controls[Action].Active = true
Citizen.Wait(1)
Controls[Action].Active = false
end
Controls[Action].Pressed = false
end)
break
end
end
end
end
end
---Controls
---@return nil
---@public
function RageUI.Controls()
local CurrentMenu = RageUI.CurrentMenu;
if CurrentMenu ~= nil then
if CurrentMenu() then
if CurrentMenu.Open then
local Controls = CurrentMenu.Controls;
local Options = CurrentMenu.Options
RageUI.Options = CurrentMenu.Options
if CurrentMenu.EnableMouse then
DisableAllControlActions(2)
end
if not IsInputDisabled(2) then
for Index = 1, #Controls.Enabled.Controller do
EnableControlAction(Controls.Enabled.Controller[Index][1],
Controls.Enabled.Controller[Index][2], true)
end
else
for Index = 1, #Controls.Enabled.Keyboard do
EnableControlAction(Controls.Enabled.Keyboard[Index][1], Controls.Enabled.Keyboard[Index][2],
true)
end
end
if Controls.Up.Enabled then
for Index = 1, #Controls.Up.Keys do
if not Controls.Up.Pressed then
if IsDisabledControlJustPressed(Controls.Up.Keys[Index][1], Controls.Up.Keys[Index][2]) then
Controls.Up.Pressed = true
Citizen.CreateThread(function()
RageUI.GoUp(Options)
Citizen.Wait(175)
while Controls.Up.Enabled and
IsDisabledControlPressed(Controls.Up.Keys[Index][1], Controls.Up.Keys[Index][2]) do
RageUI.GoUp(Options)
Citizen.Wait(50)
end
Controls.Up.Pressed = false
end)
break
end
end
end
end
if Controls.Down.Enabled then
for Index = 1, #Controls.Down.Keys do
if not Controls.Down.Pressed then
if IsDisabledControlJustPressed(Controls.Down.Keys[Index][1], Controls.Down.Keys[Index][2]) then
Controls.Down.Pressed = true
Citizen.CreateThread(function()
RageUI.GoDown(Options)
Citizen.Wait(175)
while Controls.Down.Enabled and
IsDisabledControlPressed(Controls.Down.Keys[Index][1],
Controls.Down.Keys[Index][2]) do
RageUI.GoDown(Options)
Citizen.Wait(50)
end
Controls.Down.Pressed = false
end)
break
end
end
end
end
for i = 1, #ControlActions do
RageUI.GoActionControl(Controls, ControlActions[i])
end
RageUI.GoActionControlSlider(Controls, 'SliderLeft')
RageUI.GoActionControlSlider(Controls, 'SliderRight')
if Controls.Back.Enabled then
for Index = 1, #Controls.Back.Keys do
if not Controls.Back.Pressed then
if IsDisabledControlJustPressed(Controls.Back.Keys[Index][1], Controls.Back.Keys[Index][2]) then
Controls.Back.Pressed = true
Citizen.CreateThread(function()
Citizen.Wait(175)
Controls.Down.Pressed = false
end)
break
end
end
end
end
end
end
end
end
---Navigation
---@return nil
---@public
function RageUI.Navigation()
local CurrentMenu = RageUI.CurrentMenu;
if CurrentMenu ~= nil then
if CurrentMenu() and (CurrentMenu.Display.Navigation) then
if CurrentMenu.EnableMouse then
SetMouseCursorActiveThisFrame()
end
if RageUI.Options > CurrentMenu.Pagination.Total then
local UpHovered = false
local DownHovered = false
if not CurrentMenu.SafeZoneSize then
CurrentMenu.SafeZoneSize = {
X = 0,
Y = 0
}
if CurrentMenu.Safezone then
CurrentMenu.SafeZoneSize = RageUI.GetSafeZoneBounds()
SetScriptGfxAlign(76, 84)
SetScriptGfxAlignParams(0, 0, 0, 0)
end
end
if CurrentMenu.EnableMouse then
UpHovered = Graphics.IsMouseInBounds(CurrentMenu.X + CurrentMenu.SafeZoneSize.X, CurrentMenu.Y +
CurrentMenu.SafeZoneSize.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, RageUI.Settings
.Items.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height)
DownHovered = Graphics.IsMouseInBounds(CurrentMenu.X + CurrentMenu.SafeZoneSize.X,
CurrentMenu.Y + RageUI.Settings.Items.Navigation.Rectangle.Height + CurrentMenu.SafeZoneSize.Y +
CurrentMenu.SubtitleHeight + RageUI.ItemOffset, RageUI.Settings.Items.Navigation.Rectangle
.Width + CurrentMenu.WidthOffset, RageUI.Settings.Items.Navigation.Rectangle.Height)
if CurrentMenu.Controls.Click.Active then
if UpHovered then
RageUI.GoUp(RageUI.Options)
elseif DownHovered then
RageUI.GoDown(RageUI.Options)
end
end
if UpHovered then
Graphics.Rectangle(CurrentMenu.X,
CurrentMenu.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, RageUI.Settings.Items
.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height, 30, 30, 30, 255)
else
Graphics.Rectangle(CurrentMenu.X,
CurrentMenu.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, RageUI.Settings.Items
.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height, 0, 0, 0, 200)
end
if DownHovered then
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y +
RageUI.Settings.Items.Navigation.Rectangle.Height + CurrentMenu.SubtitleHeight +
RageUI.ItemOffset,
RageUI.Settings.Items.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height, 30, 30, 30, 255)
else
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y +
RageUI.Settings.Items.Navigation.Rectangle.Height + CurrentMenu.SubtitleHeight +
RageUI.ItemOffset,
RageUI.Settings.Items.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height, 0, 0, 0, 200)
end
else
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
RageUI.Settings.Items.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height, 0, 0, 0, 200)
Graphics.Rectangle(CurrentMenu.X,
CurrentMenu.Y + RageUI.Settings.Items.Navigation.Rectangle.Height + CurrentMenu.SubtitleHeight +
RageUI.ItemOffset,
RageUI.Settings.Items.Navigation.Rectangle.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Navigation.Rectangle.Height, 0, 0, 0, 200)
end
Graphics.Sprite(RageUI.Settings.Items.Navigation.Arrows.Dictionary,
RageUI.Settings.Items.Navigation.Arrows.Texture, CurrentMenu.X +
RageUI.Settings.Items.Navigation.Arrows.X + (CurrentMenu.WidthOffset / 2), CurrentMenu.Y +
RageUI.Settings.Items.Navigation.Arrows.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
RageUI.Settings.Items.Navigation.Arrows.Width, RageUI.Settings.Items.Navigation.Arrows.Height)
RageUI.ItemOffset = RageUI.ItemOffset + (RageUI.Settings.Items.Navigation.Rectangle.Height * 2)
end
end
end
end
---GoBack
---@return nil
---@public
function RageUI.GoBack()
local CurrentMenu = RageUI.CurrentMenu
if CurrentMenu ~= nil then
Audio.PlaySound(RageUI.Settings.Audio.Back.audioName, RageUI.Settings.Audio.Back.audioRef)
if CurrentMenu.Parent ~= nil then
if CurrentMenu.Parent() then
RageUI.NextMenu = CurrentMenu.Parent
else
RageUI.NextMenu = nil
RageUI.Visible(CurrentMenu, false)
end
else
RageUI.NextMenu = nil
RageUI.Visible(CurrentMenu, false)
end
end
end
@@ -1,479 +0,0 @@
-- cashier UI selection
local menu_TradeInListIndex = 1
local menu_AcquireListIndex = 1
local menu_confirmedIndex = -1
local moneyOptions = {0}
local chipsOptions = {0}
local dailyBonusUsed = false
local dailyDesc = nil
local vipItemDescription = nil
local vipItemEnabled = false
local confirmMessage = nil
local moneyPercentage = 100
local withdrawBadge = RageUI.BadgeStyle.None
local withdrawDesc = Translation.Get("CASHIER_TRADEIN_DESC")
local canPurchaseVIP = true
local extraTransferInfo = nil
local maxSocietyMoney = 0
local function RefreshCashierVIPItem()
vipItemEnabled = true
if PLAYER_IS_VIP then
vipItemDescription = string.format(Translation.Get("CASHIER_VIP_PURCHASE_COMPLETE"),
CommaValue(Config.CASHIER_VIP_PRICE), Config.PRICES_CURRENCY)
if Config.CASHIER_VIP_DURATION then
vipItemDescription = vipItemDescription ..
string.format(" " .. Translation.Get("CASHIER_VIP_VALID_FOR"),
FormatTimestamp(PLAYER_CACHE.vipUntil - SERVER_TIMER))
end
vipItemEnabled = false
else
if PLAYER_MONEY < Config.CASHIER_VIP_PRICE then
vipItemDescription = Translation.Get("CASHIER_VIP_NO_MONEY")
vipItemEnabled = true
else
vipItemDescription = string.format(Translation.Get("CASHIER_VIP_MEMBERSHIP_DESC"),
CommaValue(Config.CASHIER_VIP_PRICE), Config.PRICES_CURRENCY)
end
end
if not canPurchaseVIP then
vipItemEnabled = false
vipItemDescription = Translation.Get("CASHIER_VIP_PASS_ERROR")
end
end
function ResetCashierUISelection(moneyLimit, societyMoney)
moneyPercentage = moneyLimit
if societyMoney then
maxSocietyMoney = societyMoney
end
menu_TradeInListIndex = 1
menu_AcquireListIndex = 1
menu_confirmedIndex = -1
moneyOptions = CashierGetMoneyBalanceOptions(PLAYER_MONEY)
chipsOptions = CashierGetBalanceOptions(PLAYER_CHIPS, maxSocietyMoney / Config.ExchangeRate)
withdrawBadge = moneyPercentage == 100 and RageUI.BadgeStyle.None or RageUI.BadgeStyle.Alert
withdrawDesc = Translation.Get("CASHIER_TRADEIN_DESC")
if moneyPercentage == 0 then
withdrawDesc = Translation.Get("SOCIETY_CASHIER_MONEY_LIMIT_3")
elseif moneyPercentage < 100 then
withdrawDesc = withdrawDesc .. " " ..
string.format(Translation.Get("SOCIETY_CASHIER_MONEY_LIMIT"), moneyPercentage)
end
dailyBonusUsed = PLAYER_CACHE.lastDailyBonus and PLAYER_CACHE.lastDailyBonus == SERVER_DATE
dailyDesc = dailyBonusUsed and Translation.Get("CASHIER_DAILY_BONUS_USED") or
string.format(Translation.Get("CASHIER_DAILY_BONUS_DESC"), Config.CASHIER_DAILY_BONUS)
end
-- show cashier ui
function Cashier_ShowMenu(moneyLimit, vipAllowed, maxMoney, extraData)
canPurchaseVIP = vipAllowed
maxSocietyMoney = maxMoney
ResetCashierUISelection(moneyLimit, maxSocietyMoney)
InfoPanel_UpdateNotification(nil)
local cashierMenu = RageUI.CreateMenu("", Translation.Get("CASHIER_CAPT"), 25, 25, "shopui_title_casino_banner",
"shopui_title_casino_banner")
local exchangeRateDesc = nil
if Config.ExchangeRate ~= 1 then
exchangeRateDesc = string.format(Translation.Get("CASHIER_EXCHANGE_RATE_DESC"),
FormatPrice(math.ceil(10 * Config.ExchangeRate)))
end
function RageUI.PoolMenus:CashierUI()
cashierMenu:IsVisible(function(i)
RefreshCashierVIPItem()
if not Config.UseOnlyMoney then
i:AddList(Translation.Get("CASHIER_ACQUIRE_CAPT"), moneyOptions, menu_AcquireListIndex,
(menu_AcquireListIndex == menu_confirmedIndex and confirmMessage or
Translation.Get("CASHIER_ACQUIRE_DESC")), {
IsDisabled = moneyOptions[menu_AcquireListIndex] == 0 or not CAN_INTERACT
}, function(Index, onSelected, onListChange)
if (onListChange) then
menu_AcquireListIndex = Index;
menu_confirmedIndex = -1
end
if onSelected then
if not CAN_INTERACT then
return
end
if moneyOptions[Index] == nil then
return
end
if menu_confirmedIndex ~= Index then
menu_confirmedIndex = Index
local amount = CommaValue(moneyOptions[Index])
local realChipsValue = math.ceil(moneyOptions[Index] * Config.ExchangeRate)
confirmMessage = string.format(Translation.Get("CASHIER_YOU_SURE_ACQUIRE"), amount,
FormatPrice(realChipsValue))
if Config.ExchangeRate ~= 1 then
confirmMessage = string.format(Translation.Get("CASHIER_TRANSFER_INFO"),
CommaValue(amount), FormatPrice(realChipsValue)) .. confirmMessage
end
return
end
Cashier_AcquireChips(moneyOptions[Index])
end
end)
i:AddList(Translation.Get("CASHIER_TRADEIN_CAPT"), chipsOptions, menu_TradeInListIndex,
(menu_TradeInListIndex == menu_confirmedIndex and confirmMessage or withdrawDesc), {
IsDisabled = chipsOptions[menu_TradeInListIndex] == 0 or moneyPercentage <= 0 or
not CAN_INTERACT,
LeftBadge = withdrawBadge
}, function(Index, onSelected, onListChange)
if (onListChange) then
menu_TradeInListIndex = Index;
menu_confirmedIndex = -1
end
if onSelected then
if not CAN_INTERACT then
return
end
if chipsOptions[Index] == nil then
return
end
if menu_confirmedIndex ~= Index then
menu_confirmedIndex = Index
local amount = CommaValue(chipsOptions[Index])
local realChipsValue = math.ceil(chipsOptions[Index] * Config.ExchangeRate)
confirmMessage = string.format(Translation.Get("CASHIER_YOU_SURE_TRADE_IN"), amount)
if Config.ExchangeRate ~= 1 then
confirmMessage = string.format(Translation.Get("CASHIER_TRANSFER_INFO"),
CommaValue(amount), FormatPrice(realChipsValue)) .. confirmMessage
end
if moneyPercentage < 100 then
local reducedMoney = math.ceil((realChipsValue / 100) * moneyPercentage)
confirmMessage = confirmMessage .. " " ..
string.format(Translation.Get("SOCIETY_CASHIER_MONEY_LIMIT_2"),
CommaValue(reducedMoney), Config.PRICES_CURRENCY, amount, moneyPercentage)
end
return
end
Cashier_TradeInChips(chipsOptions[Index])
end
end)
end
if Config.CASHIER_DAILY_BONUS ~= 0 then
i:AddButton(Translation.Get("CASHIER_DAILY_BONUS_CAPT"), dailyDesc, {
IsDisabled = dailyBonusUsed,
RightLabelColor = RageUI.ItemsColour.White
}, nil, function()
Cashier_DailyBonus()
end)
end
i:AddButton(Translation.Get("CASHIER_VIP_MEMBERSHIP_CAPT"), vipItemDescription, {
IsDisabled = vipItemEnabled == false,
RightLabelColor = RageUI.ItemsColour.White,
RightBadge = RageUI.BadgeStyle.CasinoVIP
}, nil, function()
Cashier_RequestVIP()
end)
local canOrderDelivery = extraData.MoneyLoad and Config.JobsEnabled and
Config.Jobs.MONEYLOAD_STARTFROMCASHIERUI and
IsAtJob(Config.JobName, nil, Config.Jobs.MONEYLOAD_STARTJOBGRADE,
Config.Jobs.MONEYLOAD_STARTJOBGRADE)
if MONEYLOAD_TAKE or canOrderDelivery then
i:AddSeparator("Mission Options")
end
if MONEYLOAD_TAKE then
i:AddButton(Translation.Get("MONEYLOAD_CASHIER_CAPTION"),
string.format(Translation.Get("MONEYLOAD_CASHIER_DESC"), FormatPrice(MONEYLOAD_TAKE)), {
IsDisabled = dailyBonusUsed,
RightLabelColor = RageUI.ItemsColour.White,
RightBadge = RageUI.BadgeStyle.Package
}, nil, function()
MONEYLOAD_TAKE = nil
TriggerServerEvent("rcore_casino:CasinoMission:MoneyLoad:DeliverMoney")
Cashier_OnQuit()
RemoveMissionBlip("cashier")
-- give take animation
Citizen.CreateThread(function()
RequestAnimDictAndWait("mp_common")
if HasAnimDictLoaded("mp_common") then
TaskPlayAnim(PlayerPedId(), "mp_common", "givetake2_b", 3.0, 3.0, -1, 0, 0, true, true,
true)
for k, v in pairs(CashierDatas) do
if v.enabled and v.ped then
PlayPedAmbientSpeechWithVoiceNative(v.ped, "WELCOME_BACK_WINNER",
"u_f_m_casinocash_01", "SPEECH_PARAMS_FORCE_NORMAL", 0)
TaskPlayAnim(v.ped, "mp_common", "givetake2_a", 3.0, 3.0, -1, 0, 0, true, true,
true)
break
end
end
end
end)
end)
else
if canOrderDelivery then
local oderAllowed = true
local orderDesc = string.format(Translation.Get("MONEYLOAD_CASHIER_ORDER_DELIVERY_DESC"),
FormatPrice(Config.Jobs.MONEYLOAD_TAKE))
if #extraData.MoneyLoad.jobMembers > 0 then
orderDesc = orderDesc .. " " ..
string.format(Translation.Get("MONEYLOAD_CASHIER_MEMBERLIST"),
extraData.MoneyLoad.memberNames)
else
oderAllowed = false
orderDesc = Translation.Get("MONEYLOAD_CASHIER_MEMBERLIST_EMPTY")
end
if extraData.MoneyLoad.missionActive then
oderAllowed = false
orderDesc = Translation.Get("MONEYLOAD_CASHIER_ORDER_DELIVERY_ALREADYACTIVE")
end
i:AddButton(Translation.Get("MONEYLOAD_CASHIER_ORDER_DELIVERY"), orderDesc, {
IsDisabled = not oderAllowed,
RightLabelColor = RageUI.ItemsColour.White,
RightBadge = RageUI.BadgeStyle.Package
}, nil, function()
Cashier_OnQuit()
TriggerServerEvent("rcore_casino:CasinoMission:MoneyLoad:Order")
end)
end
end
if exchangeRateDesc then
i:AddSeparator(exchangeRateDesc, RageUI.ItemsColour.Yellow)
end
if Config.EnableSociety and Config.CASHIER_SHOW_SOCIETY_BALANCE then
i:AddSeparator(string.format(Translation.Get("AVAIABLE_SOCIETY_BALANCE"), FormatPrice(maxMoney)),
RageUI.ItemsColour.Yellow)
end
end, function(Panels)
end)
end
RageUI.Visible(cashierMenu, true)
end
-- opens up sitting menu (choose from snacks to eat/drink while sitting at the bar)
function DrinkingBar_ShowSittingMenu()
InfoPanel_UpdateNotification(nil)
local sittingMenu = RageUI.CreateMenu("", Translation.Get("BAR_SNACKS_CAPT"), 25, 25, "shopui_title_casino_banner",
"shopui_title_casino_banner")
function RageUI.PoolMenus:DrinksUI()
sittingMenu:IsVisible(function(i)
for x = 1, #CasinoInventoryItems do
local v = CasinoInventoryItems[x]
if v.itemType == 1 then
local key = v.key
if PLAYER_ITEMS[key] and PLAYER_ITEMS[key] > 0 then
i:AddButton(v.title, Translation.Get("BAR_SNACKS_DESC"), {
IsDisabled = false,
RightLabel = PLAYER_ITEMS[key],
RightLabelColor = RageUI.ItemsColour.White
}, nil, function()
SittingMenu_SnackSelected(key)
end)
end
end
end
end, function(Panels)
end)
end
RageUI.Visible(sittingMenu, true)
end
function DrinkingBar_ShowMenu()
-- CAN_MOVE = false
InfoPanel_UpdateNotification(nil)
local drinksMenu = RageUI.CreateMenu("", Translation.Get("BAR_MENU_TITLE"), 25, 25, "shopui_title_casino_banner",
"shopui_title_casino_banner")
function RageUI.PoolMenus:DrinksUI()
drinksMenu:IsVisible(function(i)
if Config.BarShowSnacks then
i:AddSeparator(Translation.Get("BAR_SNACKS_SEPARATOR_DRINKS"))
end
for x = 1, #CasinoInventoryItems do
local v = CasinoInventoryItems[x]
local k = v.key
if v.itemType == 2 then
local price = FormatPrice(v.price)
local forFree = v.luckyWheelAffected and PLAYER_CACHE.freeDrinksUntil and SERVER_TIMER <
PLAYER_CACHE.freeDrinksUntil
if forFree then
price = Translation.Get("BAR_SNACKS_PRICE_FREE")
end
local itemDescription = PLAYER_MONEY >= v.price and Translation.Get("BAR_MENU_DESC") or
string.format(Translation.Get("BAR_MENU_NO_MONEY"), price)
local itemDisabled = (forFree == false and PLAYER_MONEY < v.price)
if v.vip and not PLAYER_IS_VIP then
itemDisabled = true
itemDescription = Translation.Get("BUYING_ITEMS_VIP_RESTRICTION")
end
i:AddButton(v.title, itemDescription, {
IsDisabled = itemDisabled,
RightLabel = price,
RightLabelColor = RageUI.ItemsColour.GreenLight
}, nil, function()
DrinksMenu_DrinkSelected(k)
end)
end
end
if Config.BarShowSnacks then
i:AddSeparator(Translation.Get("BAR_SNACKS_SEPARATOR_SNACKS"))
for x = 1, #CasinoInventoryItems do
local v = CasinoInventoryItems[x]
local k = v.key
if v.itemType == 1 and x ~= 10 then
local price = FormatPrice(v.price)
i:AddButton(v.title, PLAYER_MONEY >= v.price and Translation.Get("BAR_MENU_DESC2") or
string.format(Translation.Get("BAR_MENU_NO_MONEY"), price), {
IsDisabled = PLAYER_MONEY < v.price,
RightLabel = FormatPrice(v.price),
RightLabelColor = RageUI.ItemsColour.OrangeLight
}, nil, function()
DrinksMenu_DrinkSelected(k)
end)
end
end
end
end, function(Panels)
end)
end
RageUI.Visible(drinksMenu, true)
end
function GameStates_ChipManagement(playerList)
InfoPanel_UpdateNotification(nil)
CloseAllMenus()
local playersMenu = RageUI.CreateMenu("", Translation.Get("ADMIN_MENU_CHIP_MNG"), 25, 25,
"shopui_title_casino_banner", "shopui_title_casino_banner")
function RageUI.PoolMenus:ChipMngUI()
playersMenu:IsVisible(function(i)
for k, v in pairs(playerList) do
i:AddButton(v.name, nil, {
IsDisabled = false,
RightLabel = v.chips,
RightLabelColor = RageUI.ItemsColour.White
}, nil, function()
ShowTextInputBox(Translation.Get("ADMIN_MENU_CHIPS_NEWBALANCE"), v.chips, function(newBalance)
newBalance = tonumber(newBalance)
if newBalance then
v.chips = newBalance
GameStates_ChipManagement(playerList)
TriggerServerEvent("rcore_casino:AdminEditPlayerChips", v.playerId, newBalance)
end
end)
end)
end
i:AddSeparator(" ")
i:AddButton(Translation.Get("BTN_CLOSE"), nil, {
IsDisabled = false,
RightLabelColor = RageUI.ItemsColour.White,
RightBadge = RageUI.BadgeStyle.Alert
}, nil, function()
CloseAllMenus()
end)
end, function(Panels)
end)
end
RageUI.Visible(playersMenu, true)
end
function GameStates_ShowMenu()
InfoPanel_UpdateNotification(nil)
CloseAllMenus()
local statesMenu = RageUI.CreateMenu("", Translation.Get("GAME_STATE_MENU_TITLE"), 25, 25,
"shopui_title_casino_banner", "shopui_title_casino_banner")
function RageUI.PoolMenus:CashierUI()
statesMenu:IsVisible(function(i)
i:AddSeparator(Translation.Get("ADMIN_MENU_CHIP_MNG"))
i:AddButton(Translation.Get("ADMIN_MENU_CHIP_MNG"), nil, {
IsDisabled = false,
RightLabelColor = RageUI.ItemsColour.White
}, nil, function()
TriggerServerEvent("rcore_casino:AdminChipManagement")
end)
i:AddSeparator(Translation.Get("ADMIN_MENU_GAMESTATES"))
for n = 1, #GameStates do
local v = GameStates[n]
i:AddButton(v.title, nil, {
IsDisabled = false,
RightLabelColor = RageUI.ItemsColour.White,
RightBadge = v.enabled and RageUI.BadgeStyle.Tick or RageUI.BadgeStyle.Lock
}, nil, function()
if v.enabled then
v.enabled = false
else
v.enabled = true
end
TriggerServerEvent("rcore_casino:AdminUpdateStates", GameStates)
end)
end
i:AddSeparator(" ")
i:AddButton(Translation.Get("BTN_CLOSE"), nil, {
IsDisabled = false,
RightLabelColor = RageUI.ItemsColour.White,
RightBadge = RageUI.BadgeStyle.Alert
}, nil, function()
CloseAllMenus()
end)
end, function(Panels)
end)
end
RageUI.Visible(statesMenu, true)
end
-- standalone: manage casino workers menu
function Workers_ShowMenu(workers)
InfoPanel_UpdateNotification(nil)
CloseAllMenus()
local gradeOptions = {"Unemployed", "Grade 0", "Grade 1", "Grade 2 (Boss)"}
local workersMenu = RageUI.CreateMenu("", "Casino Workers", 25, 25, "shopui_title_casino_banner",
"shopui_title_casino_banner")
function RageUI.PoolMenus:CashierUI()
workersMenu:IsVisible(function(i)
for k, v in pairs(workers) do
i:AddList(v.name, gradeOptions, v.actual, nil, {
IsDisabled = false
}, function(Index, onSelected, onListChange)
if (onListChange) then
v.actual = Index
local newGrade = v.actual - 2
TriggerServerEvent("rcore_casino:AdminEditWorkerGrade", v.playerId, newGrade)
end
if onSelected then
CloseAllMenus()
end
end)
end
end, function(Panels)
end)
end
RageUI.Visible(workersMenu, true)
end
function CloseAllMenus()
RageUI.CloseAll()
end
function OnMenusClosed()
-- print("Menus were closed.")
end
@@ -1,661 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
RageUI = {};
---@class RageUIMenus
RageUIMenus = setmetatable({}, RageUIMenus)
---@return boolean
RageUIMenus.__call = function()
return true
end
RageUIMenus.__index = RageUIMenus
RageUI.CurrentMenu = nil
RageUI.NextMenu = nil
RageUI.Options = 0
RageUI.ItemOffset = 0
RageUI.StatisticPanelCount = 0
RageUI.PoolMenus = RageUI.PoolMenus or {
Timer = 0,
Name = nil
};
---@class Settings
RageUI.Settings = {
Debug = false,
Controls = {
Up = {
Enabled = true,
Active = false,
Pressed = false,
Keys = {{0, 172}, {1, 172}, {2, 172}, {0, 241}, {1, 241}, {2, 241}}
},
Down = {
Enabled = true,
Active = false,
Pressed = false,
Keys = {{0, 173}, {1, 173}, {2, 173}, {0, 242}, {1, 242}, {2, 242}}
},
Left = {
Enabled = true,
Active = false,
Pressed = false,
Keys = {{0, 174}, {1, 174}, {2, 174}}
},
Right = {
Enabled = true,
Pressed = false,
Active = false,
Keys = {{0, 175}, {1, 175}, {2, 175}}
},
SliderLeft = {
Enabled = true,
Active = false,
Pressed = false,
Keys = {{0, 174}, {1, 174}, {2, 174}}
},
SliderRight = {
Enabled = true,
Pressed = false,
Active = false,
Keys = {{0, 175}, {1, 175}, {2, 175}}
},
Select = {
Enabled = true,
Pressed = false,
Active = false,
Keys = {{0, 201}, {1, 201}, {2, 201}}
},
Back = {
Enabled = true,
Active = false,
Pressed = false,
Keys = {{0, 177}, {1, 177}, {2, 177}, {0, 199}, {1, 199}, {2, 199}}
},
Click = {
Enabled = true,
Active = false,
Pressed = false,
Keys = {{0, 24}}
},
Enabled = {
Controller = {{0, 2}, -- Look Up and Down
{0, 1}, -- Look Left and Right
{0, 25}, -- Aim
{0, 24} -- Attack
},
Keyboard = {{0, 201}, -- Select
{0, 195}, -- X axis
{0, 196}, -- Y axis
{0, 187}, -- Down
{0, 188}, -- Up
{0, 189}, -- Left
{0, 190}, -- Right
{0, 202}, -- Back
{0, 217}, -- Select
{0, 242}, -- Scroll down
{0, 241}, -- Scroll up
{0, 239}, -- Cursor X
{0, 240}, -- Cursor Y
{0, 31}, -- Move Up and Down
{0, 30}, -- Move Left and Right
{0, 21}, -- Sprint
{0, 22}, -- Jump
{0, 23}, -- Enter
{0, 75}, -- Exit Vehicle
{0, 71}, -- Accelerate Vehicle
{0, 72}, -- Vehicle Brake
{0, 59}, -- Move Vehicle Left and Right
{0, 89}, -- Fly Yaw Left
{0, 9}, -- Fly Left and Right
{0, 8}, -- Fly Up and Down
{0, 90}, -- Fly Yaw Right
{0, 76} -- Vehicle Handbrake
}
}
},
Audio = {
Id = nil,
UpDown = {
audioName = "HUD_FRONTEND_DEFAULT_SOUNDSET",
audioRef = "NAV_UP_DOWN"
},
LeftRight = {
audioName = "HUD_FRONTEND_DEFAULT_SOUNDSET",
audioRef = "NAV_LEFT_RIGHT"
},
Select = {
audioName = "HUD_FRONTEND_DEFAULT_SOUNDSET",
audioRef = "SELECT"
},
Back = {
audioName = "HUD_FRONTEND_DEFAULT_SOUNDSET",
audioRef = "BACK"
},
Error = {
audioName = "HUD_FRONTEND_DEFAULT_SOUNDSET",
audioRef = "ERROR"
},
Slider = {
audioName = "HUD_FRONTEND_DEFAULT_SOUNDSET",
audioRef = "CONTINUOUS_SLIDER",
Id = nil
}
},
Items = {
Title = {
Background = {
Width = 431,
Height = 107
},
Text = {
X = 215,
Y = 20,
Scale = 1.15
}
},
Subtitle = {
Background = {
Width = 431,
Height = 37
},
Text = {
X = 8,
Y = 3,
Scale = 0.35
},
PreText = {
X = 425,
Y = 3,
Scale = 0.35
}
},
Background = {
Dictionary = "commonmenu",
Texture = "gradient_bgd",
Y = 0,
Width = 431
},
Navigation = {
Rectangle = {
Width = 431,
Height = 18
},
Offset = 5,
Arrows = {
Dictionary = "commonmenu",
Texture = "shop_arrows_upanddown",
X = 190,
Y = -6,
Width = 50,
Height = 50
}
},
Description = {
Bar = {
Y = 4,
Width = 431,
Height = 4
},
Background = {
Dictionary = "commonmenu",
Texture = "gradient_bgd",
Y = 4,
Width = 431,
Height = 30
},
Text = {
X = 8,
Y = 10,
Scale = 0.35
}
}
},
Panels = {
Grid = {
Background = {
Dictionary = "commonmenu",
Texture = "gradient_bgd",
Y = 4,
Width = 431,
Height = 275
},
Grid = {
Dictionary = "pause_menu_pages_char_mom_dad",
Texture = "nose_grid",
X = 115.5,
Y = 47.5,
Width = 200,
Height = 200
},
Circle = {
Dictionary = "mpinventory",
Texture = "in_world_circle",
X = 115.5,
Y = 47.5,
Width = 20,
Height = 20
},
Text = {
Top = {
X = 215.5,
Y = 15,
Scale = 0.35
},
Bottom = {
X = 215.5,
Y = 250,
Scale = 0.35
},
Left = {
X = 57.75,
Y = 130,
Scale = 0.35
},
Right = {
X = 373.25,
Y = 130,
Scale = 0.35
}
}
},
Percentage = {
Background = {
Dictionary = "commonmenu",
Texture = "gradient_bgd",
Y = 4,
Width = 431,
Height = 76
},
Bar = {
X = 9,
Y = 50,
Width = 413,
Height = 10
},
Text = {
Left = {
X = 25,
Y = 15,
Scale = 0.35
},
Middle = {
X = 215.5,
Y = 15,
Scale = 0.35
},
Right = {
X = 398,
Y = 15,
Scale = 0.35
}
}
}
}
}
function RageUI.GetSafeZoneBounds()
local SafeSize = GetSafeZoneSize()
SafeSize = math.round(SafeSize, 2)
SafeSize = (SafeSize * 100) - 90
SafeSize = 10 - SafeSize
local W, H = 1920, 1080
return {
X = math.round(SafeSize * ((W / H) * 5.4)),
Y = math.round(SafeSize * 5.4)
}
end
RageUI.LastInstructionalState = nil
RageUI.LastInstructionalDevice = nil
-- RageUI.CurrentMenu.Pagination.Maximum
function RageUI.ShowInstructionalButtonsNUI()
local confirmKey = RageUI.CurrentMenu.ConfirmKey and RageUI.CurrentMenu.ConfirmKey or 176
local confirmCaption = RageUI.CurrentMenu.ConfirmCaption and RageUI.CurrentMenu.ConfirmCaption or "???"
local keys = {{
key = 177,
title = Translation.Get("MENU_LEAVE_OPTION")
}, {
key = 187,
title = Translation.Get("MENU_NAVIGATE_OPTION"),
extraKey = 188
}, {
key = confirmKey,
title = confirmCaption
}}
PushNUIInstructionalButtons(keys)
end
function RageUI.RefreshNUIInstructionalState()
local actualState = (RageUI.CurrentMenu and not RageUI.CurrentMenu.Closed)
local actualDevice = IsGamepadControl()
if actualState ~= RageUI.LastInstructionalState or actualDevice ~= RageUI.LastInstructionalDevice then
if actualState and not RageUI.CurrentMenu.NoHud then
RageUI.ShowInstructionalButtonsNUI()
elseif RageUI.WaitForClose and not PROMPT_ACTIVE then
RageUI.WaitForClose = false
PushNUIInstructionalButtons(nil)
end
RageUI.LastInstructionalDevice = actualDevice
RageUI.LastInstructionalState = actualState
end
end
RageUI.WaitForClose = false
function RageUI.Visible(Menu, Value)
if Menu ~= nil and Menu() then
if not Menu.NoHud then
RageUI.WaitForClose = true
end
if Value == true or Value == false then
if Value then
if RageUI.CurrentMenu ~= nil then
if RageUI.CurrentMenu.Closed ~= nil then
RageUI.CurrentMenu.Closed()
end
RageUI.CurrentMenu.Open = not Value
end
RageUI.CurrentMenu = Menu
else
RageUI.CurrentMenu = nil
end
Menu.Open = Value
RageUI.Options = 0
RageUI.ItemOffset = 0
RageUI.LastControl = false
else
return Menu.Open
end
end
end
function RageUI.CloseAll()
if RageUI.CurrentMenu ~= nil then
Audio.PlaySound(RageUI.Settings.Audio.Back.audioName, RageUI.Settings.Audio.Back.audioRef)
local parent = RageUI.CurrentMenu.Parent
while parent ~= nil do
parent.Index = 1
parent.Pagination.Minimum = 1
parent.Pagination.Maximum = parent.Pagination.Total
parent = parent.Parent
end
RageUI.CurrentMenu.Index = 1
RageUI.CurrentMenu.Pagination.Minimum = 1
RageUI.CurrentMenu.Pagination.Maximum = RageUI.CurrentMenu.Pagination.Total
RageUI.CurrentMenu.Open = false
RageUI.CurrentMenu = nil
end
RageUI.Options = 0
RageUI.ItemOffset = 0
RageUI.PoolMenus = {}
ResetScriptGfxAlign()
OnMenusClosed()
end
function RageUI.Banner()
local CurrentMenu = RageUI.CurrentMenu
if (CurrentMenu.Display.Header) then
RageUI.ItemsSafeZone(CurrentMenu)
if CurrentMenu.Sprite ~= nil then
if CurrentMenu.Sprite.Dictionary ~= nil then
if CurrentMenu.Sprite.Dictionary == "commonmenu" then
Graphics.Sprite(CurrentMenu.Sprite.Dictionary, CurrentMenu.Sprite.Texture, CurrentMenu.X,
CurrentMenu.Y, RageUI.Settings.Items.Title.Background.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Title.Background.Height, CurrentMenu.Sprite.Color.R,
CurrentMenu.Sprite.Color.G, CurrentMenu.Sprite.Color.B, CurrentMenu.Sprite.Color.A)
else
Graphics.Sprite(CurrentMenu.Sprite.Dictionary, CurrentMenu.Sprite.Texture, CurrentMenu.X,
CurrentMenu.Y, RageUI.Settings.Items.Title.Background.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Title.Background.Height, nil)
end
else
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y,
RageUI.Settings.Items.Title.Background.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Title.Background.Height, CurrentMenu.Rectangle.R, CurrentMenu.Rectangle.G,
CurrentMenu.Rectangle.B, CurrentMenu.Rectangle.A)
end
else
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y,
RageUI.Settings.Items.Title.Background.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Title.Background.Height, CurrentMenu.Rectangle.R, CurrentMenu.Rectangle.G,
CurrentMenu.Rectangle.B, CurrentMenu.Rectangle.A)
end
Graphics.Text(CurrentMenu.Title,
CurrentMenu.X + RageUI.Settings.Items.Title.Text.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + RageUI.Settings.Items.Title.Text.Y, CurrentMenu.TitleFont, CurrentMenu.TitleScale, 255, 255,
255, 255, 1)
RageUI.ItemOffset = RageUI.ItemOffset + RageUI.Settings.Items.Title.Background.Height
end
end
function RageUI.Subtitle()
local CurrentMenu = RageUI.CurrentMenu
if (CurrentMenu.Display.Subtitle) then
RageUI.ItemsSafeZone(CurrentMenu)
if CurrentMenu.Subtitle ~= "" then
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y + RageUI.ItemOffset,
RageUI.Settings.Items.Subtitle.Background.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Subtitle.Background.Height + CurrentMenu.SubtitleHeight,
CurrentMenu.SubColorR and CurrentMenu.SubColorR or 0,
CurrentMenu.SubColorG and CurrentMenu.SubColorG or 0,
CurrentMenu.SubColorB and CurrentMenu.SubColorB or 0,
CurrentMenu.SubColorA and CurrentMenu.SubColorA or 255)
Graphics.Text(CurrentMenu.PageCounterColour .. CurrentMenu.Subtitle,
CurrentMenu.X + RageUI.Settings.Items.Subtitle.Text.X,
CurrentMenu.Y + RageUI.Settings.Items.Subtitle.Text.Y + RageUI.ItemOffset, 0,
RageUI.Settings.Items.Subtitle.Text.Scale, 245, 245, 245, 255, nil, false, false,
RageUI.Settings.Items.Subtitle.Background.Width + CurrentMenu.WidthOffset)
if CurrentMenu.Index > CurrentMenu.Options or CurrentMenu.Index < 0 then
CurrentMenu.Index = 1
end
if (CurrentMenu ~= nil) then
if (CurrentMenu.Index > CurrentMenu.Pagination.Total) then
local offset = CurrentMenu.Index - CurrentMenu.Pagination.Total
CurrentMenu.Pagination.Minimum = 1 + offset
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total + offset
else
CurrentMenu.Pagination.Minimum = 1
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total
end
end
if CurrentMenu.Display.PageCounter then
if CurrentMenu.PageCounter == nil then
local counterContent = CurrentMenu.CustomCounter and CurrentMenu.CustomCounter or
(CurrentMenu.PageCounterColour .. CurrentMenu.Index .. " / " ..
CurrentMenu.Options)
Graphics.Text(counterContent,
CurrentMenu.X + RageUI.Settings.Items.Subtitle.PreText.X + CurrentMenu.WidthOffset,
CurrentMenu.Y + RageUI.Settings.Items.Subtitle.PreText.Y + RageUI.ItemOffset, 0,
RageUI.Settings.Items.Subtitle.PreText.Scale, 245, 245, 245, 255, 2)
else
Graphics.Text(CurrentMenu.PageCounter,
CurrentMenu.X + RageUI.Settings.Items.Subtitle.PreText.X + CurrentMenu.WidthOffset,
CurrentMenu.Y + RageUI.Settings.Items.Subtitle.PreText.Y + RageUI.ItemOffset, 0,
RageUI.Settings.Items.Subtitle.PreText.Scale, 245, 245, 245, 255, 2)
end
end
RageUI.ItemOffset = RageUI.ItemOffset + RageUI.Settings.Items.Subtitle.Background.Height
end
end
end
function RageUI.Background()
if RageUI.CurrentMenu == nil then
return
end
local CurrentMenu = RageUI.CurrentMenu;
if (CurrentMenu.Display.Background) then
RageUI.ItemsSafeZone(CurrentMenu)
SetScriptGfxDrawOrder(0)
Graphics.Sprite(RageUI.Settings.Items.Background.Dictionary, RageUI.Settings.Items.Background.Texture,
CurrentMenu.X, CurrentMenu.Y + RageUI.Settings.Items.Background.Y + CurrentMenu.SubtitleHeight,
RageUI.Settings.Items.Background.Width + CurrentMenu.WidthOffset, RageUI.ItemOffset, 0, 0, 0, 0, 255)
SetScriptGfxDrawOrder(1)
end
end
function RageUI.Description()
if RageUI.CurrentMenu == nil then
return
end
local CurrentMenu = RageUI.CurrentMenu;
local Description = RageUI.Settings.Items.Description;
if CurrentMenu.Description ~= nil then
RageUI.ItemsSafeZone(CurrentMenu)
Graphics.Rectangle(CurrentMenu.X,
CurrentMenu.Y + Description.Bar.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
Description.Bar.Width + CurrentMenu.WidthOffset, Description.Bar.Height, 0, 0, 0, 255)
Graphics.Sprite(Description.Background.Dictionary, Description.Background.Texture, CurrentMenu.X,
CurrentMenu.Y + Description.Background.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
Description.Background.Width + CurrentMenu.WidthOffset, CurrentMenu.DescriptionHeight, 0, 0, 0, 255)
Graphics.Text(CurrentMenu.Description, CurrentMenu.X + Description.Text.X,
CurrentMenu.Y + Description.Text.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Description.Text.Scale, 255, 255, 255, 255, nil, false, false,
Description.Background.Width + CurrentMenu.WidthOffset - 8.0)
RageUI.ItemOffset = RageUI.ItemOffset + CurrentMenu.DescriptionHeight + Description.Bar.Y
end
end
function RageUI.Render()
if RageUI.CurrentMenu == nil then
return
end
local CurrentMenu = RageUI.CurrentMenu;
if CurrentMenu.Safezone then
ResetScriptGfxAlign()
end
CurrentMenu.Options = RageUI.Options
CurrentMenu.SafeZoneSize = nil
RageUI.Controls()
RageUI.Options = 0
RageUI.StatisticPanelCount = 0
RageUI.ItemOffset = 0
if CurrentMenu.Controls.Back.Enabled then
if CurrentMenu.Controls.Back.Pressed and CurrentMenu.Closable then
CurrentMenu.Controls.Back.Pressed = false
Audio.PlaySound(RageUI.Settings.Audio.Back.audioName, RageUI.Settings.Audio.Back.audioRef)
if CurrentMenu.Closed ~= nil then
collectgarbage()
CurrentMenu.Closed()
end
if CurrentMenu.Parent ~= nil then
if CurrentMenu.Parent() then
RageUI.NextMenu = CurrentMenu.Parent
else
RageUI.NextMenu = nil
RageUI.Visible(CurrentMenu, false)
end
else
RageUI.NextMenu = nil
RageUI.Visible(CurrentMenu, false)
end
elseif CurrentMenu.Controls.Back.Pressed and not CurrentMenu.Closable then
CurrentMenu.Controls.Back.Pressed = false
end
end
if RageUI.NextMenu ~= nil then
if RageUI.NextMenu() then
RageUI.Visible(CurrentMenu, false)
RageUI.Visible(RageUI.NextMenu, true)
CurrentMenu.Controls.Select.Active = false
RageUI.NextMenu = nil
RageUI.LastControl = false
end
end
end
function RageUI.ItemsDescription(Description)
local CurrentMenu = RageUI.CurrentMenu;
if Description ~= "" or Description ~= nil then
if CurrentMenu.Description ~= Description then
CurrentMenu.Description = Description or nil;
local SettingsDescription = RageUI.Settings.Items.Description;
local DescriptionLineCount = Graphics.GetLineCount(CurrentMenu.Description,
CurrentMenu.X + SettingsDescription.Text.X, CurrentMenu.Y + SettingsDescription.Text.Y +
CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, SettingsDescription.Text.Scale, 255, 255, 255,
255, nil, false, false, SettingsDescription.Background.Width + (CurrentMenu.WidthOffset - 5.0))
if DescriptionLineCount > 1 then
CurrentMenu.DescriptionHeight = SettingsDescription.Background.Height * DescriptionLineCount
else
CurrentMenu.DescriptionHeight = SettingsDescription.Background.Height + 7
end
end
else
CurrentMenu.Description = nil;
end
end
function RageUI.ItemsMouseBounds(CurrentMenu, Selected, Option, SettingsButton)
local Hovered = false
Hovered = Graphics.IsMouseInBounds(CurrentMenu.X + CurrentMenu.SafeZoneSize.X,
CurrentMenu.Y + SettingsButton.Rectangle.Y + CurrentMenu.SafeZoneSize.Y + CurrentMenu.SubtitleHeight +
RageUI.ItemOffset, SettingsButton.Rectangle.Width + CurrentMenu.WidthOffset, SettingsButton.Rectangle.Height)
if Hovered and not Selected then
Graphics.Rectangle(CurrentMenu.X,
CurrentMenu.Y + SettingsButton.Rectangle.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
SettingsButton.Rectangle.Width + CurrentMenu.WidthOffset, SettingsButton.Rectangle.Height, 255, 255, 255, 20)
if CurrentMenu.Controls.Click.Active then
CurrentMenu.Index = Option
Audio.PlaySound(RageUI.Settings.Audio.UpDown.audioName, RageUI.Settings.Audio.UpDown.audioRef)
end
end
return Hovered;
end
function RageUI.ItemsSafeZone(CurrentMenu)
if not CurrentMenu.SafeZoneSize then
CurrentMenu.SafeZoneSize = {
X = 0,
Y = 0
}
if CurrentMenu.Safezone then
CurrentMenu.SafeZoneSize = RageUI.GetSafeZoneBounds()
SetScriptGfxAlign(76, 84)
SetScriptGfxAlignParams(0, 0, 0, 0)
end
end
end
function RageUI.Pool()
for name, callback in pairs(RageUI.PoolMenus) do
if type(callback) == "function" and name ~= RageUI.PoolMenus.Name then
callback()
if RageUI.PoolMenus.Timer == 1 then
RageUI.PoolMenus.Name = name
return
end
end
end
end
Citizen.CreateThread(function()
while true do
RageUI.PoolMenus.Timer = 250
if RageUI.PoolMenus.Name ~= nil then
RageUI.PoolMenus[RageUI.PoolMenus.Name]()
end
Citizen.Wait(RageUI.PoolMenus.Timer)
if RageUI.PoolMenus.Timer == 250 then
RageUI.PoolMenus.Name = nil
RageUI.Pool();
end
end
end)
@@ -1,449 +0,0 @@
TimerBar = {}
-- consts
TimerBar.gfxAlignWidth = 0.952
TimerBar.gfxAlignHeight = 0.949
TimerBar.initialX = 0.795
TimerBar.initialY = 0.923
TimerBar.initialBusySpinnerY = 0.887
TimerBar.bgBaseX = 0.874
TimerBar.progressBaseX = 0.913
TimerBar.checkpointBaseX = 0.9445
TimerBar.bgOffset = 0.008
TimerBar.bgThinOffset = 0.012
TimerBar.textOffset = -0.006
TimerBar.playerTitleOffset = -0.005
TimerBar.barOffset = 0.012
TimerBar.checkpointOffsetX = 0.0094
TimerBar.checkpointOffsetY = 0.012
TimerBar.timerBarWidth = 0.165
TimerBar.timerBarHeight = 0.035
TimerBar.timerBarThinHeight = 0.028
TimerBar.timerBarMargin = 0.0399
TimerBar.timerBarThinMargin = 0.0319
TimerBar.progressWidth = 0.069
TimerBar.progressHeight = 0.011
TimerBar.checkpointWidth = 0.012
TimerBar.checkpointHeight = 0.023
TimerBar.titleScale = 0.288
TimerBar.titleWrap = 0.867
TimerBar.textScale = 0.494
TimerBar.textWrap = 0.95
TimerBar.playertitleScale = 0.447
TimerBar.timerbarUnique = 0
-- list of all created timerbars
TimerBar.pool = {}
-- timerbar types
TimerBar.Progress = 0
TimerBar.Player = 1
TimerBar.Text = 2
TimerBar.Checkpoint = 3
local function DrawTextLabel(label, position, options)
options.font = Config.UIFontID
SetTextFont(options.font)
SetTextScale(0.0, options.scale)
SetTextColour(options.color[1], options.color[2], options.color[3], options.color[4])
SetTextJustification(options.justification);
if options.wrap then
SetTextWrap(0.0, options.wrap);
end
if options.shadow then
SetTextDropShadow()
end
if options.outline then
SetTextOutline()
end
BeginTextCommandDisplayText(label);
EndTextCommandDisplayText(position[1], position[2]);
end
local function CreateTimerBarBase(title)
local o = {}
-- assign unique ID
TimerBar.timerbarUnique = TimerBar.timerbarUnique + 1
o._id = TimerBar.timerbarUnique
-- set initial styling props
o._thin = false
o._highlightColor = nil
-- assign TextEntry for title
o._titleGxtName = "TMRB_TITLE_" .. o._id
o._title = title
AddTextEntry(o._titleGxtName, title)
-- set initial styling for title
o.titleDrawParams = {
font = 0,
color = {240, 240, 240, 255},
scale = TimerBar.titleScale,
justification = 2,
wrap = TimerBar.titleWrap,
shadow = false,
outline = false
}
-- set new title
o.setTitle = function(title)
o._title = title
AddTextEntry(o._titleGxtName, title)
end
-- set new title color
o.setTitleColor = function(titleColor)
o.titleDrawParams.color = titleColor
end
-- set new highlight color
o.setHighlightColor = function(highlightColor)
o._highlightColor = highlightColor
end
-- draw background
o.drawBackground = function(y)
y = y + (o._thin and TimerBar.bgThinOffset or TimerBar.bgThinOffset)
-- draw highlight side of gradient, if it's set
if o._highlightColor then
DrawSprite("timerbars", "all_white_bg", TimerBar.bgBaseX, y, TimerBar.timerBarWidth,
(o._thin and TimerBar.timerBarThinHeight or TimerBar.timerBarHeight), 0.0, o._highlightColor[1],
o._highlightColor[2], o._highlightColor[3], o._highlightColor[4])
end
-- draw black side of gradient background
DrawSprite("timerbars", "all_black_bg", TimerBar.bgBaseX, y, TimerBar.timerBarWidth,
(o._thin and TimerBar.timerBarThinHeight or TimerBar.timerBarHeight), 0.0, 255, 255, 255, 140)
end
-- draw title
o.drawTitle = function(y)
DrawTextLabel(o._titleGxtName, {TimerBar.initialX, y}, o.titleDrawParams)
end
-- draw
o.draw = function(y)
-- draws background & title
o.drawBackground(y)
o.drawTitle(y)
end
-- on destroy
o.onDestroy = function()
AddTextEntry(o._titleGxtName, "")
end
return o
end
local function CreateBarTimerBar(title, progress)
local o = {}
-- create base class
o.base = CreateTimerBarBase(title)
-- progress background and fill props
o._bgColor = {155, 155, 155, 255};
o._fgColor = {240, 240, 240, 255};
o._fgWidth = 0.0;
o._fgX = 0.0;
-- set new progress
o.setProgress = function(v)
o._progress = Clamp(v, 0.0, 1.0)
o._fgWidth = TimerBar.progressWidth * o._progress
o._fgX = (TimerBar.progressBaseX - TimerBar.progressWidth * 0.5) + (o._fgWidth * 0.5)
end
o.draw = function(y)
-- draw TimerBarBase
o.base.draw(y)
-- draw progress
y = y + TimerBar.barOffset
-- progress background
DrawRect(TimerBar.progressBaseX, y, TimerBar.progressWidth, TimerBar.progressHeight, o._bgColor[1],
o._bgColor[2], o._bgColor[3], o._bgColor[4])
-- progress fill
DrawRect(o._fgX, y, o._fgWidth, TimerBar.progressHeight, o._fgColor[1], o._fgColor[2], o._fgColor[3],
o._fgColor[4])
end
o.setBackgroundColor = function(color)
o._bgColor = color
end
o.setForegroundColor = function(color)
o._fgColor = color
end
-- set initial progress
o._progress = progress;
-- show initial progress
o.setProgress(progress)
o.setHighlightColor = o.base.setHighlightColor
o.setTitleColor = o.base.setTitleColor
o._thin = o.base._thin
o._id = o.base._id
-- on destroy
o.onDestroy = function()
o.base.onDestroy()
end
return o
end
local function CreateTextTimerBar(title, text)
local o = {}
-- create base class
o.base = CreateTimerBarBase(title)
-- assign TextEntry for text
o._textGxtName = "TMRB_TEXT_" .. o.base._id
o._text = text
AddTextEntry(o._textGxtName, text)
-- assign defailt text params
o.textDrawParams = {
font = 0,
color = {238, 232, 170, 255},
scale = TimerBar.textScale,
justification = 2,
wrap = TimerBar.textWrap
};
o.setText = function(newText)
AddTextEntry(o._textGxtName, newText)
end
o.setTextColor = function(color)
o.textDrawParams.color = color
end
-- draw
o.draw = function(y)
-- draw TimerBarBase
o.base.draw(y)
-- draw text
y = y + TimerBar.textOffset;
DrawTextLabel(o._textGxtName, {TimerBar.initialX, y}, o.textDrawParams)
end
o.setHighlightColor = o.base.setHighlightColor
o.setTitleColor = o.base.setTitleColor
o._thin = o.base._thin
o._id = o.base._id
o.setTitle = o.base.setTitle
-- on destroy
o.onDestroy = function()
o.base.onDestroy()
AddTextEntry(o._textGxtName, "")
end
return o
end
local function CreatePlayerTimerBar(title, text)
local o = {}
-- create base class
o.base = CreateTextTimerBar(title, text)
-- override TextTimerBars title styling
local titleDrawParams = o.base.base.titleDrawParams
titleDrawParams.font = 4
titleDrawParams.color = {238, 232, 170, 255}
titleDrawParams.scale = TimerBar.playertitleScale
titleDrawParams.justification = 2
titleDrawParams.wrap = TimerBar.titleWrap
titleDrawParams.shadow = true
o.draw = function(y)
-- draw TimerBarBase background
o.base.base.drawBackground(y)
-- draw title
DrawTextLabel(o.base.base._titleGxtName, {TimerBar.initialX, y + TimerBar.playerTitleOffset}, titleDrawParams)
-- draw text
DrawTextLabel(o.base._textGxtName, {TimerBar.initialX, y + TimerBar.textOffset}, o.base.textDrawParams)
end
o.setTextColor = o.base.setTextColor
o.setHighlightColor = o.base.base.setHighlightColor
o.setTitleColor = o.base.base.setTitleColor
o._thin = o.base.base._thin
o._id = o.base.base._id
-- on destroy
o.onDestroy = function()
o.base.onDestroy()
end
return o
end
local function CreateCheckpointTimerBar(title, numCheckpoints)
local o = {}
-- create base class
o.base = CreateTimerBarBase(title)
o.base._thin = false
-- checkpoints
o._checkpointStates = {}
o._numCheckpoints = numCheckpoints
-- colors
o._color = {113, 204, 111, 255}
o._inProgressColor = {255, 255, 255, 51}
o._failedColor = {0, 0, 0, 255}
-- initialize list
for i = 1, numCheckpoints, 1 do
o._checkpointStates[i] = 0
end
-- set value on all checkpoints
o.toggleAll = function(toggle)
for i = 1, numCheckpoints, 1 do
o._checkpointStates[i] = toggle
end
end
-- change num checkpoints
o.changeNumCheckpoints = function(newCount)
o._numCheckpoints = newCount
-- initialize list
for i = 1, numCheckpoints, 1 do
o._checkpointStates[i] = 0
end
end
-- set all checkpoints checked
o.checkAll = function()
o.toggleAll(1)
end
-- set all checkpoints unchecked
o.uncheckAll = function()
o.toggleAll(0)
end
-- set checkpoint state
o.setCheckpointState = function(index, state)
if o._checkpointStates[index] == nil then
return
end
o._checkpointStates[index] = state
end
-- draw
o.draw = function(y)
o.base.draw(y)
y = y + TimerBar.checkpointOffsetY
local cpX = TimerBar.checkpointBaseX
for i = 1, o._numCheckpoints, 1 do
local state = o._checkpointStates[i]
local drawColor = (state == 0 and o._inProgressColor or (state == -1 and o._failedColor or o._color))
DrawSprite("timerbars", "circle_checkpoints", cpX, y, TimerBar.checkpointWidth, TimerBar.checkpointHeight,
0.0, drawColor[1], drawColor[2], drawColor[3], drawColor[4])
cpX = cpX - TimerBar.checkpointOffsetX;
end
end
o.setHighlightColor = o.base.setHighlightColor
o.setTitleColor = o.base.setTitleColor
o._thin = o.base._thin
o._id = o.base._id
o.setTextColor = o.base.setTextColor
-- on destroy
o.onDestroy = function()
o.base.onDestroy()
end
return o
end
TimerBar.Create = function(type, title, value)
local o = nil
if type == 0 then
o = CreateBarTimerBar(title, value)
elseif type == 1 then
o = CreatePlayerTimerBar(title, value)
elseif type == 2 then
o = CreateTextTimerBar(title, value)
elseif type == 3 then
o = CreateCheckpointTimerBar(title, value)
end
table.insert(TimerBar.pool, o)
o.visible = true
return o
end
TimerBar.Destroy = function(bar)
for index, value in pairs(TimerBar.pool) do
if value == bar then
bar.onDestroy()
table.remove(TimerBar.pool, index)
end
end
end
TimerBar.DestroyAll = function()
for index, value in pairs(TimerBar.pool) do
value.onDestroy()
end
TimerBar.pool = {}
end
TimerBar.BeginDraw = function()
HideHudComponentThisFrame(6); -- HUD_VEHICLE_NAME
HideHudComponentThisFrame(7); -- HUD_AREA_NAME
HideHudComponentThisFrame(8); -- HUD_VEHICLE_CLASS
HideHudComponentThisFrame(9); -- HUD_STREET_NAME
SetScriptGfxAlign(82, 66)
SetScriptGfxAlignParams(0.0, 0.0, TimerBar.gfxAlignWidth, TimerBar.gfxAlignHeight)
end
TimerBar.EndDraw = function()
ResetScriptGfxAlign()
end
TimerBar.DrawAll = function()
if #(TimerBar.pool) == 0 then
return
end
if not ENABLE_HUD then
return
end
TimerBar.BeginDraw()
local busySpinner = BusyspinnerIsOn()
local drawY = ((busySpinner or INSTRUCTIONAL_BUTTONS_ACTIVE) and TimerBar.initialBusySpinnerY or TimerBar.initialY)
for _, v in pairs(TimerBar.pool) do
if v.visible then
v.draw(drawY)
drawY = drawY - (v._thin and TimerBar.timerBarThinMargin or TimerBar.timerBarMargin);
end
end
TimerBar.EndDraw()
end
@@ -1,34 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- File created at [24/05/2021 00:00]
---
Audio = {}
---PlaySound
---
--- Reference : N/A
---
---@param Library string
---@param Sound string
---@param IsLooped boolean
---@return nil
---@public
function Audio.PlaySound(Library, Sound, IsLooped)
local audioId
if not IsLooped then
PlaySoundFrontend(-1, Sound, Library, true)
else
if not audioId then
Citizen.CreateThread(function()
audioId = GetSoundId()
PlaySoundFrontend(audioId, Sound, Library, true)
Citizen.Wait(0.01)
StopSound(audioId)
ReleaseSoundId(audioId)
audioId = nil
end)
end
end
end
@@ -1,176 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- File created at [24/05/2021 00:00]
---
local function StringToArray(str)
local charCount = #str
local strCount = math.ceil(charCount / 99)
local strings = {}
for i = 1, strCount do
local start = (i - 1) * 99 + 1
local clamp = math.clamp(#string.sub(str, start), 0, 99)
local finish = ((i ~= 1) and (start - 1) or 0) + clamp
strings[i] = string.sub(str, start, finish)
end
return strings
end
local function AddText(str)
local str = tostring(str)
local charCount = #str
if charCount < 100 then
AddTextComponentSubstringPlayerName(str)
else
local strings = StringToArray(str)
for s = 1, #strings do
AddTextComponentSubstringPlayerName(strings[s])
end
end
end
local function RText(text, x, y, font, scale, r, g, b, a, alignment, dropShadow, outline, wordWrap)
local Text, X, Y = text, (x or 0) / 1920, (y or 0) / 1080
SetTextFont(Config.UIFontID)
SetTextScale(1.0, scale or 0)
SetTextColour(r or 255, g or 255, b or 255, a or 255)
if dropShadow then
SetTextDropShadow()
end
if outline then
SetTextOutline()
end
if alignment ~= nil then
if alignment == 1 or alignment == "Center" or alignment == "Centre" then
SetTextCentre(true)
elseif alignment == 2 or alignment == "Right" then
SetTextRightJustify(true)
end
end
if wordWrap and wordWrap ~= 0 then
if alignment == 1 or alignment == "Center" or alignment == "Centre" then
SetTextWrap(X - ((wordWrap / 1920) / 2), X + ((wordWrap / 1920) / 2))
elseif alignment == 2 or alignment == "Right" then
SetTextWrap(0, X)
else
SetTextWrap(X, X + (wordWrap / 1920))
end
else
if alignment == 2 or alignment == "Right" then
SetTextWrap(0, X)
end
end
return Text, X, Y
end
Graphics = {};
function Graphics.MeasureStringWidth(str, font, scale)
BeginTextCommandGetWidth("CELL_EMAIL_BCON")
AddTextComponentSubstringPlayerName(str)
SetTextFont(Config.UIFontID)
SetTextScale(1.0, scale or 0)
return EndTextCommandGetWidth(true) * 1920
end
function Graphics.Rectangle(x, y, width, height, r, g, b, a)
local X, Y, Width, Height = (x or 0) / 1920, (y or 0) / 1080, (width or 0) / 1920, (height or 0) / 1080
DrawRect(X + Width * 0.5, Y + Height * 0.5, Width, Height, r or 255, g or 255, b or 255, a or 255)
end
function Graphics.Sprite(dictionary, name, x, y, width, height, heading, r, g, b, a)
local X, Y, Width, Height = (x or 0) / 1920, (y or 0) / 1080, (width or 0) / 1920, (height or 0) / 1080
if not HasStreamedTextureDictLoaded(dictionary) then
RequestStreamedTextureDict(dictionary, true)
end
DrawSprite(dictionary, name, X + Width * 0.5, Y + Height * 0.5, Width, Height, heading or 0, r or 255, g or 255,
b or 255, a or 255)
end
Graphics.LineCache = {}
function Graphics.GetLineCount(text, x, y, font, scale, r, g, b, a, alignment, dropShadow, outline, wordWrap)
if not text then
return 1
end
if Graphics.LineCache[text] then
return Graphics.LineCache[text]
end
local Text, X, Y = RText(text, x, y, font, scale, r, g, b, a, alignment, dropShadow, outline, wordWrap)
BeginTextCommandLineCount("CELL_EMAIL_BCON")
AddText(Text)
local cached = EndTextCommandLineCount(X, Y)
Graphics.LineCache[text] = cached
return cached
end
function Graphics.Text(text, x, y, font, scale, r, g, b, a, alignment, dropShadow, outline, wordWrap)
local Text, X, Y = RText(text, x, y, font, scale, r, g, b, a, alignment, dropShadow, outline, wordWrap)
BeginTextCommandDisplayText("CELL_EMAIL_BCON")
AddText(Text)
EndTextCommandDisplayText(X, Y)
end
function Graphics.IsMouseInBounds(X, Y, Width, Height)
local MX, MY = math.round(GetControlNormal(2, 239) * 1920) / 1920,
math.round(GetControlNormal(2, 240) * 1080) / 1080
X, Y = X / 1920, Y / 1080
Width, Height = Width / 1920, Height / 1080
return (MX >= X and MX <= X + Width) and (MY > Y and MY < Y + Height)
end
function Graphics.ConvertToPixel(x, y)
return (x * 1920), (y * 1080)
end
function Graphics.ScreenToWorld(distance, flags)
local camRot = GetGameplayCamRot(0)
local camPos = GetGameplayCamCoord()
local mouse = vector2(GetControlNormal(2, 239), GetControlNormal(2, 240))
local cam3DPos, forwardDir = Graphics.ScreenRelToWorld(camPos, camRot, mouse)
local direction = camPos + forwardDir * distance
local rayHandle = StartExpensiveSynchronousShapeTestLosProbe(cam3DPos, direction, flags, 0, 0)
local _, hit, endCoords, surfaceNormal, entityHit = GetShapeTestResult(rayHandle)
return (hit == 1 and true or false), endCoords, surfaceNormal, entityHit,
(entityHit >= 1 and GetEntityType(entityHit) or 0), direction, mouse
end
function Graphics.ScreenRelToWorld(camPos, camRot, cursor)
local camForward = Graphics.RotationToDirection(camRot)
local rotUp = vector3(camRot.x + 1.0, camRot.y, camRot.z)
local rotDown = vector3(camRot.x - 1.0, camRot.y, camRot.z)
local rotLeft = vector3(camRot.x, camRot.y, camRot.z - 1.0)
local rotRight = vector3(camRot.x, camRot.y, camRot.z + 1.0)
local camRight = Graphics.RotationToDirection(rotRight) - Graphics.RotationToDirection(rotLeft)
local camUp = Graphics.RotationToDirection(rotUp) - Graphics.RotationToDirection(rotDown)
local rollRad = -(camRot.y * math.pi / 180.0)
local camRightRoll = camRight * math.cos(rollRad) - camUp * math.sin(rollRad)
local camUpRoll = camRight * math.sin(rollRad) + camUp * math.cos(rollRad)
local point3DZero = camPos + camForward * 1.0
local point3D = point3DZero + camRightRoll + camUpRoll
local point2D = Graphics.World3DToScreen2D(point3D)
local point2DZero = Graphics.World3DToScreen2D(point3DZero)
local scaleX = (cursor.x - point2DZero.x) / (point2D.x - point2DZero.x)
local scaleY = (cursor.y - point2DZero.y) / (point2D.y - point2DZero.y)
local point3Dret = point3DZero + camRightRoll * scaleX + camUpRoll * scaleY
local forwardDir = camForward + camRightRoll * scaleX + camUpRoll * scaleY
return point3Dret, forwardDir
end
function Graphics.RotationToDirection(rotation)
local x, z = (rotation.x * math.pi / 180.0), (rotation.z * math.pi / 180.0)
local num = math.abs(math.cos(x))
return vector3((-math.sin(z) * num), (math.cos(z) * num), math.sin(x))
end
function Graphics.World3DToScreen2D(pos)
local _, sX, sY = GetScreenCoordFromWorldCoord(pos.x, pos.y, pos.z)
return vector2(sX, sY)
end
@@ -1,22 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- File created at [24/05/2021 00:00]
---
Keys = {};
---Register
---@param Controls string
---@param ControlName string
---@param Description string
---@param Action function
---@return Keys
---@public
function Keys.Register(Controls, ControlName, Description, Action)
RegisterKeyMapping(string.format('keys-%s', ControlName), Description, "keyboard", Controls)
RegisterCommand(string.format('keys-%s', ControlName), function()
if (Action ~= nil) then
Action();
end
end, false)
end
@@ -1,12 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- File created at [24/05/2021 09:57]
---
function math.round(num, numDecimalPlaces)
return tonumber(string.format("%." .. (numDecimalPlaces or 0) .. "f", num))
end
function string.starts(String, Start)
return string.sub(String, 1, string.len(Start)) == Start
end
@@ -1,85 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- File created at [24/05/2021 00:00]
---
Visual = {};
local function AddLongString(txt)
for i = 100, string.len(txt), 99 do
local sub = string.sub(txt, i, i + 99)
AddTextComponentSubstringPlayerName(sub)
end
end
function Visual.Notification(args)
if (not args.dict) and (args.name) then
args.dict = args.name
end
if not HasStreamedTextureDictLoaded(args.dict) then
RequestStreamedTextureDict(args.dict, false)
while not HasStreamedTextureDictLoaded(args.dict) do
Wait(0)
end
end
if (args.backId) then
ThefeedNextPostBackgroundColor(args.backId)
end
BeginTextCommandThefeedPost("jamyfafi")
if (args.message) then
AddTextComponentSubstringPlayerName(args.message)
if string.len(args.message) > 99 then
AddLongString(args.message)
end
end
if (args.title) and (args.subtitle) and (args.name) then
EndTextCommandThefeedPostMessagetext(args.dict or "CHAR_DEFAULT", args.name or "CHAR_DEFAULT", true,
args.icon or 0, args.title or "", args.subtitle or "")
SetStreamedTextureDictAsNoLongerNeeded(args.dict)
end
EndTextCommandThefeedPostTicker(false, true)
end
function Visual.Subtitle(text, time)
ClearPrints()
BeginTextCommandPrint("STRING")
AddTextComponentSubstringPlayerName(text)
EndTextCommandPrint(time and math.ceil(time) or 0, true)
end
function Visual.FloatingHelpText(text, sound, loop)
BeginTextCommandDisplayHelp("jamyfafi")
AddTextComponentSubstringPlayerName(text)
if string.len(text) > 99 then
AddLongString(text)
end
EndTextCommandDisplayHelp(0, loop or 0, sound or false, -1)
end
function Visual.Prompt(text, spinner)
BeginTextCommandBusyspinnerOn("STRING")
AddTextComponentSubstringPlayerName(text)
EndTextCommandBusyspinnerOn(spinner or 1)
end
function Visual.PromptDuration(duration, text, spinner)
Citizen.CreateThread(function()
Citizen.Wait(0)
Visual.Prompt(text, spinner)
Citizen.Wait(duration)
if (BusyspinnerIsOn()) then
BusyspinnerOff();
end
end)
end
function Visual.FloatingHelpTextToEntity(text, x, y)
SetFloatingHelpTextScreenPosition(1, x, y)
SetFloatingHelpTextStyle(1, 1, 2, -1, 3, 0)
BeginTextCommandDisplayHelp("jamyfafi")
AddTextComponentSubstringPlayerName(text)
if string.len(text) > 99 then
AddLongString(text)
end
EndTextCommandDisplayHelp(2, false, false, -1)
end
@@ -1,337 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
RageUI.BadgeStyle = {
-- DEFAULT BADGE
None = function()
return {
BadgeTexture = "",
BadgeDictionary = "commonmenu"
}
end,
BronzeMedal = function()
return {
BadgeTexture = "mp_medal_bronze"
}
end,
GoldMedal = function()
return {
BadgeTexture = "mp_medal_gold"
}
end,
SilverMedal = function()
return {
BadgeTexture = "medal_silver"
}
end,
Alert = function()
return {
BadgeTexture = "mp_alerttriangle"
}
end,
Crown = function(Selected)
return {
BadgeTexture = "mp_hostcrown",
BadgeColour = Selected and {
R = 0,
G = 0,
B = 0,
A = 255
} or {
R = 255,
G = 255,
B = 255,
A = 255
}
}
end,
Ammo = function(Selected)
return {
BadgeTexture = Selected and "shop_ammo_icon_b" or "shop_ammo_icon_a"
}
end,
Armour = function(Selected)
return {
BadgeTexture = Selected and "shop_armour_icon_b" or "shop_armour_icon_a"
}
end,
Barber = function(Selected)
return {
BadgeTexture = Selected and "shop_barber_icon_b" or "shop_barber_icon_a"
}
end,
Clothes = function(Selected)
return {
BadgeTexture = Selected and "shop_clothing_icon_b" or "shop_clothing_icon_a"
}
end,
Franklin = function(Selected)
return {
BadgeTexture = Selected and "shop_franklin_icon_b" or "shop_franklin_icon_a"
}
end,
Bike = function(Selected)
return {
BadgeTexture = Selected and "shop_garage_bike_icon_b" or "shop_garage_bike_icon_a"
}
end,
Car = function(Selected)
return {
BadgeTexture = Selected and "shop_garage_icon_b" or "shop_garage_icon_a"
}
end,
Boat = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_boat_black" or "mp_specitem_boat",
BadgeDictionary = "mpinventory"
}
end,
Heli = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_heli_black" or "mp_specitem_heli",
BadgeDictionary = "mpinventory"
}
end,
Plane = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_plane_black" or "mp_specitem_plane",
BadgeDictionary = "mpinventory"
}
end,
BoatPickup = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_boatpickup_black" or "mp_specitem_boatpickup",
BadgeDictionary = "mpinventory"
}
end,
Card = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_keycard_black" or "mp_specitem_keycard",
BadgeDictionary = "mpinventory"
}
end,
Gun = function(Selected)
return {
BadgeTexture = Selected and "shop_gunclub_icon_b" or "shop_gunclub_icon_a"
}
end,
Heart = function(Selected)
return {
BadgeTexture = Selected and "shop_health_icon_b" or "shop_health_icon_a"
}
end,
CasinoVIP = function(Selected)
return {
BadgeTexture = Selected and "shop_health_icon_b" or "shop_health_icon_a",
BadgeColour = Selected and {
R = 255,
G = 0,
B = 93,
A = 255
} or {
R = 255,
G = 0,
B = 93,
A = 255
}
}
end,
Makeup = function(Selected)
return {
BadgeTexture = Selected and "shop_makeup_icon_b" or "shop_makeup_icon_a"
}
end,
Mask = function(Selected)
return {
BadgeTexture = Selected and "shop_mask_icon_b" or "shop_mask_icon_a"
}
end,
Michael = function(Selected)
return {
BadgeTexture = Selected and "shop_michael_icon_b" or "shop_michael_icon_a"
}
end,
Star = function()
return {
BadgeTexture = "shop_new_star"
}
end,
Tattoo = function(Selected)
return {
BadgeTexture = Selected and "shop_tattoos_icon_b" or "shop_tattoos_icon_a"
}
end,
Trevor = function(Selected)
return {
BadgeTexture = Selected and "shop_trevor_icon_b" or "shop_trevor_icon_a"
}
end,
Lock = function(Selected)
return {
BadgeTexture = "shop_lock",
BadgeColour = Selected and {
R = 0,
G = 0,
B = 0,
A = 255
} or {
R = 255,
G = 255,
B = 255,
A = 255
}
}
end,
Tick = function(Selected)
return {
BadgeTexture = "shop_tick_icon",
BadgeColour = Selected and {
R = 0,
G = 0,
B = 0,
A = 255
} or {
R = 255,
G = 255,
B = 255,
A = 255
}
}
end,
Key = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_cuffkeys_black" or "mp_specitem_cuffkeys",
BadgeDictionary = "mpinventory"
}
end,
Coke = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_coke_black" or "mp_specitem_coke",
BadgeDictionary = "mpinventory"
}
end,
Heroin = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_heroin_black" or "mp_specitem_heroin",
BadgeDictionary = "mpinventory"
}
end,
Meth = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_meth_black" or "mp_specitem_meth",
BadgeDictionary = "mpinventory"
}
end,
Weed = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_weed_black" or "mp_specitem_weed",
BadgeDictionary = "mpinventory"
}
end,
Package = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_package_black" or "mp_specitem_package",
BadgeDictionary = "mpinventory"
}
end,
Cash = function(Selected)
return {
BadgeTexture = Selected and "mp_specitem_cash_black" or "mp_specitem_cash",
BadgeDictionary = "mpinventory"
}
end,
RP = function(Selected)
return {
BadgeTexture = "mp_anim_rp",
BadgeDictionary = "mphud"
}
end,
LSPD = function()
return {
BadgeTexture = "mpgroundlogo_cops",
BadgeDictionary = "3dtextures"
}
end,
Vagos = function()
return {
BadgeTexture = "mpgroundlogo_vagos",
BadgeDictionary = "3dtextures"
}
end,
Bikers = function()
return {
BadgeTexture = "mpgroundlogo_bikers",
BadgeDictionary = "3dtextures"
}
end,
-- CASINO
Badbeat = function()
return {
BadgeTexture = "badbeat",
BadgeDictionary = "mpawardcasino"
}
end,
CashingOut = function()
return {
BadgeTexture = "cashingout",
BadgeDictionary = "mpawardcasino"
}
end,
FullHouse = function()
return {
BadgeTexture = "fullhouse",
BadgeDictionary = "mpawardcasino"
}
end,
HighRoller = function()
return {
BadgeTexture = "highroller",
BadgeDictionary = "mpawardcasino"
}
end,
HouseKeeping = function()
return {
BadgeTexture = "housekeeping",
BadgeDictionary = "mpawardcasino"
}
end,
LooseCheng = function()
return {
BadgeTexture = "loosecheng",
BadgeDictionary = "mpawardcasino"
}
end,
LuckyLucky = function()
return {
BadgeTexture = "luckylucky",
BadgeDictionary = "mpawardcasino"
}
end,
PlayToWin = function()
return {
BadgeTexture = "playtowin",
BadgeDictionary = "mpawardcasino"
}
end,
StraightFlush = function()
return {
BadgeTexture = "straightflush",
BadgeDictionary = "mpawardcasino"
}
end,
StrongArmTactics = function()
return {
BadgeTexture = "strongarmtactics",
BadgeDictionary = "mpawardcasino"
}
end,
TopPair = function()
return {
BadgeTexture = "toppair",
BadgeDictionary = "mpawardcasino"
}
end
}
@@ -1,227 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
RageUI.ItemsColour = {
MyRed = {255, 20, 20, 255},
MyOrange = {255, 141, 20, 255},
MyGreen = {82, 255, 20, 255},
PureWhite = {255, 255, 255, 255},
White = {240, 240, 240, 255},
Black = {0, 0, 0, 255},
Grey = {155, 155, 155, 255},
GreyLight = {205, 205, 205, 255},
GreyDark = {77, 77, 77, 255},
Red = {224, 50, 50, 255},
RedLight = {240, 153, 153, 255},
RedDark = {112, 25, 25, 255},
Blue = {93, 182, 229, 255},
BlueLight = {174, 219, 242, 255},
BlueDark = {47, 92, 115, 255},
Yellow = {240, 200, 80, 255},
YellowLight = {254, 235, 169, 255},
YellowDark = {126, 107, 41, 255},
Orange = {255, 133, 85, 255},
OrangeLight = {255, 194, 170, 255},
OrangeDark = {127, 66, 42, 255},
Green = {114, 204, 114, 255},
GreenLight = {185, 230, 185, 255},
GreenDark = {57, 102, 57, 255},
Purple = {132, 102, 226, 255},
PurpleLight = {192, 179, 239, 255},
PurpleDark = {67, 57, 111, 255},
Pink = {203, 54, 148, 255},
RadarHealth = {53, 154, 71, 255},
RadarArmour = {93, 182, 229, 255},
RadarDamage = {235, 36, 39, 255},
NetPlayer1 = {194, 80, 80, 255},
NetPlayer2 = {156, 110, 175, 255},
NetPlayer3 = {255, 123, 196, 255},
NetPlayer4 = {247, 159, 123, 255},
NetPlayer5 = {178, 144, 132, 255},
NetPlayer6 = {141, 206, 167, 255},
NetPlayer7 = {113, 169, 175, 255},
NetPlayer8 = {211, 209, 231, 255},
NetPlayer9 = {144, 127, 153, 255},
NetPlayer10 = {106, 196, 191, 255},
NetPlayer11 = {214, 196, 153, 255},
NetPlayer12 = {234, 142, 80, 255},
NetPlayer13 = {152, 203, 234, 255},
NetPlayer14 = {178, 98, 135, 255},
NetPlayer15 = {144, 142, 122, 255},
NetPlayer16 = {166, 117, 94, 255},
NetPlayer17 = {175, 168, 168, 255},
NetPlayer18 = {232, 142, 155, 255},
NetPlayer19 = {187, 214, 91, 255},
NetPlayer20 = {12, 123, 86, 255},
NetPlayer21 = {123, 196, 255, 255},
NetPlayer22 = {171, 60, 230, 255},
NetPlayer23 = {206, 169, 13, 255},
NetPlayer24 = {71, 99, 173, 255},
NetPlayer25 = {42, 166, 185, 255},
NetPlayer26 = {186, 157, 125, 255},
NetPlayer27 = {201, 225, 255, 255},
NetPlayer28 = {240, 240, 150, 255},
NetPlayer29 = {237, 140, 161, 255},
NetPlayer30 = {249, 138, 138, 255},
NetPlayer31 = {252, 239, 166, 255},
NetPlayer32 = {240, 240, 240, 255},
SimpleBlipDefault = {159, 201, 166, 255},
MenuBlue = {140, 140, 140, 255},
MenuGreyLight = {140, 140, 140, 255},
MenuBlueExtraDark = {40, 40, 40, 255},
MenuYellow = {240, 160, 0, 255},
MenuYellowDark = {240, 160, 0, 255},
MenuGreen = {240, 160, 0, 255},
MenuGrey = {140, 140, 140, 255},
MenuGreyDark = {60, 60, 60, 255},
MenuHighlight = {30, 30, 30, 255},
MenuStandard = {140, 140, 140, 255},
MenuDimmed = {75, 75, 75, 255},
MenuExtraDimmed = {50, 50, 50, 255},
BriefTitle = {95, 95, 95, 255},
MidGreyMp = {100, 100, 100, 255},
NetPlayer1Dark = {93, 39, 39, 255},
NetPlayer2Dark = {77, 55, 89, 255},
NetPlayer3Dark = {124, 62, 99, 255},
NetPlayer4Dark = {120, 80, 80, 255},
NetPlayer5Dark = {87, 72, 66, 255},
NetPlayer6Dark = {74, 103, 83, 255},
NetPlayer7Dark = {60, 85, 88, 255},
NetPlayer8Dark = {105, 105, 64, 255},
NetPlayer9Dark = {72, 63, 76, 255},
NetPlayer10Dark = {53, 98, 95, 255},
NetPlayer11Dark = {107, 98, 76, 255},
NetPlayer12Dark = {117, 71, 40, 255},
NetPlayer13Dark = {76, 101, 117, 255},
NetPlayer14Dark = {65, 35, 47, 255},
NetPlayer15Dark = {72, 71, 61, 255},
NetPlayer16Dark = {85, 58, 47, 255},
NetPlayer17Dark = {87, 84, 84, 255},
NetPlayer18Dark = {116, 71, 77, 255},
NetPlayer19Dark = {93, 107, 45, 255},
NetPlayer20Dark = {6, 61, 43, 255},
NetPlayer21Dark = {61, 98, 127, 255},
NetPlayer22Dark = {85, 30, 115, 255},
NetPlayer23Dark = {103, 84, 6, 255},
NetPlayer24Dark = {35, 49, 86, 255},
NetPlayer25Dark = {21, 83, 92, 255},
NetPlayer26Dark = {93, 98, 62, 255},
NetPlayer27Dark = {100, 112, 127, 255},
NetPlayer28Dark = {120, 120, 75, 255},
NetPlayer29Dark = {152, 76, 93, 255},
NetPlayer30Dark = {124, 69, 69, 255},
NetPlayer31Dark = {10, 43, 50, 255},
NetPlayer32Dark = {95, 95, 10, 255},
Bronze = {180, 130, 97, 255},
Silver = {150, 153, 161, 255},
Gold = {214, 181, 99, 255},
Platinum = {166, 221, 190, 255},
Gang1 = {29, 100, 153, 255},
Gang2 = {214, 116, 15, 255},
Gang3 = {135, 125, 142, 255},
Gang4 = {229, 119, 185, 255},
SameCrew = {252, 239, 166, 255},
Freemode = {45, 110, 185, 255},
PauseBg = {0, 0, 0, 255},
Friendly = {93, 182, 229, 255},
Enemy = {194, 80, 80, 255},
Location = {240, 200, 80, 255},
Pickup = {114, 204, 114, 255},
PauseSingleplayer = {114, 204, 114, 255},
FreemodeDark = {22, 55, 92, 255},
InactiveMission = {154, 154, 154, 255},
Damage = {194, 80, 80, 255},
PinkLight = {252, 115, 201, 255},
PmMitemHighlight = {252, 177, 49, 255},
ScriptVariable = {0, 0, 0, 255},
Yoga = {109, 247, 204, 255},
Tennis = {241, 101, 34, 255},
Golf = {214, 189, 97, 255},
ShootingRange = {112, 25, 25, 255},
FlightSchool = {47, 92, 115, 255},
NorthBlue = {93, 182, 229, 255},
SocialClub = {234, 153, 28, 255},
PlatformBlue = {11, 55, 123, 255},
PlatformGreen = {146, 200, 62, 255},
PlatformGrey = {234, 153, 28, 255},
FacebookBlue = {66, 89, 148, 255},
IngameBg = {0, 0, 0, 255},
Darts = {114, 204, 114, 255},
Waypoint = {164, 76, 242, 255},
Michael = {101, 180, 212, 255},
Franklin = {171, 237, 171, 255},
Trevor = {255, 163, 87, 255},
GolfP1 = {240, 240, 240, 255},
GolfP2 = {235, 239, 30, 255},
GolfP3 = {255, 149, 14, 255},
GolfP4 = {246, 60, 161, 255},
WaypointLight = {210, 166, 249, 255},
WaypointDark = {82, 38, 121, 255},
PanelLight = {0, 0, 0, 255},
MichaelDark = {72, 103, 116, 255},
FranklinDark = {85, 118, 85, 255},
TrevorDark = {127, 81, 43, 255},
ObjectiveRoute = {240, 200, 80, 255},
PausemapTint = {0, 0, 0, 255},
PauseDeselect = {100, 100, 100, 255},
PmWeaponsPurchasable = {45, 110, 185, 255},
PmWeaponsLocked = {240, 240, 240, 255},
ScreenBg = {0, 0, 0, 255},
Chop = {224, 50, 50, 255},
PausemapTintHalf = {0, 0, 0, 255},
NorthBlueOfficial = {0, 71, 133, 255},
ScriptVariable2 = {0, 0, 0, 255},
H = {33, 118, 37, 255},
HDark = {37, 102, 40, 255},
T = {234, 153, 28, 255},
TDark = {225, 140, 8, 255},
HShard = {20, 40, 0, 255},
ControllerMichael = {48, 255, 255, 255},
ControllerFranklin = {48, 255, 0, 255},
ControllerTrevor = {176, 80, 0, 255},
ControllerChop = {127, 0, 0, 255},
VideoEditorVideo = {53, 166, 224, 255},
VideoEditorAudio = {162, 79, 157, 255},
VideoEditorText = {104, 192, 141, 255},
HbBlue = {29, 100, 153, 255},
HbYellow = {234, 153, 28, 255},
VideoEditorScore = {240, 160, 1, 255},
VideoEditorAudioFadeout = {59, 34, 57, 255},
VideoEditorTextFadeout = {41, 68, 53, 255},
VideoEditorScoreFadeout = {82, 58, 10, 255},
HeistBackground = {37, 102, 40, 255},
VideoEditorAmbient = {240, 200, 80, 255},
VideoEditorAmbientFadeout = {80, 70, 34, 255},
Gb = {255, 133, 85, 255},
G = {255, 194, 170, 255},
B = {255, 133, 85, 255},
LowFlow = {240, 200, 80, 255},
LowFlowDark = {126, 107, 41, 255},
G1 = {247, 159, 123, 255},
G2 = {226, 134, 187, 255},
G3 = {239, 238, 151, 255},
G4 = {113, 169, 175, 255},
G5 = {160, 140, 193, 255},
G6 = {141, 206, 167, 255},
G7 = {181, 214, 234, 255},
G8 = {178, 144, 132, 255},
G9 = {0, 132, 114, 255},
G10 = {216, 85, 117, 255},
G11 = {30, 100, 152, 255},
G12 = {43, 181, 117, 255},
G13 = {233, 141, 79, 255},
G14 = {137, 210, 215, 255},
G15 = {134, 125, 141, 255},
Adversary = {109, 34, 33, 255},
DegenRed = {255, 0, 0, 255},
DegenYellow = {255, 255, 0, 255},
DegenGreen = {0, 255, 0, 255},
DegenCyan = {0, 255, 255, 255},
DegenBlue = {0, 0, 255, 255},
DegenMagenta = {255, 0, 255, 255},
Stunt1 = {38, 136, 234, 255},
Stunt2 = {224, 50, 50, 255}
}
@@ -1,73 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
RageUI.PanelColour = {
HairCut = {{22, 19, 19}, -- 0
{30, 28, 25}, -- 1
{76, 56, 45}, -- 2
{69, 34, 24}, -- 3
{123, 59, 31}, -- 4
{149, 68, 35}, -- 5
{165, 87, 50}, -- 6
{175, 111, 72}, -- 7
{159, 105, 68}, -- 8
{198, 152, 108}, -- 9
{213, 170, 115}, -- 10
{223, 187, 132}, -- 11
{202, 164, 110}, -- 12
{238, 204, 130}, -- 13
{229, 190, 126}, -- 14
{250, 225, 167}, -- 15
{187, 140, 96}, -- 16
{163, 92, 60}, -- 17
{144, 52, 37}, -- 18
{134, 21, 17}, -- 19
{164, 24, 18}, -- 20
{195, 33, 24}, -- 21
{221, 69, 34}, -- 22
{229, 71, 30}, -- 23
{208, 97, 56}, -- 24
{113, 79, 38}, -- 25
{132, 107, 95}, -- 26
{185, 164, 150}, -- 27
{218, 196, 180}, -- 28
{247, 230, 217}, -- 29
{102, 72, 93}, -- 30
{162, 105, 138}, -- 31
{171, 174, 11}, -- 32
{239, 61, 200}, -- 33
{255, 69, 152}, -- 34
{255, 178, 191}, -- 35
{12, 168, 146}, -- 36
{8, 146, 165}, -- 37
{11, 82, 134}, -- 38
{118, 190, 117}, -- 39
{52, 156, 104}, -- 40
{22, 86, 85}, -- 41
{152, 177, 40}, -- 42
{127, 162, 23}, -- 43
{241, 200, 98}, -- 44
{238, 178, 16}, -- 45
{224, 134, 14}, -- 46
{247, 157, 15}, -- 47
{243, 143, 16}, -- 48
{231, 70, 15}, -- 49
{255, 101, 21}, -- 50
{254, 91, 34}, -- 51
{252, 67, 21}, -- 52
{196, 12, 15}, -- 53
{143, 10, 14}, -- 54
{44, 27, 22}, -- 55
{80, 51, 37}, -- 56
{98, 54, 37}, -- 57
{60, 31, 24}, -- 58
{69, 43, 32}, -- 59
{8, 10, 14}, -- 60
{212, 185, 158}, -- 61
{212, 185, 158}, -- 62
{213, 170, 115} -- 63
}
}
@@ -1,689 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
local ItemsSettings = {
CheckBox = {
Textures = {"shop_box_blankb", -- 1
"shop_box_tickb", -- 2
"shop_box_blank", -- 3
"shop_box_tick", -- 4
"shop_box_crossb", -- 5
"shop_box_cross" -- 6
},
X = 380,
Y = -6,
Width = 50,
Height = 50
},
Rectangle = {
Y = 0,
Width = 431,
Height = 38
}
}
local function StyleCheckBox(Selected, Checked, Box, BoxSelect, OffSet)
local CurrentMenu = RageUI.CurrentMenu;
if OffSet == nil then
OffSet = 0
end
if Selected then
if Checked then
Graphics.Sprite("commonmenu", ItemsSettings.CheckBox.Textures[Box],
CurrentMenu.X + 380 + CurrentMenu.WidthOffset - OffSet,
CurrentMenu.Y + -6 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 50, 50)
else
Graphics.Sprite("commonmenu", ItemsSettings.CheckBox.Textures[1],
CurrentMenu.X + 380 + CurrentMenu.WidthOffset - OffSet,
CurrentMenu.Y + -6 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 50, 50)
end
else
if Checked then
Graphics.Sprite("commonmenu", ItemsSettings.CheckBox.Textures[BoxSelect],
CurrentMenu.X + 380 + CurrentMenu.WidthOffset - OffSet,
CurrentMenu.Y + -6 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 50, 50)
else
Graphics.Sprite("commonmenu", ItemsSettings.CheckBox.Textures[3],
CurrentMenu.X + 380 + CurrentMenu.WidthOffset - OffSet,
CurrentMenu.Y + -6 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 50, 50)
end
end
end
---@class Items
Items = {}
---AddButton
---
--- Add items button.
---
---@param Label string
---@param Description string
---@param Style table
---@param Actions fun(onSelected:boolean, onActive:boolean)
---@param Submenu any
---@public
---@return void
function Items:AddButton(Label, Description, Style, Actions, Submenu)
if not RageUI.CurrentMenu then
return
end
local CurrentMenu = RageUI.CurrentMenu
local Option = RageUI.Options + 1
if CurrentMenu.Pagination.Minimum <= Option and CurrentMenu.Pagination.Maximum >= Option then
local Active = CurrentMenu.Index == Option
RageUI.ItemsSafeZone(CurrentMenu)
local haveLeftBadge = Style.LeftBadge and Style.LeftBadge ~= RageUI.BadgeStyle.None
local haveRightBadge = (Style.RightBadge and Style.RightBadge ~= RageUI.BadgeStyle.None)
local LeftBadgeOffset = haveLeftBadge and 27 or 0
local RightBadgeOffset = haveRightBadge and 32 or 0
if Style.Color and Style.Color.BackgroundColor then
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
431 + CurrentMenu.WidthOffset, 38, Style.Color.BackgroundColor[1], Style.Color.BackgroundColor[2],
Style.Color.BackgroundColor[3], Style.Color.BackgroundColor[4])
end
if Active then
if Style.Color and Style.Color.HightLightColor then
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
431 + CurrentMenu.WidthOffset, 38, Style.Color.HightLightColor[1], Style.Color.HightLightColor[2],
Style.Color.HightLightColor[3], Style.Color.HightLightColor[4])
else
Graphics.Sprite("commonmenu", "gradient_nav", CurrentMenu.X,
CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 431 + CurrentMenu.WidthOffset,
38)
end
end
if not (Style.IsDisabled) then
if haveLeftBadge then
if (Style.LeftBadge ~= nil) then
local LeftBadge = Style.LeftBadge(Active)
Graphics.Sprite(LeftBadge.BadgeDictionary or "commonmenu", LeftBadge.BadgeTexture or "",
CurrentMenu.X, CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.R or 255,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.G or 255,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.B or 255,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.A or 255)
end
end
if haveRightBadge then
if (Style.RightBadge ~= nil) then
local RightBadge = Style.RightBadge(Active)
Graphics.Sprite(RightBadge.BadgeDictionary or "commonmenu", RightBadge.BadgeTexture or "",
CurrentMenu.X + 385 + CurrentMenu.WidthOffset,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
RightBadge.BadgeColour and RightBadge.BadgeColour.R or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.G or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.B or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.A or 255)
end
end
if Style.RightLabel then
Graphics.Text(Style.RightLabel, CurrentMenu.X + 420 - RightBadgeOffset + CurrentMenu.WidthOffset,
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35,
Active and 0 or Style.RightLabelColor[1], Active and 0 or Style.RightLabelColor[2],
Active and 0 or Style.RightLabelColor[3], 255, 2)
end
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, Active and 0 or 245,
Active and 0 or 245, Active and 0 or 245, 255)
else
local RightBadge = RageUI.BadgeStyle.Lock(Active)
Graphics.Sprite(RightBadge.BadgeDictionary or "commonmenu", RightBadge.BadgeTexture or "",
CurrentMenu.X + 385 + CurrentMenu.WidthOffset,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
RightBadge.BadgeColour and RightBadge.BadgeColour.R or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.G or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.B or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.A or 255)
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 163, 159, 148, 255)
end
RageUI.ItemOffset = RageUI.ItemOffset + 38
if (Active) then
RageUI.ItemsDescription(Description);
if not (Style.IsDisabled) then
local Selected = (CurrentMenu.Controls.Select.Active)
if Actions ~= nil then
Actions(Selected, Active)
end
if Selected then
Audio.PlaySound(RageUI.Settings.Audio.Select.audioName, RageUI.Settings.Audio.Select.audioRef)
if Submenu and Submenu() then
RageUI.NextMenu = Submenu
end
end
end
end
end
RageUI.Options = RageUI.Options + 1
end
function Items:AddExtraSubtitle(Label, RightLabel, R, G, B, A)
if not RageUI.CurrentMenu then
return
end
local CurrentMenu = RageUI.CurrentMenu
RageUI.ItemsSafeZone(CurrentMenu)
if CurrentMenu.Subtitle ~= "" then
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y + RageUI.ItemOffset,
RageUI.Settings.Items.Subtitle.Background.Width + CurrentMenu.WidthOffset,
RageUI.Settings.Items.Subtitle.Background.Height + CurrentMenu.SubtitleHeight, R, G, B, A)
Graphics.Text(Label, CurrentMenu.X + RageUI.Settings.Items.Subtitle.Text.X,
CurrentMenu.Y + RageUI.Settings.Items.Subtitle.Text.Y + RageUI.ItemOffset, 0,
RageUI.Settings.Items.Subtitle.Text.Scale, 245, 245, 245, 255, nil, false, false,
RageUI.Settings.Items.Subtitle.Background.Width + CurrentMenu.WidthOffset)
if CurrentMenu.Index > CurrentMenu.Options or CurrentMenu.Index < 0 then
CurrentMenu.Index = 1
end
if (CurrentMenu ~= nil) then
if (CurrentMenu.Index > CurrentMenu.Pagination.Total) then
local offset = CurrentMenu.Index - CurrentMenu.Pagination.Total
CurrentMenu.Pagination.Minimum = 1 + offset
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total + offset
else
CurrentMenu.Pagination.Minimum = 1
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total
end
end
Graphics.Text(RightLabel, CurrentMenu.X + RageUI.Settings.Items.Subtitle.PreText.X + CurrentMenu.WidthOffset,
CurrentMenu.Y + RageUI.Settings.Items.Subtitle.PreText.Y + RageUI.ItemOffset, 0,
RageUI.Settings.Items.Subtitle.PreText.Scale, 245, 245, 245, 255, 2)
RageUI.ItemOffset = RageUI.ItemOffset + RageUI.Settings.Items.Subtitle.Background.Height
end
end
function Items:AddEmpty()
if not RageUI.CurrentMenu then
return
end
local CurrentMenu = RageUI.CurrentMenu
RageUI.ItemsSafeZone(CurrentMenu)
if CurrentMenu.Subtitle ~= "" then
if CurrentMenu.Index > CurrentMenu.Options or CurrentMenu.Index < 0 then
CurrentMenu.Index = 1
end
if (CurrentMenu ~= nil) then
if (CurrentMenu.Index > CurrentMenu.Pagination.Total) then
local offset = CurrentMenu.Index - CurrentMenu.Pagination.Total
CurrentMenu.Pagination.Minimum = 1 + offset
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total + offset
else
CurrentMenu.Pagination.Minimum = 1
CurrentMenu.Pagination.Maximum = CurrentMenu.Pagination.Total
end
end
end
end
function Items:AddWinnerLoser(Label, Winnings, Mugshot, Description, Style, Actions, Submenu)
if not RageUI.CurrentMenu then
return
end
local CurrentMenu = RageUI.CurrentMenu
local Option = RageUI.Options + 1
if CurrentMenu.Pagination.Minimum <= Option and CurrentMenu.Pagination.Maximum >= Option then
local Active = CurrentMenu.Index == Option
RageUI.ItemsSafeZone(CurrentMenu)
local haveLeftBadge = Style.LeftBadge and Style.LeftBadge ~= RageUI.BadgeStyle.None
local haveRightBadge = (Style.RightBadge and Style.RightBadge ~= RageUI.BadgeStyle.None)
local LeftBadgeOffset = haveLeftBadge and 27 or 0
local RightBadgeOffset = haveRightBadge and 32 or 0
if Style.Color and Style.Color.BackgroundColor then
Graphics.Rectangle(CurrentMenu.X, CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
431 + CurrentMenu.WidthOffset, 38, Style.Color.BackgroundColor[1], Style.Color.BackgroundColor[2],
Style.Color.BackgroundColor[3], Style.Color.BackgroundColor[4])
end
if not (Style.IsDisabled) then
if haveLeftBadge then
if (Style.LeftBadge ~= nil) then
local LeftBadge = Style.LeftBadge(Active)
Graphics.Sprite(LeftBadge.BadgeDictionary or "commonmenu", LeftBadge.BadgeTexture or "",
CurrentMenu.X, CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.R or 255,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.G or 255,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.B or 255,
LeftBadge.BadgeColour and LeftBadge.BadgeColour.A or 255)
end
end
if haveRightBadge then
if (Style.RightBadge ~= nil) then
local RightBadge = Style.RightBadge(Active)
Graphics.Sprite(RightBadge.BadgeDictionary or "commonmenu", RightBadge.BadgeTexture or "",
CurrentMenu.X + 385 + CurrentMenu.WidthOffset,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
RightBadge.BadgeColour and RightBadge.BadgeColour.R or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.G or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.B or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.A or 255)
end
end
if Style.RightLabel then
Graphics.Text(Style.RightLabel, CurrentMenu.X + 420 - RightBadgeOffset + CurrentMenu.WidthOffset,
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35,
Style.RightLabelColor[1], Style.RightLabelColor[2], Style.RightLabelColor[3],
Style.RightLabelColor[4], 2)
end
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset + 35,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 2, 0, 0.33,
Style.TextLabelColor[1], Style.TextLabelColor[2], Style.TextLabelColor[3], Style.TextLabelColor[4])
if Mugshot then
Graphics.Sprite(Mugshot, Mugshot, CurrentMenu.X,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 2, 37, 37, 0, 255, 255, 255,
255)
end
else
local RightBadge = RageUI.BadgeStyle.Lock(Active)
Graphics.Sprite(RightBadge.BadgeDictionary or "commonmenu", RightBadge.BadgeTexture or "",
CurrentMenu.X + 385 + CurrentMenu.WidthOffset,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
RightBadge.BadgeColour and RightBadge.BadgeColour.R or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.G or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.B or 255,
RightBadge.BadgeColour and RightBadge.BadgeColour.A or 255)
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 163, 159, 148, 255)
end
RageUI.ItemOffset = RageUI.ItemOffset + 38
if (Active) then
RageUI.ItemsDescription(Description);
if not (Style.IsDisabled) then
local Selected = (CurrentMenu.Controls.Select.Active)
if Actions ~= nil then
Actions(Selected, Active)
end
if Selected then
Audio.PlaySound(RageUI.Settings.Audio.Select.audioName, RageUI.Settings.Audio.Select.audioRef)
if Submenu and Submenu() then
RageUI.NextMenu = Submenu
end
end
end
end
end
RageUI.Options = RageUI.Options + 1
end
---CheckBox
---@param Label string
---@param Description string
---@param Checked boolean
---@param Style table
---@param Actions fun(onSelected:boolean, IsChecked:boolean)
function Items:CheckBox(Label, Description, Checked, Style, Actions)
local CurrentMenu = RageUI.CurrentMenu;
local Option = RageUI.Options + 1
if CurrentMenu.Pagination.Minimum <= Option and CurrentMenu.Pagination.Maximum >= Option then
local Active = CurrentMenu.Index == Option;
local Selected = false;
local LeftBadgeOffset = ((Style.LeftBadge == RageUI.BadgeStyle.None or Style.LeftBadge == nil) and 0 or 27)
local RightBadgeOffset = ((Style.RightBadge == RageUI.BadgeStyle.None or Style.RightBadge == nil) and 0 or 32)
local BoxOffset = 0
RageUI.ItemsSafeZone(CurrentMenu)
if (Active) then
Graphics.Sprite("commonmenu", "gradient_nav", CurrentMenu.X,
CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 431 + CurrentMenu.WidthOffset, 38)
end
if (Style.IsDisabled == nil) or not (Style.IsDisabled) then
if Active then
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 0, 0, 0, 255)
else
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 245, 245, 245, 255)
end
if Style.LeftBadge ~= nil then
if Style.LeftBadge ~= RageUI.BadgeStyle.None then
local BadgeData = Style.LeftBadge(Active)
Graphics.Sprite(BadgeData.BadgeDictionary or "commonmenu", BadgeData.BadgeTexture or "",
CurrentMenu.X, CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
BadgeData.BadgeColour and BadgeData.BadgeColour.R or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.G or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.B or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.A or 255)
end
end
if Style.RightBadge ~= nil then
if Style.RightBadge ~= RageUI.BadgeStyle.None then
local BadgeData = Style.RightBadge(Active)
Graphics.Sprite(BadgeData.BadgeDictionary or "commonmenu", BadgeData.BadgeTexture or "",
CurrentMenu.X + 385 + CurrentMenu.WidthOffset,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
BadgeData.BadgeColour and BadgeData.BadgeColour.R or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.G or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.B or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.A or 255)
end
end
else
local LeftBadge = RageUI.BadgeStyle.Lock
LeftBadgeOffset = ((LeftBadge == RageUI.BadgeStyle.None or LeftBadge == nil) and 0 or 27)
if Active then
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 0, 0, 0, 255)
else
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 163, 159, 148, 255)
end
if LeftBadge ~= RageUI.BadgeStyle.None and LeftBadge ~= nil then
local BadgeData = LeftBadge(Active)
Graphics.Sprite(BadgeData.BadgeDictionary or "commonmenu", BadgeData.BadgeTexture or "", CurrentMenu.X,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
BadgeData.BadgeColour.R or 255, BadgeData.BadgeColour.G or 255, BadgeData.BadgeColour.B or 255,
BadgeData.BadgeColour.A or 255)
end
end
if (Active) then
if Style.RightLabel ~= nil and Style.RightLabel ~= "" then
Graphics.Text(Style.RightLabel, CurrentMenu.X + 420 - RightBadgeOffset + CurrentMenu.WidthOffset,
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 0, 0, 0, 255, 2)
BoxOffset = MeasureStringWidth(Style.RightLabel, 0, 0.35)
end
else
if Style.RightLabel ~= nil and Style.RightLabel ~= "" then
Graphics.Text(Style.RightLabel, CurrentMenu.X + 420 - RightBadgeOffset + CurrentMenu.WidthOffset,
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 245, 245, 245, 255, 2)
BoxOffset = MeasureStringWidth(Style.RightLabel, 0, 0.35)
end
end
BoxOffset = RightBadgeOffset + BoxOffset
if Style.Style ~= nil then
if Style.Style == 1 then
StyleCheckBox(Active, Checked, 2, 4, BoxOffset)
elseif Style.Style == 2 then
StyleCheckBox(Active, Checked, 5, 6, BoxOffset)
else
StyleCheckBox(Active, Checked, 2, 4, BoxOffset)
end
else
StyleCheckBox(Active, Checked, 2, 4, BoxOffset)
end
if (Active) and (CurrentMenu.Controls.Select.Active) then
Selected = true;
Checked = not Checked
Audio.PlaySound(RageUI.Settings.Audio.Select.audioName, RageUI.Settings.Audio.Select.audioRef)
end
if (Active) then
Actions(Selected, Checked)
RageUI.ItemsDescription(Description)
end
RageUI.ItemOffset = RageUI.ItemOffset + 38
end
RageUI.Options = RageUI.Options + 1
end
---AddSeparator
---
--- Add separator
---
---@param Label string
---@public
---@return void
function Items:AddSeparator(Label, Color)
if not RageUI.CurrentMenu then
return
end
if not Color then
Color = {245, 245, 245, 150}
end
local CurrentMenu = RageUI.CurrentMenu
local Option = RageUI.Options + 1
if CurrentMenu.Pagination.Minimum <= Option and CurrentMenu.Pagination.Maximum >= Option then
local Active = CurrentMenu.Index == Option;
if (Label ~= nil) then
Graphics.Text(Label, CurrentMenu.X + 0 +
(CurrentMenu.WidthOffset * 2.5 ~= 0 and CurrentMenu.WidthOffset * 2.5 or 200),
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, Color[1], Color[2],
Color[3], Color[4], 1)
end
RageUI.ItemOffset = RageUI.ItemOffset + 38
if (Active) then
if (RageUI.LastControl) then
CurrentMenu.Index = Option - 1
if (CurrentMenu.Index < 1) then
CurrentMenu.Index = RageUI.CurrentMenu.Options
end
else
CurrentMenu.Index = Option + 1
end
RageUI.ItemsDescription(nil)
end
end
RageUI.Options = RageUI.Options + 1
end
---AddSeparator
---
--- Add separator
---
---@param Label string
---@public
---@return void
function Items:AddText(Label, yoffset)
if not RageUI.CurrentMenu then
return
end
local CurrentMenu = RageUI.CurrentMenu
local Option = RageUI.Options + 1
if CurrentMenu.Pagination.Minimum <= Option and CurrentMenu.Pagination.Maximum >= Option then
local Active = CurrentMenu.Index == Option;
if (Label ~= nil) then
local extraOffsetY = yoffset and yoffset or 0
Graphics.Text(Label, CurrentMenu.X + 0 +
(CurrentMenu.WidthOffset * 2.5 ~= 0 and CurrentMenu.WidthOffset * 2.5 or 10),
CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 7 + extraOffsetY, 0, 0.33, 245,
245, 245, 255, 0, false, false, 410)
end
local lineCount = Graphics.GetLineCount(Label, CurrentMenu.X + 0 +
(CurrentMenu.WidthOffset * 2.5 ~= 0 and CurrentMenu.WidthOffset * 2.5 or 10),
CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 245, 245, 245, 255, 0, false,
false, 410)
local totalTextHeight = 27 * lineCount
RageUI.ItemOffset = RageUI.ItemOffset + totalTextHeight
if (Active) then
if (RageUI.LastControl) then
CurrentMenu.Index = Option - 1
if (CurrentMenu.Index < 1) then
CurrentMenu.Index = RageUI.CurrentMenu.Options
end
else
CurrentMenu.Index = Option + 1
end
RageUI.ItemsDescription(nil)
end
end
RageUI.Options = RageUI.Options + 1
end
---AddList
---@param Label string
---@param Items table<any, any>
---@param Index number
---@param Style table<any, any>
---@param Description string
---@param Actions fun(Index:number, onSelected:boolean, onListChange:boolean))
---@param Submenu any
function Items:AddList(Label, Items, Index, Description, Style, Actions, Submenu)
if not RageUI.CurrentMenu then
return
end
local CurrentMenu = RageUI.CurrentMenu;
if not CurrentMenu then
return
end
local Option = RageUI.Options + 1
if CurrentMenu.Pagination.Minimum <= Option and CurrentMenu.Pagination.Maximum >= Option then
local Active = CurrentMenu.Index == Option;
local onListChange = false;
RageUI.ItemsSafeZone(CurrentMenu)
local LeftBadgeOffset = ((Style.LeftBadge == RageUI.BadgeStyle.None or Style.LeftBadge == nil) and 0 or 27)
local RightBadgeOffset = ((Style.RightBadge == RageUI.BadgeStyle.None or Style.RightBadge == nil) and 0 or 32)
local RightOffset = 0
local ListText = (type(Items[Index]) == "table") and string.format("← %s →", Items[Index].Name) or
string.format("← %s →", Items[Index]) or "NIL"
if (Active) then
Graphics.Sprite("commonmenu", "gradient_nav", CurrentMenu.X,
CurrentMenu.Y + 0 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 431 + CurrentMenu.WidthOffset, 38)
end
if (not Style.IsDisabled) then
if Active then
if Style.RightLabel ~= nil and Style.RightLabel ~= "" then
Graphics.Text(Style.RightLabel, CurrentMenu.X + 420 - RightBadgeOffset + CurrentMenu.WidthOffset,
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 0, 0, 0, 255, 2)
RightOffset = Graphics.MeasureStringWidth(Style.RightLabel, 0, 0.35)
end
else
if Style.RightLabel ~= nil and Style.RightLabel ~= "" then
RightOffset = Graphics.MeasureStringWidth(Style.RightLabel, 0, 0.35)
Graphics.Text(Style.RightLabel, CurrentMenu.X + 420 - RightBadgeOffset + CurrentMenu.WidthOffset,
CurrentMenu.Y + 4 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 245, 245, 245, 255,
2)
end
end
end
RightOffset = RightBadgeOffset * 1.3 + RightOffset
if (not Style.IsDisabled) then
if (Active) then
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 0, 0, 0, 255)
Graphics.Text(ListText, CurrentMenu.X + 403 + 15 + CurrentMenu.WidthOffset - RightOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 0, 0, 0, 255, 2)
else
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 245, 245, 245, 255)
Graphics.Text(ListText, CurrentMenu.X + 403 + 15 + CurrentMenu.WidthOffset - RightOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 245, 245, 245, 255, 2)
end
else
Graphics.Text(Label, CurrentMenu.X + 8 + LeftBadgeOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.33, 163, 159, 148, 255)
Graphics.Text(ListText, CurrentMenu.X + 403 + 15 + CurrentMenu.WidthOffset,
CurrentMenu.Y + 3 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0, 0.35, 163, 159, 148, 255, 2)
end
if type(Style) == "table" then
if Style.Enabled == true or Style.Enabled == nil then
if type(Style) == 'table' then
if Style.LeftBadge ~= nil then
if Style.LeftBadge ~= RageUI.BadgeStyle.None then
local BadgeData = Style.LeftBadge(Active)
Graphics.Sprite(BadgeData.BadgeDictionary or "commonmenu", BadgeData.BadgeTexture or "",
CurrentMenu.X, CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40,
40, 0, BadgeData.BadgeColour and BadgeData.BadgeColour.R or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.G or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.B or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.A or 255)
end
end
if Style.RightBadge ~= nil then
if Style.RightBadge ~= RageUI.BadgeStyle.None then
local BadgeData = Style.RightBadge(Active)
Graphics.Sprite(BadgeData.BadgeDictionary or "commonmenu", BadgeData.BadgeTexture or "",
CurrentMenu.X + 385 + CurrentMenu.WidthOffset,
CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
BadgeData.BadgeColour and BadgeData.BadgeColour.R or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.G or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.B or 255,
BadgeData.BadgeColour and BadgeData.BadgeColour.A or 255)
end
end
end
else
local LeftBadge = RageUI.BadgeStyle.Lock
if LeftBadge ~= RageUI.BadgeStyle.None and LeftBadge ~= nil then
local BadgeData = LeftBadge(Active)
Graphics.Sprite(BadgeData.BadgeDictionary or "commonmenu", BadgeData.BadgeTexture or "",
CurrentMenu.X, CurrentMenu.Y + -2 + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 40, 40, 0,
BadgeData.BadgeColour.R or 255, BadgeData.BadgeColour.G or 255, BadgeData.BadgeColour.B or 255,
BadgeData.BadgeColour.A or 255)
end
end
else
error("UICheckBox Style is not a `table`")
end
RageUI.ItemOffset = RageUI.ItemOffset + 38
if (Active) then
RageUI.ItemsDescription(Description);
if (not Style.IsDisabled) then
if (CurrentMenu.Controls.Left.Active) and not (CurrentMenu.Controls.Right.Active) then
Index = Index - 1
if Index < 1 then
Index = #Items
end
onListChange = true
Audio.PlaySound(RageUI.Settings.Audio.LeftRight.audioName, RageUI.Settings.Audio.LeftRight.audioRef)
elseif (CurrentMenu.Controls.Right.Active) and not (CurrentMenu.Controls.Left.Active) then
Index = Index + 1
if Index > #Items then
Index = 1
end
onListChange = true
Audio.PlaySound(RageUI.Settings.Audio.LeftRight.audioName, RageUI.Settings.Audio.LeftRight.audioRef)
end
local Selected = (CurrentMenu.Controls.Select.Active)
Actions(Index, Selected, onListChange, Active)
if (Selected) then
Audio.PlaySound(RageUI.Settings.Audio.Select.audioName, RageUI.Settings.Audio.Select.audioRef)
if Submenu ~= nil and type(Submenu) == "table" then
RageUI.NextMenu = Submenu[Index]
end
end
end
end
end
RageUI.Options = RageUI.Options + 1
end
---Heritage
---@param Mum number
---@param Dad number
function Items:Heritage(Mum, Dad)
local CurrentMenu = RageUI.CurrentMenu;
if Mum < 0 or Mum > 21 then
Mum = 0
end
if Dad < 0 or Dad > 23 then
Dad = 0
end
if Mum == 21 then
Mum = "special_female_" .. (tonumber(string.sub(Mum, 2, 2)) - 1)
else
Mum = "female_" .. Mum
end
if Dad >= 21 then
Dad = "special_male_" .. (tonumber(string.sub(Dad, 2, 2)) - 1)
else
Dad = "male_" .. Dad
end
Graphics.Sprite("pause_menu_pages_char_mom_dad", "mumdadbg", CurrentMenu.X,
CurrentMenu.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 431 + (CurrentMenu.WidthOffset / 1), 228)
Graphics.Sprite("char_creator_portraits", Dad, CurrentMenu.X + 195 + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 228, 228)
Graphics.Sprite("char_creator_portraits", Mum, CurrentMenu.X + 25 + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 228, 228)
RageUI.ItemOffset = RageUI.ItemOffset + 228
end
@@ -1,225 +0,0 @@
---
--- @author Dylan MALANDAIN, Kalyptus
--- @version 1.0.0
--- created at [24/05/2021 10:02]
---
---@class Panels
Panels = {};
local GridType = {
Default = 1,
Horizontal = 2,
Vertical = 3
}
local GridSprite = {
[GridType.Default] = {
Dictionary = "pause_menu_pages_char_mom_dad",
Texture = "nose_grid"
},
[GridType.Horizontal] = {
Dictionary = "RageUI_",
Texture = "horizontal_grid"
},
[GridType.Vertical] = {
Dictionary = "RageUI_",
Texture = "vertical_grid"
}
}
local Grid = {
Background = {
Dictionary = "commonmenu",
Texture = "gradient_bgd",
Y = 4,
Width = 431,
Height = 275
},
Grid = {
X = 115.5,
Y = 47.5,
Width = 200,
Height = 200
},
Circle = {
Dictionary = "mpinventory",
Texture = "in_world_circle",
X = 115.5,
Y = 47.5,
Width = 20,
Height = 20
},
Text = {
Top = {
X = 215.5,
Y = 15,
Scale = 0.35
},
Bottom = {
X = 215.5,
Y = 250,
Scale = 0.35
},
Left = {
X = 57.75,
Y = 130,
Scale = 0.35
},
Right = {
X = 373.25,
Y = 130,
Scale = 0.35
}
}
}
local function UIGridPanel(Type, StartedX, StartedY, TopText, BottomText, LeftText, RightText, Action, Index)
local CurrentMenu = RageUI.CurrentMenu
if (CurrentMenu.Index == Index) then
local X = Type == GridType.Default and StartedX or Type == GridType.Horizontal and StartedX or Type ==
GridType.Vertical and 0.5
local Y = Type == GridType.Default and StartedY or Type == GridType.Horizontal and 0.5 or Type ==
GridType.Vertical and StartedY
local Hovered = Graphics.IsMouseInBounds(CurrentMenu.X + Grid.Grid.X + CurrentMenu.SafeZoneSize.X + 20,
CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SafeZoneSize.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset +
20, Grid.Grid.Width + CurrentMenu.WidthOffset - 40, Grid.Grid.Height - 40)
local Selected = false
local CircleX = CurrentMenu.X + Grid.Grid.X + (CurrentMenu.WidthOffset / 2) + 20
local CircleY = CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 20
if X < 0.0 or X > 1.0 then
X = 0.0
end
if Y < 0.0 or Y > 1.0 then
Y = 0.0
end
CircleX = CircleX + ((Grid.Grid.Width - 40) * X) - (Grid.Circle.Width / 2)
CircleY = CircleY + ((Grid.Grid.Height - 40) * Y) - (Grid.Circle.Height / 2)
Graphics.Sprite("commonmenu", "gradient_bgd", CurrentMenu.X,
CurrentMenu.Y + Grid.Background.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset,
Grid.Background.Width + CurrentMenu.WidthOffset, Grid.Background.Height)
Graphics.Sprite(GridSprite[Type].Dictionary, GridSprite[Type].Texture,
CurrentMenu.X + Grid.Grid.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, Grid.Grid.Width,
Grid.Grid.Height)
Graphics.Sprite(Grid.Circle.Dictionary, Grid.Circle.Texture, CircleX, CircleY, Grid.Circle.Width,
Grid.Circle.Height)
if (Type == GridType.Default) then
Graphics.Text(TopText or "", CurrentMenu.X + Grid.Text.Top.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Top.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Top.Scale, 245, 245, 245, 255, 1)
Graphics.Text(BottomText or "", CurrentMenu.X + Grid.Text.Bottom.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Bottom.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Bottom.Scale, 245, 245, 245, 255, 1)
Graphics.Text(LeftText or "", CurrentMenu.X + Grid.Text.Left.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Left.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Left.Scale, 245, 245, 245, 255, 1)
Graphics.Text(RightText or "", CurrentMenu.X + Grid.Text.Right.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Right.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Right.Scale, 245, 245, 245, 255, 1)
end
if (Type == GridType.Vertical) then
Graphics.Text(TopText or "", CurrentMenu.X + Grid.Text.Top.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Top.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Top.Scale, 245, 245, 245, 255, 1)
Graphics.Text(BottomText or "", CurrentMenu.X + Grid.Text.Bottom.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Bottom.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Bottom.Scale, 245, 245, 245, 255, 1)
end
if (Type == GridType.Horizontal) then
Graphics.Text(LeftText or "", CurrentMenu.X + Grid.Text.Left.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Left.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Left.Scale, 245, 245, 245, 255, 1)
Graphics.Text(RightText or "", CurrentMenu.X + Grid.Text.Right.X + (CurrentMenu.WidthOffset / 2),
CurrentMenu.Y + Grid.Text.Right.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset, 0,
Grid.Text.Right.Scale, 245, 245, 245, 255, 1)
end
if Hovered then
if IsDisabledControlPressed(0, 24) then
Selected = true
CircleX = math.round(GetControlNormal(2, 239) * 1920) - CurrentMenu.SafeZoneSize.X -
(Grid.Circle.Width / 2)
CircleY = math.round(GetControlNormal(2, 240) * 1080) - CurrentMenu.SafeZoneSize.Y -
(Grid.Circle.Height / 2)
if CircleX > (CurrentMenu.X + Grid.Grid.X + (CurrentMenu.WidthOffset / 2) + 20 + Grid.Grid.Width - 40) then
CircleX = CurrentMenu.X + Grid.Grid.X + (CurrentMenu.WidthOffset / 2) + 20 + Grid.Grid.Width - 40
elseif CircleX < (CurrentMenu.X + Grid.Grid.X + 20 - (Grid.Circle.Width / 2)) then
CircleX = CurrentMenu.X + Grid.Grid.X + 20 - (Grid.Circle.Width / 2)
end
if CircleY >
(CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 20 +
Grid.Grid.Height - 40) then
CircleY = CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 20 +
Grid.Grid.Height - 40
elseif CircleY <
(CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 20 -
(Grid.Circle.Height / 2)) then
CircleY = CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 20 -
(Grid.Circle.Height / 2)
end
X = math.round((CircleX - (CurrentMenu.X + Grid.Grid.X + (CurrentMenu.WidthOffset / 2) + 20) +
(Grid.Circle.Width / 2)) / (Grid.Grid.Width - 40), 2)
Y = math.round((CircleY -
(CurrentMenu.Y + Grid.Grid.Y + CurrentMenu.SubtitleHeight + RageUI.ItemOffset + 20) +
(Grid.Circle.Height / 2)) / (Grid.Grid.Height - 40), 2)
if (X ~= StartedX) and (Y ~= StartedY) then
Action(X, Y, (X * 2 - 1), (Y * 2 - 1))
-- Action.onPositionChange(X, Y, (X * 2 - 1), (Y * 2 - 1))
end
StartedX = X;
StartedY = Y;
if X > 1.0 then
X = 1.0
end
if Y > 1.0 then
Y = 1.0
end
end
end
RageUI.ItemOffset = RageUI.ItemOffset + Grid.Background.Height + Grid.Background.Y
if Hovered and Selected then
Audio.PlaySound(RageUI.Settings.Audio.Slider.audioName, RageUI.Settings.Audio.Slider.audioRef, true)
-- if (Action.onSelected ~= nil) then
-- Action.onSelected(X, Y, (X * 2 - 1), (Y * 2 - 1));
-- end
end
end
end
---Grid
---@param StartedX number
---@param StartedY number
---@param TopText string
---@param BottomText string
---@param LeftText string
---@param RightText string
---@param Action fun(X:number, Y:number, CharacterX:number, CharacterY:number)
---@param Index number
---@public
---@return void
function Panels:Grid(StartedX, StartedY, TopText, BottomText, LeftText, RightText, Action, Index)
UIGridPanel(GridType.Default, StartedX, StartedY, TopText, BottomText, LeftText, RightText, Action, Index)
end
---GridHorizontal
---@param StartedX number
---@param LeftText string
---@param RightText string
---@param Action fun(X:number, Y:number, CharacterX:number, CharacterY:number)
---@param Index number
---@public
---@return void
function Panels:GridHorizontal(StartedX, LeftText, RightText, Action, Index)
UIGridPanel(GridType.Horizontal, StartedX, nil, nil, nil, LeftText, RightText, Action, Index)
end
---GridVertical
---@param StartedY number
---@param TopText string
---@param BottomText string
---@param Action fun(X:number, Y:number, CharacterX:number, CharacterY:number)
---@param Index number
---@public
---@return void
function Panels:GridVertical(StartedY, TopText, BottomText, Action, Index)
UIGridPanel(GridType.Vertical, nil, StartedY, TopText, BottomText, nil, nil, Action, Index)
end
@@ -1,389 +0,0 @@
Config = {
-- Locale
Locale = "ro", -- en
-- Map
ActiveMaps = {5}, -- list of enabled map types (see below for types)
ActiveMapAutoDetect = true, -- automatically detect and enable map types based on running resources
-- 1: UncleJust Casino / DlcIplLoader
-- 2: Gabz Casino
-- 3: NoPixel Casino
-- 4: k4mb1 casino
-- 5: GTA:O Interior (rcore_casino_interior)
-- 6: Underground Casino PALETO
-- 7: K4MB1 old enterable casino (casinointerior & casinoexterior)
-- 8: patoche_casino
-- 9: Clawles: Casino Los Santos
-- 10: Molo Casino
-- 11: Jurassic Jackpot Casino
-- 12: Energy Atlantis Casino
-- 13: HG Designs: The Town Resort & Casino
-- 14: TStudio: Pearls Casino
-- make sure rcore_casino_interior is disabled when using another map type, and don't forget to remove rcore_casino_interior from dependencies in fxmanifest.lua as well
--[[
Gabz Casino
• copy "\extra\gabz-casino\gabz_vw_vwdlc_int_01.ytyp" to "cfx-gabz-casino\stream\ytyp\"
NoPixel Casino
• delete \stream\Main\ydr\vw_prop_vw_luckywheel_01a.ydr in NoPixel Casino
• copy "\extra\nopixel\gbz_vw_vwdlc_int_01.ytyp" inside stream\Main\ytyp in NoPixel Casino
• copy "\extra\nopixel\vw_vwint01_betting_desks.ydr" inside stream\Main\ydr in NoPixel Casino
K4MB1 old enterable casino
• copy "brown_casinoextended.ytyp" to "casinointerior\stream\base k4mb1-old-casino"
]]
-- Xmas trees
-- • configurable in xmas\xmas_cl.lua and xmas\xmas_sv.lua
Xmas = false,
-- Target
UseTarget = true, -- whether to use target zones or not
TargetZoneType = 3, -- 1: q_target, 2: bt_target, 3: qb-target, 4: ox_target
-- Chips, Inventory Settings
UseVirtualChips = false, -- false: use inventory for chips, true: use virtual chips which are saved in the casino_players table
InventoryResource = Inventory.QS, -- name of the inventory resource, set to Inventory.Framework if you want to use frameworks' inventory functions
--[[
choose InventoryResource = Inventory.AutoChoose for auto choose, or choose between:
Inventory.Framework for built in inventory functions
Inventory.OX for ox_inventory
Inventory.LJ for lj_inventory
Inventory.MF for mf_inventory
Inventory.PS for ps_inventory
Inventory.QS for qs-inventory
Inventory.CodeM for codem-inventory
]]
MoneyInventoryItemName = nil, -- name of the money inventory item, set to nil, if you don't want to use inventory item as the money
UseOnlyMoney = false, -- set to true if you want to play with money only, without casino chips
ExchangeRate = 1, -- set value of one casino chip, for example, set to 5, if 1 chip equals to 5$ (minimum: 0.1, rounded by 0.1, 0.5 or 1)
ChipsInventoryItem = "casino_chips",
UseBankMoney = false, -- cash or bank?
DailyWidthdrawLimit = 0, -- how much money can player withdraw from the cashier per day (24 hours), set to 0 to disable
-- Behave in casino?
RestrictControls = true, -- don't jump, don't attack inside the Casino
-- Bar
BarShowSnacks = true, -- disable, if you want to see only drinks in the bartender menu
-- Inside Track
IT_STARTING_SOON_TIME = 0, -- *starting soon screen* duration; def: 0
IT_MAIN_EVENT_MIN_PLAYERS = 1, -- min. players needed for the main event to start; def: 2
IT_MAIN_EVENT_ENABLED = true, -- when false, the main event will be disabled, big screen will show only purple idle screen; def: true
IT_MAIN_EVENT_BETTING_TIME = 60 * 5, -- time for players to place bets for main event, shows horses on screen; def: 60 * 5 (5 minutes)
IT_MAIN_EVENT_RACE_DURATION = 33, -- length of the main event race; def: 33
IT_MAIN_EVENT_HORSE_ODDS = {2, 5, 6, 15, 16, 30}, -- limit max horse odds for local game (1 to 30), def: {1, 5, 6, 15, 16, 30} (2 horses of odds from 1 to 5, 2 horses of odds from 6 to 15, 2 horses of odds from 16 to 30)
IT_MAIN_EVENT_RACE_MAX_BET = 10000, -- max. bet for the main event race
IT_MAIN_EVENT_RACE_MIN_BET = 10, -- min. bet for the main event race
IT_LOCAL_RACE_DURATION = 30, -- length of the local race (orange screen) def: 30
IT_LOCAL_RACE_HORSE_ODDS = {2, 5, 6, 15, 16, 30}, -- limit max horse odds for local game (1 to 30), def: {1, 5, 6, 15, 16, 30} (2 horses of odds from 1 to 5, 2 horses of odds from 6 to 15, 2 horses of odds from 16 to 30)
IT_LOCAL_RACE_MAX_BET = 10000, -- max. bet for the local race
IT_LOCAL_RACE_MIN_BET = 10, -- min. bet for the local race
IT_LOCAL_RACE_COOLDOWN = 0, -- how long until they can play another local game, in seconds, (def: 60 * 10)
IT_MAIN_EVENT_COOLDOWN = 0, -- how long until they can play another main event game, in seconds, (def: 60 * 10)
-- Win chance of horses are based on their odds, however, if you want to make the game more unlucky, lower the win chance:
IT_LOCAL_RACE_WIN_CHANCE = 50, -- win chance (from 0 to 100), def: 100, 100 means that it's not *unlucky* at all
IT_MAIN_EVENT_RACE_WIN_CHANCE = 50, -- win chance (from 0 to 100), def: 100, 100 means that it's not *unlucky* at all
-- Roulette
ROULETTE_JUNIOR_ENABLED = true, -- set if you want to have Roulette Junior (blue) table for newbies (low stakes)
ROULETTE_JUNIOR_COORDS = {1004.790, 57.295, 68.432},
-- Slots
SLOTS_1ST_PERSON = true, -- switch to 1st person when spinning slots
-- Lucky Wheel
LUCKY_WHEEL_ENABLED = true, -- set to false, if you don't want to use Lucky Wheel
LUCKY_WHEEL_FREE_DRINKS_FOR = (60 * 60 * 24), -- when someone spins "Free Drinks" at the Lucky Wheel, how long they get free drinks for. def: 24 hours (60 * 60 * 24)
LUCKY_WHEEL_COOLDOWN = (60 * 60 * 24), -- how long players have to wait for their next spin. def: 24 hours (60 * 60 * 24)
LUCKY_WHEEL_VEHICLE_ALTERNATIVE = "Money9", -- if player spins Vehicle, but there is no avaiable podium vehicle at the moment, spin to this item. Def: "Money50K" (the second biggest price)
LUCKY_WHEEL_CAR_WINABLE = true, -- true: players can win the car, false: car is just a decoration
LUCKY_WHEEL_PAY_TO_SPIN = 0, -- set price for the spin (chips), set 0 for free spins, or set to existing inventory name, for example LUCKY_WHEEL_PAY_TO_SPIN = "wheel_ticket" to pay with an inventory item
LUCKY_WHEEL_CAR_ONE_WINNER = true, -- set to true, if only one player can win the podium vehicle. the vehicle will disapear from the podium after someone wins it.
-- Blackjack
BLACKJACK_JUNIOR_ENABLED = true, -- set if you want to have Blackjack Junior (blue) table for newbies (low stakes)
BLACKJACK_JUNIOR_COORDS = {1004.183, 53.192, 68.432},
-- Poker
POKER_JUNIOR_ENABLED = true, -- set if you want to have Poker Junior (blue) table for newbies (low stakes)
POKER_JUNIOR_COORDS = {998.439, 61.031, 68.432},
-- Cashier
CASHIER_DAILY_BONUS = 1000, -- daily visitor bonus that players can request at the Cashier, set to 0 if you don't want any daily bonuses. def: 1000
CASHIER_VIP_PRICE = 50000, -- price of the VIP casino membership, def: 50000
CASHIER_VIP_DURATION = (60 * 60 * 24) * 7, -- VIP for player resets after this time, def: 7 days
CASHIER_SHOW_SOCIETY_BALANCE = false, -- whether to show avaiable society balance in cashier UI
-- Casino Settings (don't change unless you're told to :)
CAS_DOUBLECHECK_COORDS = vector3(984.528, 52.299, 70.238),
CASINO_ENABLE_AMBIENT_PEDS = true, -- standing peds
CASINO_ENABLE_AMBIENT_PEDS_SLOTS = false, -- peds playing slots
CASINO_ENABLE_AMBIENT_PEDS_POKER = false, -- peds playing poker
CASINO_ENABLE_AMBIENT_PEDS_BLACKJACK = false, -- peds playing blackjack
CASINO_ENABLE_AMBIENT_PEDS_ROULETTE = false, -- peds playing roulette
CASINO_AMBIENT_PEDS_DENSITY = 2, -- 1: a few, 2: medium, 3: all peds
CASINO_SAVE_TIMER = 30000, -- database update interval
DISABLE_IDLE_CAM = true, -- disable idle cam animations (looking around)
CASINO_ANIM_TIMEOUT = 750, -- pause between animations (in milliseconds), decrease this number to make interaction animations faster, be careful, smaller number can cause desync in animations if players have high ping. def: 750
PRICES_CURRENCY = "$", -- $, €, £, ¥, ₽, ₩, ₹ ...
RADAR_ZOOMLEVEL = 0.0, -- customize the radar zoom, from 0.0 (closest) to higher
ENTER_CASINO_FADEOUT = 2, -- whether to fadeout the screen when entering (loading) casino or not (0: disabled, 1: only first enter, 2: every time)
CASHIER_MULTITASK = true, -- multiple players can use the Cashier at the same time
LOAD_SCENE = true, -- load the whole casino playing area after entering (recommended)
CLEAR_OBJECTS_ON_ENTER = false, -- destroy all locally created peds/objects after entering the casino, to save up space, set to false
--
JOB_PODIUMCAR_OWNERSHIP_CHECK = true,
JOB_PODIUMCAR_OWNERSHIP_DELETE_ORIGINAL = true,
JOB_PODIUMCAR_DELETE_ORIGINAL_FUNCTION_CLIENT = function(vehicleId, plateNumber) -- client function that the car dealer executes after delivering the car
SetEntityAsMissionEntity(vehicleId, true, true)
DeleteVehicle(vehicleId)
end,
CASINO_BLIPS_SHORT_RANGE = true, -- true: blips are visible only to players near casino, false: blips are always visible
CASINO_BLIP_ID = 679, -- 679 is the diamond icon [https://docs.fivem.net/docs/game-references/blips/]
--
AMBIENT_SOUNDS = true, -- enable casino background interior sound
Debug = false,
-- if there are some errors this will help to indicate from what it is comming from. Such as CreateThread/Event/Etc.
ErrorDebug = false,
-- Plate Settings
PlateLetters = 3,
PlateNumbers = 3,
PlateUseSpace = true,
-- Drinking
DrunkSystem = 1,
-- 1 = auto-detect / built-in, resets drunk level after leaving casino
-- 2 = esx_status
-- 3 = evidence:client:SetStatus
-- 4 = rcore_drunk -- https://store.rcore.cz/package/5161129
-- Other Resources
EnableGuidebookIntegration = false, -- https://store.rcore.cz/package/5041989
-- Society
-- ⚠️ In order to make society work, please follow these instructions: https://documentation.rcore.cz/paid-resources/rcore_casino/society
EnableSociety = false, -- whether to enable society account
SocietyAutoInstall = true, -- auto install society account if it doesn't exist
SocietyName = "society_casino",
SocietyLimitFromBalance = 10000, -- if society account has less money than this, it will start paying out reduced money, (SocietyLimitPayoutPercentage)
SocietyLimitPayoutPercentage = 35, -- example: if SocietyLimitPayoutPercentage is 35%, and SocietyLimitFromBalance is 10000 => 1000 payout at the Cashier will be limited to 350, if the society bank account balance is less than 10 000
-- when enabled, all casino payments (Cashier, Bar, Lucky Wheel) go through the society account, players don't get paid if there's not enough money in the
SocietyFramework = Society.AutoChoose,
--[[
set Society.AutoChoose for auto choose, or choose between:
Society.QbBanking
Society.QbBossMenu
Society.QbManagement
Society.RenewedBanking
Society.OkokBanking
Society.Management710
Society.FdBanking
Society.EsxAddonAccount
Society.SnipeBanking
]]
-- visit /server/main/society.lua for custom society frameworks
-- Notifications
NotifySystem = 4,
--[[
1: default GTAV style notifications
2: okokNotify
3: esx_notify
4: qb_notify,
5: ox_notify
6: origen help notify
]]
-- Job
BossGrade = 2, -- the max grade (boss) for the casino job
BossName = "boss",
JobName = "casino", -- id of the job (not a title, I guess, don't change it)
-- Teleport In & Out
LeaveThroughTeleport = false, -- if enabled, people won't be able to leave the casino building, instead, they get prompted once they come near the entrance (useful if your map is too far from Los Santos)
EnterPosition = vector3(2469.584473, -280.015869, -58.267620),
EnterCheckpointPosition = vector3(923.470093, 47.249229, 79.8), -- custom marker for entering the casino, for example, in front of your custom Casino building in a different city, etc.
LeavePosition = vector3(919.127380, 51.120274, 80.898659), -- where the player appears *after leaving*, for example, in front of your custom Casino building in a different city, etc.
LeaveArea = vector3(2468.992188, -287.276459, -58.267506), -- where the player is prompted to leave the casino, for example, in front of the main doors,
-- Ui
UIFontName = nil, -- font for the UI, set to nil, if you don't want to use a custom font, set to a font name (with ""), if you wanna register and use a font that's inside your /stream/fonts folder
ShowHowToPlayUI = 1, -- How to play/Info about the game UI (Menu that shows after pressing 'E' to play. (0: disabled, 1: only once, 2: every time after pressing 'E')
ShowChipsHud = false, -- whether to use the built-in chips hud on the top-right corner
UseNUIHUD = false, -- whether to use chips hud on NUI (you can customize it in 'html/index.html')
-- Database
MongoDB = false, -- if you decide to use MongoDB instead of MYSQL, don't forget to edit your MongoDB queries in: server/main/cache.lua, server/main/casino.lua and server/utils/plateGenerator.lua
-- Mysql Resources
Ghmattimysql = false, -- if you're using "ghmattimysql" instead of mysql-async
-- Tweaks
VoiceTweak = false, -- keep it false, if you don't have amy voice problems inside casino
VehicleRGBTweak = false, -- save podium vehicle colors as RGB array (color1, color2), instead of numbers
-- Enable rcore_stats? (https://store.rcore.cz/package/6273968)
Rcore_Stats = GetResourceState("rcore_stats") ~= "missing",
ForceNormalKeyLabels = true, -- whether to replace blip icon codes (~INPUT_TALK~) with text ([E], [F], [G], etc.)
TargetUsePeds = false, -- use peds instead of zones for target zones, set to false, if you want to use zones
}
Framework = {
-- ⚠️ For Standalone version docs visit https://documentation.rcore.cz/paid-resources/rcore_casino/standalone-version
-- ⚠️ For Custom framework version docs visit https://documentation.rcore.cz/paid-resources/rcore_casino/custom-framework
Active = 5, -- Choose 1 for ESX, 2 for QBCore, 3 for Standalone, 4 for Custom, 5 for auto detect
-- Please follow the installation tutorial: --
-- https://documentation.rcore.cz/paid-resources/rcore_casino
-- esx resource name + shared object name
ES_EXTENDED_RESOURCE_NAME = "es_extended",
ESX_SHARED_OBJECT = "esx:getSharedObject",
-- esx extra settings
BUILTIN_HUD_CHIPS = false,
BUILTIN_HUD_CHIPS_ICON = "casinochip.png",
-- qbcore resource name + shared object name
QB_CORE_RESOURCE_NAME = "qb-core",
QBCORE_SHARED_OBJECT = "QBCore:GetObject",
-- standalone settings
STANDALONE_INITIAL_CHIPS = 100000 -- chips that everyone gets after first enter
}
if Framework.Active == 2 then
Config.PlateLetters = 4
Config.PlateNumbers = 4
Config.PlateUseSpace = false
end
Events = {
QB_PLAYER_LOADED = "QBCore:Client:OnPlayerLoaded",
QB_PLAYER_JOB_UPDATE = "QBCore:Client:OnJobUpdate",
QB_BOSS_MENU = "qb-bossmenu:client:OpenMenu",
-- use "qb-bossmenu:client:OpenMenu" for qb-management and "qb-bossmenu:client:openMenu" for qb-bossmenu
ES_PLAYER_LOADED = "esx:playerLoaded",
ES_PLAYER_JOB_UPDATE = "esx:setJob",
ES_BOSS_MENU = "esx_society:openBossMenu"
}
GameplayKeys = {
TableGamesMaxBet = 44, -- Choose between: (Tab = 204, E = 46, Q = 44, D = 134, Page Down = 207)
TableGamesGrabCards = 207,
RouletteHistoryKey = 204
}
AdminGroup = {
["god"] = true,
["admin"] = true,
["mod"] = true,
["moderator"] = true
}
-- Enable / Disable individual games/activities
GameStates = {{
activity = "slots",
title = "Slot Machines",
enabled = true
}, {
activity = "luckywheel",
title = "Lucky Wheel",
enabled = true
}, {
activity = "insidetrack",
title = "Inside Track",
enabled = true
}, {
activity = "drinkingbar",
title = "Drinking Bar",
enabled = true
}, {
activity = "roulette",
title = "Roulette",
enabled = true
}, {
activity = "poker",
title = "Poker",
enabled = true
}, {
activity = "blackjack",
title = "Blackjack",
enabled = true
}, {
activity = "cashier",
title = "Cashier",
enabled = true
}, {
activity = "seating",
title = "Seating",
enabled = true
}, {
activity = "cameras",
title = "Cameras",
enabled = true
}, {
activity = "casinoteleporter",
title = "Casino Teleporter (In)",
enabled = true
}, {
activity = "casinoentrance",
title = "Casino Entrance",
enabled = true
}}
-- opening hours
-- examples:
-- [1] = {0, 1, 2, 3, 4, 5, 6} -- From 0:00 til 6 AM
-- [1] = {-1} -- Open all day
Config.OpeningHours = {
[1] = {-1}, -- Sunday
[2] = {-1}, -- Monday
[3] = {-1}, -- Tuesday
[4] = {-1}, -- Wednesday
[5] = {-1}, -- Thursday
[6] = {-1}, -- Friday
[7] = {-1} -- Saturday
}
Config.ServerTimezoneOffsetHours = 0 -- Adjusts the server time based on the timezone difference
-- customize the blip function here
-- used blip icon ids:
-- Inside Track: 684, Lucky Wheel: 681, Cashier: 683, Table Games: 680, VIP Area / Exterior Icon: 679,
-- [https://docs.fivem.net/docs/game-references/blips/]
function SetCasinoBlip(coords, blipIcon, blipName, exterior)
local blip = -1
if type(coords) == "vector3" or type(coords) == "vector2" then
blip = AddBlipForCoord(coords.x, coords.y, coords.z)
elseif type(coords) == "number" and DoesEntityExist(coords) then
blip = AddBlipForEntity(coords)
end
--------------
SetBlipSprite(blip, blipIcon)
SetBlipDisplay(blip, 4)
SetBlipScale(blip, 0.6)
SetBlipColour(blip, 0)
SetBlipAsShortRange(blip, exterior and Config.CASINO_BLIPS_SHORT_RANGE or false)
--------------
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(blipName)
EndTextCommandSetBlipName(blip)
if not exterior then
table.insert(CasinoBlips, blip)
end
return blip
end
function RemoveMissionBlip(name)
if MissionBlips[name] then
RemoveBlip(MissionBlips[name])
MissionBlips[name] = nil
end
end
@@ -1,6 +0,0 @@
ServerConfig = {
Discord = false, -- whether to enable Discord notifications (check config_server.lua)
DiscordInterval = 60000 * 15, -- 15 mins
HookUrl = "https://discord.com/api/webhooks/???!",
LogTransactions = false, -- log all transactions to transactions.log file, also print in server console
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,147 +0,0 @@
fx_version 'adamant'
games { 'gta5' }
dependencies {
'/server:4752',
'/onesync',
'/gameBuild:2060',
'rcore_casino_assets',
-- 'rcore_casino_interior'
}
version '1.9.1'
client_scripts {
'@ox_lib/init.lua', -- for ox_notify
-- Rage UI
'client/ui/RageUI.lua',
'client/ui/Menu.lua',
'client/ui/MenuController.lua',
'client/ui/components/*.lua',
'client/ui/elements/*.lua',
'client/ui/items/*.lua',
"const.lua",
"config.lua",
"loader.lua",
"locales/*.lua",
"reporter.lua",
"client/framework/*.lua",
"coords.lua",
"client/main/utils.lua",
"client/main/target.lua",
"client/main/casino.lua",
"client/main/stats.lua",
"client/interior/announcer.lua",
"client/interior/cashier.lua",
"client/interior/seat.lua",
"client/games/slots.lua",
"client/interior/pricespinner.lua",
"client/games/insidetrack.lua",
"client/games/luckywheel.lua",
"client/interior/drinkingbar.lua",
"client/interior/peds.lua",
"client/main/sceneped.lua",
"client/ui/TimerBar.lua",
"client/main/mugshot.lua",
"client/main/casinocontrol.lua",
"client/games/roulette.lua",
"client/games/poker.lua",
"client/games/blackjack.lua",
"client/interior/clothing.lua",
"client/interior/office.lua",
"client/interior/doorsystem.lua",
'client/ui/MenuHandler.lua',
"client/utils/*.lua",
"client/job/*.lua",
"client/games/missions.lua",
"xmas/xmas_cl.lua",
}
server_scripts {
"@mysql-async/lib/MySQL.lua",
"const.lua",
"config.lua",
"loader.lua",
"locales/*.lua",
"config_server.lua",
"reporter.lua",
"server/framework/*.lua",
"server/games/slots.lua",
"server/games/insidetrack.lua",
"server/main/society.lua",
"server/main/inventory.lua",
"server/main/casino.lua",
"server/main/stats.lua",
"server/main/cache.lua",
"server/games/jobs.lua",
"server/games/luckywheel.lua",
"server/main/sceneped.lua",
"server/interior/drinkingbar.lua",
"server/games/roulette.lua",
"server/games/poker.lua",
"server/games/blackjack.lua",
"server/main/casinocontrol.lua",
"server/main/log.lua",
"server/utils/*.lua",
"server/games/missions.lua",
"xmas/xmas_sv.lua",
}
shared_scripts {
"shared/*.lua",
}
escrow_ignore {
"coords.lua",
"config.lua",
"translation.lua",
"config_server.lua",
"const.lua",
"client/main/casino.lua",
"client/main/utils.lua",
"server/utils/*.lua",
"server/main/casino.lua",
"server/main/stats.lua",
"server/main/society.lua",
"server/main/inventory.lua",
"shared/objectLoader.lua",
"shared/utils.lua",
"client/job/bossmenu.lua",
"stream/**/*.ytd",
"stream/**/*.ytf",
"client/interior/cashier.lua",
"client/interior/doorsystem.lua",
"server/main/cache.lua",
"server/utils/*.lua",
"client/framework/*.lua",
"server/framework/*.lua",
"xmas/xmas_cl.lua",
"xmas/xmas_sv.lua",
'client/ui/**/*.lua',
'locales/**/*.lua',
"client/main/target.lua",
}
ui_page 'client/html/index.html'
files {
'client/html/index.html',
'client/html/keys/*',
'client/html/css/*',
'client/html/scripts/*',
'client/interior/peddata.txt',
'client/interior/peddata_gabz.txt',
'client/interior/peddata_molo.txt',
'client/interior/peddata_k4mb1.txt',
'client/interior/peddata_gtao.txt',
'client/interior/peddata_oldk4mb1.txt',
'client/interior/peddata_cawles.txt',
'client/interior/peddata_atlantis.txt',
'client/interior/peddata_town.txt',
'client/interior/peddata_pearls.txt',
}
lua54 "yes"
dependency '/assetpacks'
@@ -1,677 +0,0 @@
Translation["en"] = {
PRESS_TO_OPEN_BOSSMENU = "Press ~INPUT_CONTEXT~ to open boss menu.",
PRESS_TO_GIFT_LUCKYWHEEL_VEH = "Press ~INPUT_CONTEXT~ to gift this vehicle to the Lucky Wheel Casino game.",
BAR_MENU_TITLE = "Bar Menu",
BAR_MENU_DESC = "Order a drink from the bar",
BAR_MENU_DESC2 = "Order a little snack from the bar",
BAR_MENU_NO_MONEY = "You don't have enough money (%s) for this item.",
BAR_SHAKE_NOTIFY = "Use ~INPUT_CREATOR_ACCEPT~ to shake the bottle",
BAR_USE_TO_SPRAY = "Use ~INPUT_SCRIPT_PAD_UP~ ~INPUT_SCRIPT_PAD_DOWN~ ~INPUT_SCRIPT_PAD_LEFT~ ~INPUT_SCRIPT_PAD_RIGHT~ to spray around",
BAR_ASK_SHOT = "Press ~INPUT_TALK~ to ask for one shot. Press ~INPUT_CELLPHONE_CANCEL~ to leave",
BAR_BARTENDER_BUSY = "This bartender is being busy with another player",
BAR_CHAIR_USED = "This chair is being used by another player",
BAR_PRESS_TO_ORDER = "Press ~INPUT_TALK~ to order a drink",
BAR_PRESS_TO_SIT_DOWN = "Press ~INPUT_TALK~ to sit down",
BAR_SIT_FUNCTIONS = "Press ~INPUT_TALK~ to use your casino snacks\nPress ~INPUT_CELLPHONE_CANCEL~ to leave your chair",
BAR_SIT_NOSNACKS = "You don't have any snacks. Buy some from one of the bartenders. Press ~INPUT_CELLPHONE_CANCEL~ to leave your chair.",
UI_PRESS_TO_PLAY = "Press ~INPUT_TALK~ to play",
ROULETTE_WELCOME_PART1 = "The objective if Roulette is to predict which number and/or color the ball will land on. This can be done by placing a single bet on a color, individual number, or by placing bets that cover a range of numbers, or whether the number will be an even/odd number.\n",
ROULETTE_WELCOME_PART2 = "A maximum of 10 bets can be placed at a time on the table.\n\nThis table uses the American style layout, which includes double zero.\n",
UI_CHAIR_USED = "This chair is being used by another player",
ROULETTE_RULES_PART1 = "Inside Bets\n\nStraight-up: A bet on an individual number.\nThis pays 35 to 1.\n\nSplit: A two-number bet that's placed on the line connecting two numbers. This pays 17 to 1.\n\nTrio: A three-number bet that includes zero, double zero, or both. This pays 11 to 1.\n\nCorner: A four-number bet that's placed at the corner of four numbers. This pays 8 to 1.",
ROULETTE_RULES_PART2 = "Street: A three-number bet that's placed at the end of a row of numbers. This pays 11 to 1.\n\nLine: A six-number bet that's placed at the junction of two street bets. This pays 5 to 1.\n\nFive-Number: A five-number bet covering 0, 00, 1, 2, and 3. This pays 6 to 1.",
ROULETTE_RULES_PART3 = "Outside Bets\n\nRed: An eighteen-number bet that covers all of the red numbers. This pays 1 to 1.\n\nBlack: An eighteen-number bet that covers all of the black numbers. This pays 1 to 1.\n\nEven: An eighteen-number bet that covers all of the even numbers. This pays 1 to 1.\n\nOdd: An eighteen-number bet that covers all of the odd numbers. This pays 1 to 1.",
ROULETTE_RULES_PART4 = "Halves: An eighteen-number bet that covers the 1st half (1-18) or the 2nd half (19-36). This pays 1 to 1.\n\nColumn: A twelve-number bet that covers all of the numbers in the corresponding column. This pays 2 to 1.\n\nDozen: A twelve-number bet that covers 1-12, 13-24, or 25-36. This pays 2 to 1.",
ROULETTE_RULES_BET_LIMITS = "Bet Limits",
ROULETTE_RULES_INSIDE_BETS = "Inside Bets",
ROULETTE_RULES_MINIMUM = "Minimum",
ROULETTE_RULES_CHIPS = "Chips",
ROULETTE_NUMBERS_MAXIMUM = "Maximum",
ROULETTE_RULES_OUTSIDE_BETS = "Outside Bets",
ROULETTE_RULES_TITLE = "Rules",
ROULETTE_HISTORY = "History",
ROULETTE_HISTORY_IS_EMPTY = "History is empty",
ROULETTE_BTN_CLOSE_RULES = "Close Rules",
ROULETTE_BTN_PLACE_BET = "Place Bet",
ROULETTE_BTN_REMOVE_THIS_BET = "Remove This Bet",
ROULETTE_BTN_MIN_BET = "Min Bet",
ROULETTE_BTN_MAX_BET = "Max Bet",
ROULETTE_BTN_ADJUST_BET = "Adjust Bet",
ROULETTE_TIMERBAR_ACTUAL_BET = "ACTUAL BET",
ROULETTE_TIMERBAR_BET = "BET",
ROULETTE_TIMERBAR_BETS_REMAINING = "BETS REMAINING",
ROULETTE_TIMERBAR_TIME = "TIME",
TABLE_CANT_AFFORD_PLAYING = "You need at least %s chips to be able to play at this table.",
SLOTS_CANT_AFFORD_PLAYING = "You need at least %s chips to be able to play %s.",
BTN_CAMERA = "Camera",
BTN_RULES = "Rules",
BTN_HISTORY = "History",
BTN_PREV_PAGE = "Previous Page",
BTN_NEXT_PAGE = "Next Page",
BTN_QUIT = "Quit",
WINNERS = "Winners",
NO_WINNERS = "Without Winners",
LOSERS = "Losers",
POKER_WELCOME_PART1 = "The aim of Three Card Poker is to make the best poker hand possible with three cards, comparing your hand against the Dealer's hand.\n\nBets can be placed on the Ante, Pair Plus, or both. Play and Ante bets pay out 1 to 1 if your hand beats the Dealer's hand. A Straight or higher is needed to receive the Ante Bonus.\n",
POKER_WELCOME_PART2 = "For Pair Plus, you are betting on your own hand only, and must have a Pair or better to receive a payout.\n",
POKER_ANTE_BET = "ANTE BET",
POKER_BET_DEFAULT = "BET",
POKER_PAIR_PLUS_BET = "PAIR PLUS BET",
POKER_PLAY_BET = "PLAY BET",
POKER_CONFIRM_ANTE = "Place Ante Bet",
POKER_SKIP_ANTE = "Decline Ante Bet",
POKER_PLAY_WAGER = "PLAY WAGER",
POKER_GRAB_CARDS = "Grab Cards",
BTN_FOLD = "Fold",
BTN_FOLD_PLAY = "Play",
POKER_CONFIRM_PAIRPLUS = "Place Pair Plus Bet",
POKER_SKIP_PAIRPLUS = "Decline Pair Plus Bet",
UI_WAITING_FOR_EVERYONE = "PLAYERS DONE",
POKER_RULES_PART1 = "The Pack\n\nA single standard 52-card pack is used.\nThis is shuffled at the start of every hand.\n",
POKER_RULES_PART2 = "Dealer Hand\n\nThe Dealer must have a Queen high or better to play. If the Dealer does not play, Ante wagers are paid 1 to 1 and Play wagers are returned.\n",
POKER_RULES_PART3 = "Player Hand\n\nPlayers can choose to bet on the Ante, Pair Plus, or both. After being dealt their cards, players that have bet the Ante must place an equal Play bet to compare their hand with the Dealer.",
POKER_RULES_PART3_2 = "Play and Ante bets pay out 1 to 1 if the player's hand beats the Dealer. The player needs a Straight or better to receive the Ante Bonus. For Pair Plus, the player must have a Pair or better to receive a payout. This is paid independently of what hand the Dealer has.\n",
POKER_RULES_PART4 = "Pair Plus Payouts\n\nStraight Flush: 40 to 1\nThree of a Kind: 30 to 1\nStraight: 6 to 1\nFlush: 4 to 1\nPair: 1 to 1\n",
POKER_RULES_PART5 = "Ante Bonus Payouts\n\nStraight Flush: 5 to 1\nThree of a Kind: 4 to 1\nStraight: 1 to 1\n",
POKER_RULES_ANTE_AND_PLAY = "Ante and Play",
POKER_RULES_PAIR_PLUS = "Pair Plus",
POKER_RESULTS_YOU_HAVE = "You have",
POKER_RESULTS_DEALER_DOESNT_QUALIFY = "The Dealer doesn't have Queen High or better and doesn't play.",
POKER_RESULTS_DEALER_HAS = "The Dealer has",
CASINO_RESULTS_YOU_WIN_X_COINS = "You win",
CASINO_RESULTS_ITS_DRAW = "Draw!",
CASINO_RESULTS_YOU_FOLDED = "You folded your cards.",
CASINO_RESULTS_YOU_DIDNT_BET_ANTE_PLAY = "You didn't bet on Ante & Play.",
CASINO_RESULTS_YOU_GOT_PAIRPLUS_BONUS = "You won the Pair Plus bet.",
CASINO_RESULTS_YOU_LOSE = "You lose",
CASINO_NOT_IN_ROUND = "Please wait, you will be able to bet the next round.",
POKER_STEP_INFO_1 = "Place an Ante bet to receive a hand that can be played against the Dealer.",
POKER_STEP_INFO_2 = "Pair Plus is a side bet. This will win if your hand has a Pair or higher.",
POKER_STEP_INFO_3 = "Place a Play bet equal to your Ante to compare your hand against the Dealer. Folding will forfeit your Ante bet.",
BLACKJACK_WELCOME_PART1 = "The aim of Blackjack is to beat the Dealer's hand without going over 21. This game uses four standard 52-card decks, which are shuffled at the start of every hand. Insurance is not offered if the Dealer's face up card is an ace.",
BLACKJACK_WELCOME_PART2 = "You can split your hand once if the first two cards have the same value. Drawing seven cards without going bust will automatically win.\n\nThe Dealer will stand on soft 17.\n",
BLACKJACK_BAR_MY_HAND = "MY HAND",
BLACKJACK_BAR_DEALERS_HAND = "DEALER'S HAND",
BLACKJACK_BAR_TOTAL_BETTINGS = "BETTINGS",
BLACKJACK_RULES_PART1 = "The Pack\n\nThis game uses four standard 52-card decks, which are shuffled at the start of every hand.\n",
BLACKJACK_RULES_PART2 = "Seven-Card Charlie\n\nA player will automatically win if they manage to draw seven cards without going bust.\n",
BLACKJACK_RULES_PART3 = "Double Down\n\nAfter a player has been dealt their two initial cards, they can double their bet in return for one additional card. This is also avaiable on both hands after splitting.\n",
BLACKJACK_RULES_PART4 = "Split\n\nYou can split your hand once if the first two cards have the same value. The same bet amount must be bet for the split hand.\n",
BLACKJACK_RULES_PART5 = "Card Values\n\nAce is worth 1 ot 11 points. Face cards are all worth 10 points and 2 to 10 are worth their pip value.\n",
BLACKJACK_RULES_PART6 = "Payout\n\nBlackjack pays 3 to 2 of the bet value. Other winning bets pay even money.\n",
BLACKJACK_RULES_PART7 = "Dealer Hand\n\nThe Dealer will continue taking cards until they hit at least soft 17 or go bust. If the Dealer and player both have Blackjack, this will result in a push.\n",
BLACKJACK_RULES_PART8 = "Soft Hand\n\nThe combination of an ace with a card other than a ten-card is know as a 'soft hand' because the player can count the ace as a 1 or 11. A soft hand cannot go bust by taking another card.\n",
BLACKJACK_YOU_HAVE_LEFT_HAND = "You have %s in your left hand",
BLACKJACK_YOU_HAVE_RIGHT_HAND = " and %s in your right hand",
BLACKJACK_DEALER_HAS_X = "The Dealer has %s",
BLACKJACK_DEALER_HAS_GONE_BUST = "The Dealer has gone bust",
BLACKJACK_UI_SPLIT = "Split",
BLACKJACK_UI_DOUBLEDOWN = "Double Down",
BLACKJACK_UI_STAND = "Stand",
BLACKJACK_UI_HIT = "Hit",
LUCKYWHEEL_COOLDOWN = "Sorry, but you have to wait before your next spin. Come back in: %s",
LUCKYWHEEL_RANDOMUNLOCKED = "You've got '%s' (%sx)",
TABLE_GAMES_VIP_RESTRICTION = "Only VIP members can play High Limit table games. Buy VIP membership at the Cashier.",
BUYING_ITEMS_VIP_RESTRICTION = "Only VIP members can buy this item. Buy VIP membership at the Cashier.",
DRUNK_MESSAGE = "You're too drunk that you don't even know where you are.",
SLOTS_PRESS_TO_PLAY = "Press ~INPUT_TALK~ to play %s.",
SLOTS_MACHINE_USED = "This slot machine is being used by another player.",
SLOTS_WELCOME = "Match three symbols or one to two Specials on the payline to receive the corresponding prize.\n\nThe payouts displayed on the front of the machine are based on the minimum bet.\n",
SLOTS_BTN_BET_ONE = "Bet One",
SLOTS_BTN_BET_MAX = "Bet Max",
SLOTS_BTN_SPIN = "Spin",
SLOTS_BTN_LEAVE = "Leave",
IT_PRESS_TO_PLAY = "Press ~INPUT_TALK~ to play Inside Track.",
IT_MACHINE_USED = "This betting machine is being used by another player.",
IT_WELCOME_1 = "The aim of Inside Track is to select the virtual horse that will place 1st in the race. Play alone in the Single Event or choose to bet on the Main Event with other players.\n\nHorse odds affect the chance of the horse placing 1st. Horses with lower odds have a higher chance or performing well on the race. There are no differences in the horse odds between the Single Event and the Main Event.",
IT_WELCOME_2 = "Each race will consist of two Favorites\n(Evens - 5 to 1), two Middle-of-the-Pack (6 to 1 - 15 to 1), and two Outliers (16 to 1 - 30 to 1).\n",
IT_BTN_LEAVE = "Leave",
IT_BTN_TOGGLE_MAIN_CAM = "Toggle Main Event Camera",
IT_BTN_OPEN_CONSOLE = "Open Console",
IT_BTN_CLOSE_CONSOLE = "Close Console",
IT_TIMERBAR_BET = "BET",
IT_TIMERBAR_ODDS = "ODDS",
IT_TIMERBAR_HORSE = "HORSE",
WHEEL_PRESS_BROKEN = "The Lucky Wheel disk holder broke and fell off. Wait for the electrical technician to do their job!",
WHEEL_PRESS_BROKEN_2 = "The Lucky Wheel disk holder broke and fell off. Press ~INPUT_TALK~ to start the repair.",
WHEEL_PRESS_TO_SPIN = "Press ~INPUT_TALK~ to start spinning the wheel, or press ~INPUT_CELLPHONE_CANCEL~ to leave.",
WHEEL_TIMERBAR_STRENGTH = "STRENGTH",
WHEEL_CHOOSE_STRENGTH = "Press ~INPUT_TALK~ to spin at your desired speed",
WHEEL_BEING_USED = "Lucky Wheel is being controlled by another player",
WHEEL_PRESS_TO_PLAY = "Press ~INPUT_TALK~ to spin the Lucky Wheel",
WHEEL_WELCOME = "Spin the Lucky Wheel for free once per day and get a prize.\n\nPrize Odds:\nPodium Vehicle: 1 in 20\nVehicle Discount: 1 in 20\nMystery: 1 in 20\nClothing: 4 in 20\nChips: 4 in 20\nCash: 4 in 20\nRP: 5 in 20",
WHEEL_PRICE_DRINKS_1 = "Free Drinks",
WHEEL_PRICE_DRINKS_2 = "unlocked.",
WHEEL_PRICE_DRINKS_3 = "for 24 hours",
WHEEL_PRICE_CAR_1 = "Special Vehicle",
WHEEL_PRICE_CAR_2 = "unlocked.",
WHEEL_PRICE_CAR_DEFAULTNAME = "a Custom Vehicle",
CASHIER_CAPT = "Cashier Services",
CASHIER_BEING_USED = "The Cashier is being used by another player.",
CASHIER_PRESS_TO_USE = "Press ~INPUT_TALK~ to say Hi.",
CASHIER_DAILY_BONUS_DESC = "Collect your free daily visitor bonus of %s Chips.",
CASHIER_DAILY_BONUS_USED = "You've already got your daily bonus. Come back again tomorrow!",
CASHIER_TRADEIN_CAPT = "Trade In Chips",
CASHIER_TRADEIN_DESC = "Select the number of Chips you'd like to trade in.",
CASHIER_YOU_SURE_TRADE_IN = "Are you sure you want to trade in %s Chips?",
CASHIER_DAILY_BONUS_CAPT = "Visitor Bonus",
CASHIER_VIP_MEMBERSHIP_CAPT = "VIP Membership",
CASHIER_VIP_MEMBERSHIP_DESC = "Buy VIP membership to play high stake table games, use VIP areas and enjoy all the features of the Diamond Casino. VIP membership costs %s %s.",
CASHIER_VIP_PURCHASE_COMPLETE = "You have purchased VIP membership for %s%s. Enjoy!",
CASHIER_VIP_NO_MONEY = "Sorry, but you can't afford the VIP membership.",
CASHIER_ACQUIRE_CAPT = "Acquire Chips",
CASHIER_ACQUIRE_DESC = "Select the number of Chips you'd like to acquire",
CASHIER_YOU_SURE_ACQUIRE = "Are you sure you want to acquire %s Chips for %s?",
BAR_SNACKS_CAPT = "Casino Snacks",
BAR_SNACKS_DESC = "Eat or drink your casino snacks.",
BAR_SNACKS_SEPARATOR_DRINKS = "Drinks",
BAR_SNACKS_SEPARATOR_SNACKS = "Snacks",
BAR_SNACKS_PRICE_FREE = "Free",
BAR_CHAMPAGNE_TIMERBAR_STRENGTH = "STRENGTH",
BAR_DRINKS_UNLOCKED = "Enjoy free drinks avaiable at the drinking bar. The offer will expire in 24 hours.",
SEATING_PRESS_TO_SIT = "Press ~INPUT_TALK~ to sit down",
SEATING_USED = "This seat is being used by another player",
SEATING_CHANGE_POSE_LEAVE = "Press ~INPUT_JUMP~ to change pose. Press ~INPUT_CELLPHONE_CANCEL~ to leave",
RESTRICTED_AREA = "This is a restricted area, only avaiable for VIP members. Purchase VIP at the Cashier to enter VIP areas or play High Stake tables.",
RESTRICTED_AREA_MANAGEMENT = "Only Casino Management can enter this area.",
BOSS_FULLSCREEN_PODIUM_CAPT = "Podium Vehicle",
BOSS_FULLSCREEN_PODIUM_DESC = "replaced.",
BOSS_REPLACE_QUESTION = "Are you sure you want to replace the current Lucky Wheel podium vehicle with this one? The previous one gets destroyed, if exists.",
BOSS_REPLACE_CAPTION = "gift vehicle?",
BOSS_REPLACE_NOJOB = "The vehicle couldn't be repaced, because you're not a casino worker.",
BOSS_REPLACE_OWNERSHIP_ERROR = "This vehicle can't be gifted to the Lucky Wheel competition, because it's not yours. You can only gift vehicles that you own",
MENU_PLAY_OPTION = "Play",
MENU_LEAVE_OPTION = "Leave",
MENU_NAVIGATE_OPTION = "Navigate",
BOSS_COMPUTER_USED = "The computer is being used by another player",
BOSS_PRESS_TO_USE_COMPUTER = "Press ~INPUT_TALK~ to sit down and access the Casino cameras",
BOSS_PRESS_TO_USE_ELEVATOR = "Press ~INPUT_TALK~ to use the elevator",
BOSS_SITTING_OPTIONS = "Press ~INPUT_TALK~ to use the Casino computer. Press ~INPUT_CELLPHONE_CANCEL~ to stand up",
BOSS_CAM_CONTROL_GAMEPAD = "Use ~INPUT_SCRIPT_PAD_LEFT~ ~INPUT_SCRIPT_PAD_RIGHT~ to switch between the cameras. ~INPUT_SCRIPT_PAD_UP~ ~INPUT_SCRIPT_PAD_DOWN~ to zoom in/out. Use ~INPUT_VEH_FLY_UNDERCARRIAGE~ to rotate.",
BOSS_CAM_CONTROL_KEYS = "Use ~INPUT_SCRIPT_PAD_LEFT~ ~INPUT_SCRIPT_PAD_RIGHT~ to switch between the cameras. ~INPUT_SCRIPT_PAD_UP~ ~INPUT_SCRIPT_PAD_DOWN~ to zoom in/out. Use ~INPUT_REPLAY_BACK~ ~INPUT_REPLAY_ADVANCE~ ~INPUT_REPLAY_FFWD~ ~INPUT_REPLAY_REWIND~ to rotate.",
BLIP_IT = "Inside Track",
BLIP_WHEEL = "Lucky Wheel",
BLIP_CASHIER = "Cashier",
BLIP_CASINO = "Casino",
BLIP_VIP = "VIP Area",
BLIP_INFO = "Info",
BLIP_TABLE_GAMES = "Table Games",
BTN_CONTINUE = "Continue",
BTN_CONFIRM = "Confirm",
CAPT_ERROR = "Error",
BTN_CLOSE = "Close",
GAME_STATE_DISABLED = "This activity is temporarily disabled by admin.",
GAME_STATE_MENU_TITLE = "Enable Or Disable Games",
SOCIETY_CASHIER_MONEY_LIMIT = "At the moment, Casino is limited and withdrawing only %d %% of the Chips value.",
SOCIETY_CASHIER_MONEY_LIMIT_2 = "At the moment, you can only get %s%s from %s Chips (%d %%).",
SOCIETY_CASHIER_MONEY_LIMIT_3 = "At the moment, Casino can't afford making payouts.",
CASHIER_VIP_PASS_ERROR = "You can't buy our VIP membership, because you don't own our special item.",
PRESS_TO_LEAVE_CASINO = "Press ~INPUT_TALK~ to leave the Diamond Casino.",
PRESS_TO_ENTER_CASINO = "Press ~INPUT_TALK~ to enter the Diamond Casino.",
CASHIER_TRANSFER_INFO = "%s casino chips equal to %s! ",
CASHIER_EXCHANGE_RATE_DESC = "Exchange Rate: 10 Chips = %s",
WHEEL_PRESS_TO_PLAY_PAID = "Press ~INPUT_TALK~ to spin the Lucky Wheel for %s Chips.",
WHEEL_CANT_AFFORD_PLAYING = "You need %s Chips to be able to spin the Lucky Wheel.",
WHEEL_PRESS_TO_PLAY_PAID_ITEM = "Press ~INPUT_TALK~ to spin the Lucky Wheel for one ticket.",
INSIDETRACK_COOLDOWN = "Sorry, but you have to wait before your next bet. Come back in: %s",
JOB_SLOTS_BROKEN = "This slot machine got fried and needs a new circuit board. Wait for the electrical technician to do the job.",
JOB_SLOTS_BROKEN_2 = "This slot machine got fried and needs a new circuit board. Press ~INPUT_TALK~ to start the job.",
CASHIER_VIP_CONFIRM_CAPT = "Purchase VIP",
CASHIER_VIP_CONFIRM_MSG = "Are you sure you want to purchase VIP for %s?",
CASHIER_VIP_CONFIRM_MSG_2 = " It vill be valid for %s.",
CASHIER_VIP_VALID_FOR = "Your VIP membership is valid for %s.",
CASHIER_TRADEIN_FAILED_CAPT = "Error trading-in chips",
CASHIER_TRADEIN_FAILED_MSG = "Right now, the Casino society doesn't have enough funds to complete your transaction. Try to withdraw lower amount, or come back later.",
CASHIER_SOCIETY_BALANCE = "Society Funds: %s",
CASHIER_FULLSCREEN_PURCHASE_VIP = "VIP",
CASHIER_FULLSCREEN_PURCHASE_VIP_2 = "PURCHASED.",
BTN_YES = "Yes",
BTN_NO = "No",
FUSE_BOX = "Fuse Box",
DIAMOND_WALL_BROKE = "The digital wall lost signal. Wait for electrical technician to do their job!",
DIAMOND_WALL_BROKE_2 = "The digital wall lost signal. Locate the fuse box to start the repair!",
DIAMOND_WALL_BROKE_4 = "The electricity went off. Wait for electrical technician to do their job!",
DIAMOND_WALL_BROKE_5 = "The electricity went off. Locate the fuse box to start the repair!",
DIAMOND_WALL_BROKE_3 = "Press ~INPUT_TALK~ to fix the electricity or signal.",
PODIUM_INFO = "~BLIP_681~ The Lucky Wheel jackpot is ~g~%s~w~. Come over to the Lucky Wheel and try your luck!",
PODIUM_INFO_2 = "Press ~INPUT_TALK~ if you wish to replace the Lucky Wheel jackpot.",
PODIUM_INFO_3 = "~BLIP_681~ The Lucky Wheel currently doesn't offer any vehicle.",
PODIUM_INFO_4 = "Casino workers can donate their vehicles to the Lucky Wheel. Waypoint of the garage was set on your map.",
LOADING_CASINO = "Loading Casino...",
XMAS_TREE = "Christmas Tree",
XMAS_PRESS_E = "Press ~INPUT_TALK~ to get your Christmas gift!",
XMAS_YOU_GOT_X = "You got %s! (%s)",
XMAS_ALREADY_GOT = "You've already got you daily Christmas gift :)",
XMAS_ALREADY_GOT_COOLDOWN = "You've already got you daily Christmas gift :). Come back in: %s",
CHIPS = "Casino Chips",
OPENINGHOURS_CLOSED = "The Diamond Casino is closed. Come back again %s",
OPENINGHOURS_TODAY = "today at %s",
OPENINGHOURS_TOMORROW = "tomorrow at %s",
OPENINGHOURS_INXDAYS = "in %d days, at %s",
OPENINGHOURS_NEVEROPEN = "(Date will be announced soon)",
OPENINGHOURS_OPEN = "Open",
OPENINGHOURS_CLOSED_TITLE = "Closed",
LUCKYWHEEL_YOU_GOT_MONEY = "You have won %s!",
LUCKYWHEEL_YOU_GOT_CHIPS = "You have won %s chips!",
LUCKYWHEEL_YOU_GOT_CAR = "You have won the podium vehicle!",
LUCKYWHEEL_YOU_GOT_NOTHING = "You have won nothing!",
AVAIABLE_SOCIETY_BALANCE = "Society balance: %s",
CASINO_TEMPORARY_CLOSED = "Casino is temporary closed.",
-- Poker Cards
STRAIGHT_FLUSH = "a Straight Flush",
THREE_OF_A_KIND = "Three of a Kind",
STRAIGHT = "a Straight",
FLUSH = "a Flush",
PAIR_OF_ACES = "Pair of Aces",
PAIR_OF_2 = "a Pair of Two",
PAIR_OF_3 = "a Pair of Three",
PAIR_OF_4 = "a Pair of Four",
PAIR_OF_5 = "a Pair of Five",
PAIR_OF_6 = "a Pair of Six",
PAIR_OF_7 = "a Pair of Seven",
PAIR_OF_8 = "a Pair of Eight",
PAIR_OF_9 = "a Pair of Nine",
PAIR_OF_10 = "a Pair of Ten",
PAIR_OF_JACKS = "a Pair of Jacks",
PAIR_OF_QUEENS = "a Pair of Queens",
PAIR_OF_KINGS = "a Pair of Kings",
CARD_2_HIGH = "Two High",
CARD_3_HIGH = "Three High",
CARD_4_HIGH = "Four High",
CARD_5_HIGH = "Five High",
CARD_6_HIGH = "Six High",
CARD_7_HIGH = "Seven High",
CARD_8_HIGH = "Eight High",
CARD_9_HIGH = "Nine High",
CARD_10_HIGH = "Ten High",
CARD_JACK_HIGH = "Jack High",
CARD_QUEEN_HIGH = "Queen High",
CARD_KING_HIGH = "King High",
CARD_ACE_HIGH = "Ace High",
-- Slot Displays
SLOTS_RT_BET = "Bet",
SLOTS_RT_LSTWIN = "Last Win",
-- SLOTS_MESP (Positive) SLOTS_MESM (Negative)
SLOTS_MESP501 = "You Have Been Blessed!",
SLOTS_MESN501 = "You Have Been Cursed!",
SLOTS_MESP502 = "The Pharaoh is Pleased!",
SLOTS_MESN502 = "The Gods Are Enraged!",
SLOTS_MESP503 = "Bask in the Glow!",
SLOTS_MESN503 = "You Angered the Gods!",
SLOTS_MESP504 = "Glory Awaits!",
SLOTS_MESN504 = "Ruined!",
SLOTS_MESP505 = "The Gods are Pleased!",
SLOTS_MESN505 = "Hope Eclipsed!",
SLOTS_MESP506 = "The Sphinx Awaits!",
SLOTS_MESN506 = "Kingdom Ruined",
SLOTS_MESP507 = "Build the Pyramids!",
SLOTS_MESN507 = "Dynasty in Shambles",
SLOTS_MESP508 = "Conquered!",
SLOTS_MESN508 = "Life's a Desert",
SLOTS_MESP509 = "Riches Await!",
SLOTS_MESN509 = "Tomb Prepared!",
SLOTS_MESP510 = "Prosperity is Coming!",
SLOTS_MESN510 = "Afterlife Awaits",
SLOTS_MESP511 = "Hail the New Pharaoh!",
SLOTS_MESN511 = "Dead and Buried",
SLOTS_MESP512 = "You Are the Golden God!",
SLOTS_MESN512 = "Sands Take You!",
SLOTS_MESP513 = "You Are Legend!",
SLOTS_MESN513 = "Your Fate is Sealed",
SLOTS_MESP514 = "Cats Are Great!",
SLOTS_MESN514 = "Dynasty in Ruins!",
SLOTS_MESP515 = "Magnificent Ruler!",
SLOTS_MESN515 = "Empire Destroyed!",
SLOTS_MESP516 = "A Bountiful Return!",
SLOTS_MESN516 = "Mummified!",
SLOTS_MESP801 = "You're Number One!",
SLOTS_MESN801 = "Washed up!",
SLOTS_MESP802 = "The 80's Rule!",
SLOTS_MESN802 = "You're C List Now!",
SLOTS_MESP803 = "You Won the War!",
SLOTS_MESN803 = "Vinewood Hates You!",
SLOTS_MESP804 = "Be an Action Hero!",
SLOTS_MESN804 = "The 80's Are Over!",
SLOTS_MESP805 = "America Loves You!",
SLOTS_MESN805 = "Your Career Is Done!",
SLOTS_MESP806 = "Party it Up!",
SLOTS_MESN806 = "Time to Retire",
SLOTS_MESP807 = "You're Unstoppable!",
SLOTS_MESN807 = "You've Been Forgotten!",
SLOTS_MESP808 = "You're the Biggest!",
SLOTS_MESN808 = "Eliminated",
SLOTS_MESP809 = "You're the Best!",
SLOTS_MESN809 = "Wasted",
SLOTS_MESP810 = "It's Never Over",
SLOTS_MESN810 = "Done!",
SLOTS_MESP811 = "You Saved America!",
SLOTS_MESN811 = "See Ya!",
SLOTS_MESP812 = "Over the Top!",
SLOTS_MESN812 = "America Hates You!",
SLOTS_MESP813 = "Blockbuster!",
SLOTS_MESN813 = "Straight to DVD",
SLOTS_MESP814 = "Pumped Up!",
SLOTS_MESN814 = "Box Office Bomb!",
SLOTS_MESP815 = "Big Leagues!",
SLOTS_MESN815 = "Recast!",
SLOTS_MESP816 = "Glory Days!",
SLOTS_MESN816 = "Only Terrorists Lose!",
SLOTS_MESP401 = "Famed!",
SLOTS_MESN401 = "Shamed!",
SLOTS_MESP402 = "Fame!",
SLOTS_MESN402 = "Embarrassing!",
SLOTS_MESP403 = "You Can Do It!",
SLOTS_MESN403 = "Terrible!",
SLOTS_MESP404 = "You're SO Talented",
SLOTS_MESN404 = "How Awful!",
SLOTS_MESP405 = "You're a Star",
SLOTS_MESN405 = "Voted Off!",
SLOTS_MESP406 = "Be Amazing!",
SLOTS_MESN406 = "So Sorry!",
SLOTS_MESP407 = "Do It!",
SLOTS_MESN407 = "That's a Fail!",
SLOTS_MESP408 = "You're Number One!",
SLOTS_MESN408 = "Well That Sucked!",
SLOTS_MESP409 = "You Got This!",
SLOTS_MESN409 = "No Talent!",
SLOTS_MESP410 = "You're the Best!",
SLOTS_MESN410 = "Is That You Lazlow?",
SLOTS_MESP411 = "You're #1",
SLOTS_MESN411 = "Suicide Watch!",
SLOTS_MESP412 = "Be Unstoppable!",
SLOTS_MESN412 = "Dropped by Sponsors",
SLOTS_MESP413 = "Terrifyingly Talented!",
SLOTS_MESN413 = "Career OVER!",
SLOTS_MESP414 = "You're on FIRE!",
SLOTS_MESN414 = "Upstaged!",
SLOTS_MESP415 = "So Hawt!",
SLOTS_MESN415 = "Boooo!",
SLOTS_MESP416 = "America's Darling!",
SLOTS_MESN416 = "What a Disaster!",
SLOTS_MESP301 = "Lock and Load!",
SLOTS_MESN301 = "Ouch!",
SLOTS_MESP302 = "Shoot One Off",
SLOTS_MESN302 = "That Ain't Good!",
SLOTS_MESP303 = "Get Some!",
SLOTS_MESN303 = "What the Hell?",
SLOTS_MESP304 = "Mission Accomplished!",
SLOTS_MESN304 = "Dead as Hell!",
SLOTS_MESP305 = "You're a Patriot!",
SLOTS_MESN305 = "Well I'll Be!",
SLOTS_MESP306 = "Mericuh!",
SLOTS_MESN306 = "You Even Tryin'?",
SLOTS_MESP307 = "Yee-Hah!",
SLOTS_MESN307 = "Shucks!",
SLOTS_MESP308 = "Let's Do This!",
SLOTS_MESN308 = "Confoundit!",
SLOTS_MESP309 = "Ya'll Havin Fun?",
SLOTS_MESN309 = "Dagnabbit!",
SLOTS_MESP310 = "Be a Hero!",
SLOTS_MESN310 = "Well Crud!",
SLOTS_MESP311 = "Oorah!",
SLOTS_MESN311 = "Blame Foreigners",
SLOTS_MESP312 = "Target Acquired!",
SLOTS_MESN312 = "Friggin Bullshit!",
SLOTS_MESP313 = "Nuke'Em from Orbit!",
SLOTS_MESN313 = "Total ClusterF!",
SLOTS_MESP314 = "Alien BBQ!",
SLOTS_MESN314 = "FUBAR!",
SLOTS_MESP315 = "Freedoms Protected!",
SLOTS_MESN315 = "Man Down!",
SLOTS_MESP316 = "Darn Tootin'!",
SLOTS_MESN316 = "KIA!",
SLOTS_MESP701 = "What a Tycoon!",
SLOTS_MESN701 = "Busted",
SLOTS_MESP702 = "Magnate!",
SLOTS_MESN702 = "Broke!",
SLOTS_MESP703 = "Get Mining!",
SLOTS_MESN703 = "Ouch!",
SLOTS_MESP704 = "So Prosperous!",
SLOTS_MESN704 = "Bankrupt!",
SLOTS_MESP705 = "Loaded!",
SLOTS_MESN705 = "Chapter 11",
SLOTS_MESP706 = "Dividends!",
SLOTS_MESN706 = "That hurts!",
SLOTS_MESP707 = "Bling!",
SLOTS_MESN707 = "Strapped for Cash!",
SLOTS_MESP708 = "Priceless!",
SLOTS_MESN708 = "Soup Line!",
SLOTS_MESP709 = "Rolling in It!",
SLOTS_MESN709 = "Urgh!",
SLOTS_MESP710 = "Easy!",
SLOTS_MESN710 = "You're No One!",
SLOTS_MESP711 = "Impeccable Taste!",
SLOTS_MESN711 = "Worthless",
SLOTS_MESP712 = "So Extravagant!",
SLOTS_MESN712 = "Spent!",
SLOTS_MESP713 = "Minted!",
SLOTS_MESN713 = "Bounced!",
SLOTS_MESP714 = "Fat Cat!",
SLOTS_MESN714 = "Ruined!",
SLOTS_MESP715 = "High Class!",
SLOTS_MESN715 = "Destitute!",
SLOTS_MESP716 = "Sparkling!",
SLOTS_MESN716 = "Faker!",
SLOTS_MESP101 = "Awesome!",
SLOTS_MESN101 = "Barf Me Out!",
SLOTS_MESP102 = "Tubular",
SLOTS_MESN102 = "Not Even!",
SLOTS_MESP103 = "Wow!",
SLOTS_MESN103 = "Grody!",
SLOTS_MESP104 = "Fantastic!",
SLOTS_MESN104 = "Gnarly",
SLOTS_MESP105 = "Groovy",
SLOTS_MESN105 = "Oh. My. God.",
SLOTS_MESP106 = "Radical!",
SLOTS_MESN106 = "Take a Chill Pill",
SLOTS_MESP107 = "Righteous!",
SLOTS_MESN107 = "So Lame!",
SLOTS_MESP108 = "Like Totally!",
SLOTS_MESN108 = "Hoser",
SLOTS_MESP109 = "Clutch!",
SLOTS_MESN109 = "Spazz",
SLOTS_MESP110 = "Illin!",
SLOTS_MESN110 = "You're Trippin'",
SLOTS_MESP111 = "Sick!",
SLOTS_MESN111 = "Harsh!",
SLOTS_MESP112 = "Tight",
SLOTS_MESN112 = "Gag Me!",
SLOTS_MESP113 = "Bitchin'!",
SLOTS_MESN113 = "Bummer Dude!",
SLOTS_MESP114 = "Totally Studly!",
SLOTS_MESN114 = "Bogus!",
SLOTS_MESP115 = "Whoa!",
SLOTS_MESN115 = "Major Buzz Kill!",
SLOTS_MESP116 = "Sweet!",
SLOTS_MESN116 = "Wipe out!",
SLOTS_MESP601 = "Take a Stab",
SLOTS_MESN601 = "Wasted",
SLOTS_MESP602 = "Make a Killing",
SLOTS_MESN602 = "Murdered",
SLOTS_MESP603 = "Kill it!",
SLOTS_MESN603 = "What a Massacre",
SLOTS_MESP604 = "Time to Kill It!",
SLOTS_MESN604 = "Stabbed",
SLOTS_MESP605 = "Play!",
SLOTS_MESN605 = "Annihilated!",
SLOTS_MESP606 = "Slay It!",
SLOTS_MESN606 = "Dead",
SLOTS_MESP607 = "Time for Blood",
SLOTS_MESN607 = "Foul Play!",
SLOTS_MESP608 = "Slaughter It!",
SLOTS_MESN608 = "Done!",
SLOTS_MESP609 = "Be the Hunter!",
SLOTS_MESN609 = "Cooked!",
SLOTS_MESP610 = "Bathe in Blood!",
SLOTS_MESN610 = "Slaughtered",
SLOTS_MESP611 = "Kill 'Em All!",
SLOTS_MESN611 = "What a Horror!",
SLOTS_MESP612 = "No Remorse!",
SLOTS_MESN612 = "Destroyed",
SLOTS_MESP613 = "Draw First Blood!",
SLOTS_MESN613 = "You're the Victim!",
SLOTS_MESP614 = "More Body Bags!",
SLOTS_MESN614 = "Fried",
SLOTS_MESP615 = "You're a Cutter!",
SLOTS_MESN615 = "No Escape!",
SLOTS_MESP616 = "Chop, Chop!",
SLOTS_MESN616 = "Eradicated!",
SLOTS_MESP201 = "You Can Do It!",
SLOTS_MESN201 = "Trigger Warning!",
SLOTS_MESP202 = "Breathe Deep!",
SLOTS_MESN202 = "Not Fair!",
SLOTS_MESP203 = "Keep It Up!",
SLOTS_MESN203 = "Pout!",
SLOTS_MESP204 = "Stay Positive!",
SLOTS_MESN204 = "Conservatives Suck!",
SLOTS_MESP205 = "You're a Good Person",
SLOTS_MESN205 = "Blame Conservatives!",
SLOTS_MESP206 = "You're in a Safe Space",
SLOTS_MESN206 = "Call Your Therapist",
SLOTS_MESP207 = "Virtue Signal!",
SLOTS_MESN207 = "Feeling Oppressed?",
SLOTS_MESP208 = "You're No Snowflake!",
SLOTS_MESN208 = "Trolled!",
SLOTS_MESP209 = "Do Yoga!",
SLOTS_MESN209 = "Check Your Privilege",
SLOTS_MESP210 = "Meditate More!",
SLOTS_MESN210 = "Support Public Radio",
SLOTS_MESP211 = "You Make a Difference!",
SLOTS_MESN211 = "You're Not Woke!",
SLOTS_MESP212 = "Recycle!",
SLOTS_MESN212 = "Be Conscious of Your Bias!",
SLOTS_MESP213 = "You're Precious!",
SLOTS_MESN213 = "Don't Be a Troll!",
SLOTS_MESP214 = "Enlightenment!",
SLOTS_MESN214 = "Woke!",
SLOTS_MESP215 = "Mindfulness!",
SLOTS_MESN215 = "Breathe Deep",
SLOTS_MESP216 = "Acknowledge Privilege!",
SLOTS_MESN216 = "Downvote!",
-- Inside Track Horse Names,
ITH_NAME_001 = "Bad Egg",
ITH_NAME_002 = "Banana Hammock",
ITH_NAME_003 = "Better Than Nothing",
ITH_NAME_004 = "Black Rock Rooster",
ITH_NAME_005 = "Bleet Me Baby",
ITH_NAME_006 = "Blue Dream",
ITH_NAME_007 = "Borrowed Sorrow",
ITH_NAME_008 = "Bouncy Blessed",
ITH_NAME_009 = "Cancelled Check",
ITH_NAME_010 = "Can't Be Wronger",
ITH_NAME_011 = "Clapback Charlie",
ITH_NAME_012 = "Constant Brag",
ITH_NAME_013 = "Country Stuck",
ITH_NAME_014 = "Crackers and Please",
ITH_NAME_015 = "Creepy Dentist",
ITH_NAME_016 = "Crock Janley",
ITH_NAME_017 = "Dancin' Pole",
ITH_NAME_018 = "Dancin' Shoes",
ITH_NAME_019 = "Darling Ricki",
ITH_NAME_020 = "Dead Fam",
ITH_NAME_021 = "Dead Heat Hattie",
ITH_NAME_022 = "Dexie Runner",
ITH_NAME_023 = "Divorced Doctor",
ITH_NAME_024 = "Doozy Floozy",
ITH_NAME_025 = "Downtown Renown",
ITH_NAME_026 = "Dr. Deez Reins",
ITH_NAME_027 = "Dream Shatterer",
ITH_NAME_028 = "Drone Warning",
ITH_NAME_029 = "Drunken Brandee",
ITH_NAME_030 = "Durban Poison",
ITH_NAME_031 = "Feed The Trolls",
ITH_NAME_032 = "Fire Hazards",
ITH_NAME_033 = "Flipped Wig",
ITH_NAME_034 = "Friendly Fire",
ITH_NAME_035 = "Getting Haughty",
ITH_NAME_036 = "Ghost Dank",
ITH_NAME_037 = "Glass or Tina",
ITH_NAME_039 = "Los Santos Savior",
ITH_NAME_040 = "Hard Time Done",
ITH_NAME_041 = "Hell for Weather",
ITH_NAME_042 = "Hennigan's Steed",
ITH_NAME_043 = "Hippie Crack",
ITH_NAME_044 = "Hot & Bothered",
ITH_NAME_045 = "Invade Grenade",
ITH_NAME_046 = "It's a Trap",
ITH_NAME_047 = "Kraff Running",
ITH_NAME_048 = "Lead is Out",
ITH_NAME_049 = "Lit As Truck",
ITH_NAME_050 = "Lonely Stepbrother",
ITH_NAME_051 = "Lover's Speed",
ITH_NAME_052 = "Measles Smeezles",
ITH_NAME_053 = "Micro Aggression",
ITH_NAME_054 = "Minimum Wager",
ITH_NAME_055 = "Miss Mary John",
ITH_NAME_056 = "Miss Triggered",
ITH_NAME_057 = "Mister Redacted",
ITH_NAME_058 = "Mister Scissors",
ITH_NAME_059 = "Money to Burn",
ITH_NAME_060 = "Moon Rocks",
ITH_NAME_061 = "Mr. Worthwhile",
ITH_NAME_062 = "Mud Dragon",
ITH_NAME_063 = "Night-time Mare",
ITH_NAME_064 = "Northern Lights",
ITH_NAME_065 = "Nuns Orders",
ITH_NAME_066 = "Ol' Skag",
ITH_NAME_067 = "Old Ill Will",
ITH_NAME_068 = "Omens and Ice",
ITH_NAME_069 = "Pedestrian",
ITH_NAME_070 = "Pretty as a Pistol",
ITH_NAME_071 = "Questionable Dignity",
ITH_NAME_072 = "Reach Around Town",
ITH_NAME_073 = "Robocall",
ITH_NAME_074 = "Salt 'N' Sauce",
ITH_NAME_075 = "Salty and Woke",
ITH_NAME_076 = "Scrawny Nag",
ITH_NAME_077 = "Sir Scrambled",
ITH_NAME_078 = "Sizzurp",
ITH_NAME_079 = "Snatched Your Mama",
ITH_NAME_080 = "Social Media Warrior",
ITH_NAME_081 = "Square to Go",
ITH_NAME_082 = "Study Buddy",
ITH_NAME_083 = "Stupid Money",
ITH_NAME_084 = "Sumptin Saucy",
ITH_NAME_085 = "Sweet Releaf",
ITH_NAME_086 = "Tax the Poor",
ITH_NAME_087 = "Tea Ache Sea",
ITH_NAME_088 = "Tenpenny",
ITH_NAME_089 = "There She Blows",
ITH_NAME_090 = "Throwing Shady",
ITH_NAME_091 = "Thunder Skunk",
ITH_NAME_092 = "Total Belter",
ITH_NAME_093 = "Turnt Mood",
ITH_NAME_094 = "Uptown Rider",
ITH_NAME_095 = "Wage of Consent",
ITH_NAME_096 = "Wee Scunner",
ITH_NAME_097 = "Worth a Kingdom",
ITH_NAME_098 = "Yay Yo Let's Go",
ITH_NAME_099 = "Yellow Sunshine",
HORSEGAME_PHOTO = "PHOTO FINISH",
HORSEGAME_UNDERWAY = "EVENT IN PROGRESS",
HORSEGAME_SINGLE_SUB = "PLAY WITH YOURSELF",
HORSEGAME_REPLAY = "BET AGAIN",
HORSEGAME_CTA = "PLACE BET",
HORSEGAME_RESULTS = "RESULTS",
HORSEGAME_PREV = "PREVIOUS",
HORSEGAME_MAIN = "MAIN EVENT",
HORSEGAME_VIEWBET = "VIEW BET",
HORSEGAME_RULES = "RULES",
HORSEGAME_CLOSE = "CLOSE",
HORSEGAME_MAIN_SUB = "PLAY WITH OTHERS",
HORSEGAME_THIRD = "3RD",
HORSEGAME_SECOND = "2ND",
HORSEGAME_FIRST = "1ST",
HORSEGAME_PAYOUT = "PAYOUT",
HORSEGAME_SINGLE_SUB2 = "STARTS WHEN BET IS PLACED",
HORSEGAME_CANCEL = "CANCEL",
HORSEGAME_SEL = "SELECT HORSE",
HORSEGAME_SINGLE = "SINGLE EVENT",
HORSEGAME_BALANCE = "CURRENT BALANCE",
HORSEGAME_STARTS = "EVENT STARTS IN",
ABOUT = "About",
ADMIN_MENU_CHIP_MNG = "Chip Management",
ADMIN_MENU_GAMESTATES = "Game States",
ADMIN_MENU_CHIPS_NEWBALANCE = "New Balance",
}
@@ -1,676 +0,0 @@
Translation["ro"] = {
PRESS_TO_OPEN_BOSSMENU = "Apasa [E] pentru a deschide meniul de manager.",
PRESS_TO_GIFT_LUCKYWHEEL_VEH = "Apasa [E] pentru a dona acest vehicul la jocul Roata Norocoasa a Cazinoului.",
BAR_MENU_TITLE = "Meniu Bar",
BAR_MENU_DESC = "Comanda o bautura de la bar",
BAR_MENU_DESC2 = "Comanda o gustare de la bar",
BAR_MENU_NO_MONEY = "Nu ai suficienti bani (%s) pentru acest articol.",
BAR_SHAKE_NOTIFY = "Foloseste [Enter] pentru a agita sticla",
BAR_USE_TO_SPRAY = "Foloseste [] [] [] [] pentru a stropi in jur",
BAR_ASK_SHOT = "Apasa [E] pentru a cere un shot. Apasa [F] pentru a pleca",
BAR_BARTENDER_BUSY = "Acest barman este ocupat cu un alt jucator",
BAR_CHAIR_USED = "Acest scaun este folosit de un alt jucator",
BAR_PRESS_TO_ORDER = "Apasa [E] pentru a comanda o bautura",
BAR_PRESS_TO_SIT_DOWN = "Apasa [E] pentru a te aseza",
BAR_SIT_FUNCTIONS = "Apasa [E] pentru a folosi gustarile de cazinou\nApasa [F] pentru a te ridica de pe scaun",
BAR_SIT_NOSNACKS = "Nu ai gustari. Cumpara de la unul dintre barmani. Apasa [F] pentru a te ridica de pe scaun.",
UI_PRESS_TO_PLAY = "Apasa [E] pentru a juca",
ROULETTE_WELCOME_PART1 = "Obiectivul Ruletei este de a prezice pe ce numar si/sau culoare va ateriza bila. Acest lucru se poate face plasand un pariu pe o culoare, un numar individual, sau plasand pariuri care acopera un interval de numere, sau daca numarul va fi par/impar.\n",
ROULETTE_WELCOME_PART2 = "Maximum 10 pariuri pot fi plasate simultan pe masa.\n\nAceasta masa foloseste stilul american, care include dublu zero.\n",
UI_CHAIR_USED = "Acest scaun este folosit de un alt jucator",
ROULETTE_RULES_PART1 = "Pariuri Interioare\n\nDirect: Un pariu pe un singur numar.\nPlateste 35 la 1.\n\nImpartit: Un pariu pe doua numere plasat pe linia care conecteaza doua numere. Plateste 17 la 1.\n\nTrio: Un pariu pe trei numere care include zero, dublu zero sau ambele. Plateste 11 la 1.\n\nColt: Un pariu pe patru numere plasat la coltul a patru numere. Plateste 8 la 1.",
ROULETTE_RULES_PART2 = "Strada: Un pariu pe trei numere plasat la capatul unui rand de numere. Plateste 11 la 1.\n\nLinie: Un pariu pe sase numere plasat la jonctiunea a doua pariuri de strada. Plateste 5 la 1.\n\nCinci numere: Un pariu pe cinci numere acoperind 0, 00, 1, 2 si 3. Plateste 6 la 1.",
ROULETTE_RULES_PART3 = "Pariuri Exterioare\n\nRosu: Un pariu pe optsprezece numere care acopera toate numerele rosii. Plateste 1 la 1.\n\nNegru: Un pariu pe optsprezece numere care acopera toate numerele negre. Plateste 1 la 1.\n\nPar: Un pariu pe optsprezece numere care acopera toate numerele pare. Plateste 1 la 1.\n\nImpar: Un pariu pe optsprezece numere care acopera toate numerele impare. Plateste 1 la 1.",
ROULETTE_RULES_PART4 = "Jumatati: Un pariu pe optsprezece numere care acopera prima jumatate (1-18) sau a doua jumatate (19-36). Plateste 1 la 1.\n\nColoana: Un pariu pe douasprezece numere care acopera toate numerele din coloana corespunzatoare. Plateste 2 la 1.\n\nDuzina: Un pariu pe douasprezece numere acoperind 1-12, 13-24 sau 25-36. Plateste 2 la 1.",
ROULETTE_RULES_BET_LIMITS = "Limite Pariu",
ROULETTE_RULES_INSIDE_BETS = "Pariuri Interioare",
ROULETTE_RULES_MINIMUM = "Minim",
ROULETTE_RULES_CHIPS = "Jetoane",
ROULETTE_NUMBERS_MAXIMUM = "Maxim",
ROULETTE_RULES_OUTSIDE_BETS = "Pariuri Exterioare",
ROULETTE_RULES_TITLE = "Reguli",
ROULETTE_HISTORY = "Istoric",
ROULETTE_HISTORY_IS_EMPTY = "Istoricul este gol",
ROULETTE_BTN_CLOSE_RULES = "Inchide Regulile",
ROULETTE_BTN_PLACE_BET = "Plaseaza Pariu",
ROULETTE_BTN_REMOVE_THIS_BET = "Elimina Acest Pariu",
ROULETTE_BTN_MIN_BET = "Pariu Minim",
ROULETTE_BTN_MAX_BET = "Pariu Maxim",
ROULETTE_BTN_ADJUST_BET = "Ajusteaza Pariu",
ROULETTE_TIMERBAR_ACTUAL_BET = "PARIU ACTUAL",
ROULETTE_TIMERBAR_BET = "PARIU",
ROULETTE_TIMERBAR_BETS_REMAINING = "PARIURI RAMASE",
ROULETTE_TIMERBAR_TIME = "TIMP",
TABLE_CANT_AFFORD_PLAYING = "Ai nevoie de cel putin %s jetoane pentru a putea juca la aceasta masa.",
SLOTS_CANT_AFFORD_PLAYING = "Ai nevoie de cel putin %s jetoane pentru a putea juca %s.",
BTN_CAMERA = "Camera",
BTN_RULES = "Reguli",
BTN_HISTORY = "Istoric",
BTN_PREV_PAGE = "Pagina Anterioara",
BTN_NEXT_PAGE = "Pagina Urmatoare",
BTN_QUIT = "Iesi",
WINNERS = "Castigatori",
NO_WINNERS = "Fara Castigatori",
LOSERS = "Perdanti",
POKER_WELCOME_PART1 = "Scopul Pokerului cu Trei Carti este de a obtine cea mai buna mana de poker posibila cu trei carti, comparand mana ta cu mana Dealerului.\n\nPariurile pot fi plasate pe Ante, Pair Plus sau ambele. Pariurile Play si Ante platesc 1 la 1 daca mana ta bate mana Dealerului. O Chinta sau mai mare este necesara pentru a primi Bonusul Ante.\n",
POKER_WELCOME_PART2 = "Pentru Pair Plus, pariezi doar pe propria mana si trebuie sa ai o Pereche sau mai bine pentru a primi o plata.\n",
POKER_ANTE_BET = "PARIU ANTE",
POKER_BET_DEFAULT = "PARIU",
POKER_PAIR_PLUS_BET = "PARIU PAIR PLUS",
POKER_PLAY_BET = "PARIU PLAY",
POKER_CONFIRM_ANTE = "Plaseaza Pariu Ante",
POKER_SKIP_ANTE = "Refuza Pariu Ante",
POKER_PLAY_WAGER = "MIZA PLAY",
POKER_GRAB_CARDS = "Ia Cartile",
BTN_FOLD = "Paseaza",
BTN_FOLD_PLAY = "Joaca",
POKER_CONFIRM_PAIRPLUS = "Plaseaza Pariu Pair Plus",
POKER_SKIP_PAIRPLUS = "Refuza Pariu Pair Plus",
UI_WAITING_FOR_EVERYONE = "JUCATORI GATA",
POKER_RULES_PART1 = "Pachetul\n\nSe foloseste un singur pachet standard de 52 de carti.\nAcesta este amestecat la inceputul fiecarei maini.\n",
POKER_RULES_PART2 = "Mana Dealerului\n\nDealerul trebuie sa aiba Dama mare sau mai bine pentru a juca. Daca Dealerul nu joaca, pariurile Ante sunt platite 1 la 1 si pariurile Play sunt returnate.\n",
POKER_RULES_PART3 = "Mana Jucatorului\n\nJucatorii pot alege sa parieze pe Ante, Pair Plus sau ambele. Dupa ce primesc cartile, jucatorii care au pariat Ante trebuie sa plaseze un pariu Play egal pentru a compara mana lor cu a Dealerului.",
POKER_RULES_PART3_2 = "Pariurile Play si Ante platesc 1 la 1 daca mana jucatorului bate pe cea a Dealerului. Jucatorul are nevoie de o Chinta sau mai bine pentru a primi Bonusul Ante. Pentru Pair Plus, jucatorul trebuie sa aiba o Pereche sau mai bine pentru a primi o plata. Aceasta este platita independent de mana Dealerului.\n",
POKER_RULES_PART4 = "Plati Pair Plus\n\nChinta Regala: 40 la 1\nTrei de un Fel: 30 la 1\nChinta: 6 la 1\nCuloare: 4 la 1\nPereche: 1 la 1\n",
POKER_RULES_PART5 = "Plati Bonus Ante\n\nChinta Regala: 5 la 1\nTrei de un Fel: 4 la 1\nChinta: 1 la 1\n",
POKER_RULES_ANTE_AND_PLAY = "Ante si Play",
POKER_RULES_PAIR_PLUS = "Pair Plus",
POKER_RESULTS_YOU_HAVE = "Ai",
POKER_RESULTS_DEALER_DOESNT_QUALIFY = "Dealerul nu are Dama mare sau mai bine si nu joaca.",
POKER_RESULTS_DEALER_HAS = "Dealerul are",
CASINO_RESULTS_YOU_WIN_X_COINS = "Ai castigat",
CASINO_RESULTS_ITS_DRAW = "Egalitate!",
CASINO_RESULTS_YOU_FOLDED = "Ti-ai aruncat cartile.",
CASINO_RESULTS_YOU_DIDNT_BET_ANTE_PLAY = "Nu ai pariat pe Ante si Play.",
CASINO_RESULTS_YOU_GOT_PAIRPLUS_BONUS = "Ai castigat pariul Pair Plus.",
CASINO_RESULTS_YOU_LOSE = "Ai pierdut",
CASINO_NOT_IN_ROUND = "Te rugam sa astepti, vei putea paria in runda urmatoare.",
POKER_STEP_INFO_1 = "Plaseaza un pariu Ante pentru a primi o mana care poate fi jucata impotriva Dealerului.",
POKER_STEP_INFO_2 = "Pair Plus este un pariu secundar. Acesta va castiga daca mana ta are o Pereche sau mai mare.",
POKER_STEP_INFO_3 = "Plaseaza un pariu Play egal cu Ante pentru a compara mana ta cu cea a Dealerului. Pasarea va duce la pierderea pariului Ante.",
BLACKJACK_WELCOME_PART1 = "Scopul Blackjack-ului este de a bate mana Dealerului fara a depasi 21. Acest joc foloseste patru pachete standard de 52 de carti, care sunt amestecate la inceputul fiecarei maini. Asigurarea nu este oferita daca cartea vizibila a Dealerului este un as.",
BLACKJACK_WELCOME_PART2 = "Poti imparti mana o singura data daca primele doua carti au aceeasi valoare. Tragerea a sapte carti fara a depasi 21 va castiga automat.\n\nDealerul va sta pe 17 moale.\n",
BLACKJACK_BAR_MY_HAND = "MANA MEA",
BLACKJACK_BAR_DEALERS_HAND = "MANA DEALERULUI",
BLACKJACK_BAR_TOTAL_BETTINGS = "PARIURI",
BLACKJACK_RULES_PART1 = "Pachetul\n\nAcest joc foloseste patru pachete standard de 52 de carti, care sunt amestecate la inceputul fiecarei maini.\n",
BLACKJACK_RULES_PART2 = "Charlie cu Sapte Carti\n\nUn jucator va castiga automat daca reuseste sa traga sapte carti fara a depasi 21.\n",
BLACKJACK_RULES_PART3 = "Dublare\n\nDupa ce un jucator primeste cele doua carti initiale, poate dubla pariul in schimbul unei carti suplimentare. Acest lucru este disponibil si pe ambele maini dupa impartire.\n",
BLACKJACK_RULES_PART4 = "Imparte\n\nPoti imparti mana o singura data daca primele doua carti au aceeasi valoare. Aceeasi suma trebuie pariata pentru mana impartita.\n",
BLACKJACK_RULES_PART5 = "Valori Carti\n\nAsul valoreaza 1 sau 11 puncte. Cartile cu figuri valoreaza toate 10 puncte, iar 2 pana la 10 valoreaza valoarea lor nominala.\n",
BLACKJACK_RULES_PART6 = "Plata\n\nBlackjack plateste 3 la 2 din valoarea pariului. Alte pariuri castigatoare platesc bani egali.\n",
BLACKJACK_RULES_PART7 = "Mana Dealerului\n\nDealerul va continua sa traga carti pana ajunge la cel putin 17 moale sau depaseste. Daca atat Dealerul cat si jucatorul au Blackjack, rezultatul va fi egalitate.\n",
BLACKJACK_RULES_PART8 = "Mana Moale\n\nCombinatia unui as cu o carte alta decat o carte de zece este cunoscuta ca 'mana moale' deoarece jucatorul poate numara asul ca 1 sau 11. O mana moale nu poate depasi 21 tragand alta carte.\n",
BLACKJACK_YOU_HAVE_LEFT_HAND = "Ai %s in mana stanga",
BLACKJACK_YOU_HAVE_RIGHT_HAND = " si %s in mana dreapta",
BLACKJACK_DEALER_HAS_X = "Dealerul are %s",
BLACKJACK_DEALER_HAS_GONE_BUST = "Dealerul a depasit",
BLACKJACK_UI_SPLIT = "Imparte",
BLACKJACK_UI_DOUBLEDOWN = "Dubleaza",
BLACKJACK_UI_STAND = "Stai",
BLACKJACK_UI_HIT = "Mai",
LUCKYWHEEL_COOLDOWN = "Scuze, dar trebuie sa astepti inainte de urmatoarea rotire. Revino in: %s",
LUCKYWHEEL_RANDOMUNLOCKED = "Ai obtinut '%s' (%sx)",
TABLE_GAMES_VIP_RESTRICTION = "Doar membrii VIP pot juca jocuri de masa cu miza mare. Cumpara abonament VIP de la Casier.",
BUYING_ITEMS_VIP_RESTRICTION = "Doar membrii VIP pot cumpara acest articol. Cumpara abonament VIP de la Casier.",
DRUNK_MESSAGE = "Esti prea beat(a) incat nici nu mai stii unde te afli.",
SLOTS_PRESS_TO_PLAY = "Apasa [E] pentru a juca %s.",
SLOTS_MACHINE_USED = "Acest aparat de slot este folosit de un alt jucator.",
SLOTS_WELCOME = "Potriveste trei simboluri sau unul pana la doua simboluri Speciale pe linia de plata pentru a primi premiul corespunzator.\n\nPlatile afisate pe partea din fata a aparatului se bazeaza pe pariul minim.\n",
SLOTS_BTN_BET_ONE = "Pariu Unu",
SLOTS_BTN_BET_MAX = "Pariu Maxim",
SLOTS_BTN_SPIN = "Rotire",
SLOTS_BTN_LEAVE = "Pleaca",
IT_PRESS_TO_PLAY = "Apasa [E] pentru a juca Inside Track.",
IT_MACHINE_USED = "Acest aparat de pariuri este folosit de un alt jucator.",
IT_WELCOME_1 = "Scopul Inside Track este de a selecta calul virtual care va termina pe locul 1 in cursa. Joaca singur in Evenimentul Individual sau alege sa pariezi pe Evenimentul Principal cu alti jucatori.\n\nCotele cailor afecteaza sansa calului de a termina pe locul 1. Caii cu cote mai mici au o sansa mai mare de a performa bine in cursa. Nu exista diferente in cotele cailor intre Evenimentul Individual si Evenimentul Principal.",
IT_WELCOME_2 = "Fiecare cursa va consta din doi Favoriti\n(Egali - 5 la 1), doi Mijlocasi (6 la 1 - 15 la 1) si doi Outsideri (16 la 1 - 30 la 1).\n",
IT_BTN_LEAVE = "Pleaca",
IT_BTN_TOGGLE_MAIN_CAM = "Comuta Camera Evenimentului Principal",
IT_BTN_OPEN_CONSOLE = "Deschide Consola",
IT_BTN_CLOSE_CONSOLE = "Inchide Consola",
IT_TIMERBAR_BET = "PARIU",
IT_TIMERBAR_ODDS = "COTE",
IT_TIMERBAR_HORSE = "CAL",
WHEEL_PRESS_BROKEN = "Suportul discului Rotii Norocoase s-a rupt si a cazut. Asteapta tehnicianul electrician sa-si faca treaba!",
WHEEL_PRESS_BROKEN_2 = "Suportul discului Rotii Norocoase s-a rupt si a cazut. Apasa [E] pentru a incepe reparatia.",
WHEEL_PRESS_TO_SPIN = "Apasa [E] pentru a incepe rotirea rotii, sau apasa [F] pentru a pleca.",
WHEEL_TIMERBAR_STRENGTH = "FORTA",
WHEEL_CHOOSE_STRENGTH = "Apasa [E] pentru a roti la viteza dorita",
WHEEL_BEING_USED = "Roata Norocoasa este controlata de un alt jucator",
WHEEL_PRESS_TO_PLAY = "Apasa [E] pentru a roti Roata Norocoasa",
WHEEL_WELCOME = "Roteste Roata Norocoasa gratuit o data pe zi si primeste un premiu.\n\nSanse Premii:\nVehicul Podium: 1 din 20\nReducere Vehicul: 1 din 20\nMister: 1 din 20\nImbracaminte: 4 din 20\nJetoane: 4 din 20\nBani: 4 din 20\nRP: 5 din 20",
WHEEL_PRICE_DRINKS_1 = "Bauturi Gratuite",
WHEEL_PRICE_DRINKS_2 = "deblocate.",
WHEEL_PRICE_DRINKS_3 = "pentru 24 de ore",
WHEEL_PRICE_CAR_1 = "Vehicul Special",
WHEEL_PRICE_CAR_2 = "deblocat.",
WHEEL_PRICE_CAR_DEFAULTNAME = "un Vehicul Personalizat",
CASHIER_CAPT = "Servicii Casier",
CASHIER_BEING_USED = "Casierul este folosit de un alt jucator.",
CASHIER_PRESS_TO_USE = "Apasa [E] pentru a saluta.",
CASHIER_DAILY_BONUS_DESC = "Colecteaza bonusul tau zilnic gratuit de vizitator de %s Jetoane.",
CASHIER_DAILY_BONUS_USED = "Ai primit deja bonusul zilnic. Revino maine!",
CASHIER_TRADEIN_CAPT = "Incaseaza Jetoane",
CASHIER_TRADEIN_DESC = "Selecteaza numarul de Jetoane pe care doresti sa le incasezi.",
CASHIER_YOU_SURE_TRADE_IN = "Esti sigur(a) ca vrei sa incasezi %s Jetoane?",
CASHIER_DAILY_BONUS_CAPT = "Bonus Vizitator",
CASHIER_VIP_MEMBERSHIP_CAPT = "Abonament VIP",
CASHIER_VIP_MEMBERSHIP_DESC = "Cumpara abonament VIP pentru a juca jocuri de masa cu miza mare, a folosi zonele VIP si a te bucura de toate functionalitatile Diamond Casino. Abonamentul VIP costa %s %s.",
CASHIER_VIP_PURCHASE_COMPLETE = "Ai achizitionat abonament VIP pentru %s%s. Bucura-te!",
CASHIER_VIP_NO_MONEY = "Scuze, dar nu-ti permiti abonamentul VIP.",
CASHIER_ACQUIRE_CAPT = "Achizitioneaza Jetoane",
CASHIER_ACQUIRE_DESC = "Selecteaza numarul de Jetoane pe care doresti sa le achizitionezi",
CASHIER_YOU_SURE_ACQUIRE = "Esti sigur(a) ca vrei sa achizitionezi %s Jetoane pentru %s?",
BAR_SNACKS_CAPT = "Gustari Cazinou",
BAR_SNACKS_DESC = "Mananca sau bea gustarile tale de cazinou.",
BAR_SNACKS_SEPARATOR_DRINKS = "Bauturi",
BAR_SNACKS_SEPARATOR_SNACKS = "Gustari",
BAR_SNACKS_PRICE_FREE = "Gratuit",
BAR_CHAMPAGNE_TIMERBAR_STRENGTH = "FORTA",
BAR_DRINKS_UNLOCKED = "Bucura-te de bauturi gratuite disponibile la barul de bauturi. Oferta va expira in 24 de ore.",
SEATING_PRESS_TO_SIT = "Apasa [E] pentru a te aseza",
SEATING_USED = "Acest loc este folosit de un alt jucator",
SEATING_CHANGE_POSE_LEAVE = "Apasa [Space] pentru a schimba poza. Apasa [F] pentru a pleca",
RESTRICTED_AREA = "Aceasta este o zona restrictionata, disponibila doar pentru membrii VIP. Achizitioneaza VIP de la Casier pentru a intra in zonele VIP sau a juca la mesele cu Miza Mare.",
RESTRICTED_AREA_MANAGEMENT = "Doar Managementul Cazinoului poate intra in aceasta zona.",
BOSS_FULLSCREEN_PODIUM_CAPT = "Vehicul Podium",
BOSS_FULLSCREEN_PODIUM_DESC = "inlocuit.",
BOSS_REPLACE_QUESTION = "Esti sigur(a) ca vrei sa inlocuiesti vehiculul podium actual al Rotii Norocoase cu acesta? Cel anterior va fi distrus, daca exista.",
BOSS_REPLACE_CAPTION = "donezi vehiculul?",
BOSS_REPLACE_NOJOB = "Vehiculul nu a putut fi inlocuit, deoarece nu esti angajat al cazinoului.",
BOSS_REPLACE_OWNERSHIP_ERROR = "Acest vehicul nu poate fi donat la competitia Rotii Norocoase, deoarece nu este al tau. Poti dona doar vehicule pe care le detii",
MENU_PLAY_OPTION = "Joaca",
MENU_LEAVE_OPTION = "Pleaca",
MENU_NAVIGATE_OPTION = "Navigheaza",
BOSS_COMPUTER_USED = "Computerul este folosit de un alt jucator",
BOSS_PRESS_TO_USE_COMPUTER = "Apasa [E] pentru a te aseza si a accesa camerele Cazinoului",
BOSS_PRESS_TO_USE_ELEVATOR = "Apasa [E] pentru a folosi liftul",
BOSS_SITTING_OPTIONS = "Apasa [E] pentru a folosi computerul Cazinoului. Apasa [F] pentru a te ridica",
BOSS_CAM_CONTROL_GAMEPAD = "Foloseste [] [] pentru a comuta intre camere. [] [] pentru zoom. Foloseste [G] pentru a roti.",
BOSS_CAM_CONTROL_KEYS = "Foloseste [] [] pentru a comuta intre camere. [] [] pentru zoom. Foloseste [] [] [] [] pentru a roti.",
BLIP_IT = "Cursele de Cai",
BLIP_WHEEL = "Roata Norocoasa",
BLIP_CASHIER = "Casier",
BLIP_CASINO = "Cazinou",
BLIP_VIP = "Zona VIP",
BLIP_INFO = "Informatii",
BLIP_TABLE_GAMES = "Jocuri de Masa",
BTN_CONTINUE = "Continua",
BTN_CONFIRM = "Confirma",
CAPT_ERROR = "Eroare",
BTN_CLOSE = "Inchide",
GAME_STATE_DISABLED = "Aceasta activitate este temporar dezactivata de administrator.",
GAME_STATE_MENU_TITLE = "Activeaza sau Dezactiveaza Jocuri",
SOCIETY_CASHIER_MONEY_LIMIT = "Momentan, Cazinoul este limitat si retrage doar %d %% din valoarea Jetoanelor.",
SOCIETY_CASHIER_MONEY_LIMIT_2 = "Momentan, poti primi doar %s%s din %s Jetoane (%d %%).",
SOCIETY_CASHIER_MONEY_LIMIT_3 = "Momentan, Cazinoul nu-si permite sa faca plati.",
CASHIER_VIP_PASS_ERROR = "Nu poti cumpara abonamentul nostru VIP, deoarece nu detii obiectul nostru special.",
PRESS_TO_LEAVE_CASINO = "Apasa [E] pentru a parasi Diamond Casino.",
PRESS_TO_ENTER_CASINO = "Apasa [E] pentru a intra in Diamond Casino.",
CASHIER_TRANSFER_INFO = "%s jetoane de cazinou sunt egale cu %s! ",
CASHIER_EXCHANGE_RATE_DESC = "Curs de Schimb: 10 Jetoane = %s",
WHEEL_PRESS_TO_PLAY_PAID = "Apasa [E] pentru a roti Roata Norocoasa pentru %s Jetoane.",
WHEEL_CANT_AFFORD_PLAYING = "Ai nevoie de %s Jetoane pentru a putea roti Roata Norocoasa.",
WHEEL_PRESS_TO_PLAY_PAID_ITEM = "Apasa [E] pentru a roti Roata Norocoasa pentru un bilet.",
INSIDETRACK_COOLDOWN = "Scuze, dar trebuie sa astepti inainte de urmatorul pariu. Revino in: %s",
JOB_SLOTS_BROKEN = "Acest aparat de slot s-a ars si are nevoie de o placa de circuit noua. Asteapta tehnicianul electrician sa-si faca treaba.",
JOB_SLOTS_BROKEN_2 = "Acest aparat de slot s-a ars si are nevoie de o placa de circuit noua. Apasa [E] pentru a incepe lucrarea.",
CASHIER_VIP_CONFIRM_CAPT = "Achizitioneaza VIP",
CASHIER_VIP_CONFIRM_MSG = "Esti sigur(a) ca vrei sa achizitionezi VIP pentru %s?",
CASHIER_VIP_CONFIRM_MSG_2 = " Va fi valid pentru %s.",
CASHIER_VIP_VALID_FOR = "Abonamentul tau VIP este valid pentru %s.",
CASHIER_TRADEIN_FAILED_CAPT = "Eroare la incasarea jetoanelor",
CASHIER_TRADEIN_FAILED_MSG = "Momentan, societatea Cazinoului nu are fonduri suficiente pentru a finaliza tranzactia ta. Incearca sa retragi o suma mai mica sau revino mai tarziu.",
CASHIER_SOCIETY_BALANCE = "Fonduri Societate: %s",
CASHIER_FULLSCREEN_PURCHASE_VIP = "VIP",
CASHIER_FULLSCREEN_PURCHASE_VIP_2 = "ACHIZITIONAT.",
BTN_YES = "Da",
BTN_NO = "Nu",
FUSE_BOX = "Tablou Electric",
DIAMOND_WALL_BROKE = "Peretele digital a pierdut semnalul. Asteapta tehnicianul electrician sa-si faca treaba!",
DIAMOND_WALL_BROKE_2 = "Peretele digital a pierdut semnalul. Localizeaza tabloul electric pentru a incepe reparatia!",
DIAMOND_WALL_BROKE_4 = "Curentul s-a intrerupt. Asteapta tehnicianul electrician sa-si faca treaba!",
DIAMOND_WALL_BROKE_5 = "Curentul s-a intrerupt. Localizeaza tabloul electric pentru a incepe reparatia!",
DIAMOND_WALL_BROKE_3 = "Apasa [E] pentru a repara electricitatea sau semnalul.",
PODIUM_INFO = "~BLIP_681~ Jackpotul Rotii Norocoase este ~g~%s~w~. Vino la Roata Norocoasa si incearca-ti norocul!",
PODIUM_INFO_2 = "Apasa [E] daca doresti sa inlocuiesti jackpotul Rotii Norocoase.",
PODIUM_INFO_3 = "~BLIP_681~ Roata Norocoasa nu ofera momentan niciun vehicul.",
PODIUM_INFO_4 = "Angajatii cazinoului pot dona vehiculele lor la Roata Norocoasa. Punctul de reper al garajului a fost setat pe harta.",
LOADING_CASINO = "Se incarca Cazinoul...",
XMAS_TREE = "Pomul de Craciun",
XMAS_PRESS_E = "Apasa [E] pentru a primi cadoul de Craciun!",
XMAS_YOU_GOT_X = "Ai primit %s! (%s)",
XMAS_ALREADY_GOT = "Ai primit deja cadoul zilnic de Craciun :)",
XMAS_ALREADY_GOT_COOLDOWN = "Ai primit deja cadoul zilnic de Craciun :). Revino in: %s",
CHIPS = "Jetoane Cazinou",
OPENINGHOURS_CLOSED = "Diamond Casino este inchis. Revino %s",
OPENINGHOURS_TODAY = "astazi la %s",
OPENINGHOURS_TOMORROW = "maine la %s",
OPENINGHOURS_INXDAYS = "in %d zile, la %s",
OPENINGHOURS_NEVEROPEN = "(Data va fi anuntata in curand)",
OPENINGHOURS_OPEN = "Deschis",
OPENINGHOURS_CLOSED_TITLE = "Inchis",
LUCKYWHEEL_YOU_GOT_MONEY = "Ai castigat %s!",
LUCKYWHEEL_YOU_GOT_CHIPS = "Ai castigat %s jetoane!",
LUCKYWHEEL_YOU_GOT_CAR = "Ai castigat vehiculul podium!",
LUCKYWHEEL_YOU_GOT_NOTHING = "Nu ai castigat nimic!",
AVAIABLE_SOCIETY_BALANCE = "Sold societate: %s",
CASINO_TEMPORARY_CLOSED = "Cazinoul este temporar inchis.",
-- Carti Poker
STRAIGHT_FLUSH = "o Chinta Regala",
THREE_OF_A_KIND = "Trei de un Fel",
STRAIGHT = "o Chinta",
FLUSH = "o Culoare",
PAIR_OF_ACES = "Pereche de Asi",
PAIR_OF_2 = "o Pereche de Doi",
PAIR_OF_3 = "o Pereche de Trei",
PAIR_OF_4 = "o Pereche de Patru",
PAIR_OF_5 = "o Pereche de Cinci",
PAIR_OF_6 = "o Pereche de Sase",
PAIR_OF_7 = "o Pereche de Sapte",
PAIR_OF_8 = "o Pereche de Opt",
PAIR_OF_9 = "o Pereche de Noua",
PAIR_OF_10 = "o Pereche de Zece",
PAIR_OF_JACKS = "o Pereche de Valeti",
PAIR_OF_QUEENS = "o Pereche de Dame",
PAIR_OF_KINGS = "o Pereche de Regi",
CARD_2_HIGH = "Doi Mare",
CARD_3_HIGH = "Trei Mare",
CARD_4_HIGH = "Patru Mare",
CARD_5_HIGH = "Cinci Mare",
CARD_6_HIGH = "Sase Mare",
CARD_7_HIGH = "Sapte Mare",
CARD_8_HIGH = "Opt Mare",
CARD_9_HIGH = "Noua Mare",
CARD_10_HIGH = "Zece Mare",
CARD_JACK_HIGH = "Valet Mare",
CARD_QUEEN_HIGH = "Dama Mare",
CARD_KING_HIGH = "Rege Mare",
CARD_ACE_HIGH = "As Mare",
-- Afisaje Sloturi
SLOTS_RT_BET = "Pariu",
SLOTS_RT_LSTWIN = "Ultimul Castig",
-- SLOTS_MESP (Pozitiv) SLOTS_MESM (Negativ)
SLOTS_MESP501 = "Ai Fost Binecuvantat!",
SLOTS_MESN501 = "Ai Fost Blestemat!",
SLOTS_MESP502 = "Faraonul Este Multumit!",
SLOTS_MESN502 = "Zeii Sunt Furiosi!",
SLOTS_MESP503 = "Scalda-te in Lumina!",
SLOTS_MESN503 = "Ai Infuriat Zeii!",
SLOTS_MESP504 = "Gloria Te Asteapta!",
SLOTS_MESN504 = "Ruinat!",
SLOTS_MESP505 = "Zeii Sunt Multumiti!",
SLOTS_MESN505 = "Speranta Eclipsata!",
SLOTS_MESP506 = "Sfinxul Te Asteapta!",
SLOTS_MESN506 = "Regatul Distrus",
SLOTS_MESP507 = "Construieste Piramidele!",
SLOTS_MESN507 = "Dinastia in Ruine",
SLOTS_MESP508 = "Cucerit!",
SLOTS_MESN508 = "Viata-i un Desert",
SLOTS_MESP509 = "Bogatiile Te Asteapta!",
SLOTS_MESN509 = "Mormantul Pregatit!",
SLOTS_MESP510 = "Prosperitatea Vine!",
SLOTS_MESN510 = "Viata de Apoi Te Asteapta",
SLOTS_MESP511 = "Salut Noului Faraon!",
SLOTS_MESN511 = "Mort si Ingropat",
SLOTS_MESP512 = "Esti Zeul de Aur!",
SLOTS_MESN512 = "Nisipurile Te Inghit!",
SLOTS_MESP513 = "Esti o Legenda!",
SLOTS_MESN513 = "Soarta Ta Este Pecetluita",
SLOTS_MESP514 = "Pisicile Sunt Grozave!",
SLOTS_MESN514 = "Dinastia in Ruine!",
SLOTS_MESP515 = "Conducator Magnific!",
SLOTS_MESN515 = "Imperiul Distrus!",
SLOTS_MESP516 = "O Recompensa Bogata!",
SLOTS_MESN516 = "Mumificat!",
SLOTS_MESP801 = "Esti Numarul Unu!",
SLOTS_MESN801 = "Terminat!",
SLOTS_MESP802 = "Anii '80 Domina!",
SLOTS_MESN802 = "Esti pe Lista C Acum!",
SLOTS_MESP803 = "Ai Castigat Razboiul!",
SLOTS_MESN803 = "Vinewood Te Uraste!",
SLOTS_MESP804 = "Fii un Erou de Actiune!",
SLOTS_MESN804 = "Anii '80 S-au Terminat!",
SLOTS_MESP805 = "America Te Iubeste!",
SLOTS_MESN805 = "Cariera Ta S-a Terminat!",
SLOTS_MESP806 = "Petrece!",
SLOTS_MESN806 = "E Timpul sa Te Retragi",
SLOTS_MESP807 = "Esti de Neoprit!",
SLOTS_MESN807 = "Ai Fost Uitat!",
SLOTS_MESP808 = "Esti Cel Mai Mare!",
SLOTS_MESN808 = "Eliminat",
SLOTS_MESP809 = "Esti Cel Mai Bun!",
SLOTS_MESN809 = "Irosit",
SLOTS_MESP810 = "Nu Se Termina Niciodata",
SLOTS_MESN810 = "Gata!",
SLOTS_MESP811 = "Ai Salvat America!",
SLOTS_MESN811 = "Pa Pa!",
SLOTS_MESP812 = "Peste Limita!",
SLOTS_MESN812 = "America Te Uraste!",
SLOTS_MESP813 = "Blockbuster!",
SLOTS_MESN813 = "Direct pe DVD",
SLOTS_MESP814 = "Pompat!",
SLOTS_MESN814 = "Esec la Box Office!",
SLOTS_MESP815 = "Liga Mare!",
SLOTS_MESN815 = "Inlocuit!",
SLOTS_MESP816 = "Zile de Glorie!",
SLOTS_MESN816 = "Doar Teroristii Pierd!",
SLOTS_MESP401 = "Celebru!",
SLOTS_MESN401 = "Rusinat!",
SLOTS_MESP402 = "Faima!",
SLOTS_MESN402 = "Jenant!",
SLOTS_MESP403 = "Poti Reusi!",
SLOTS_MESN403 = "Groaznic!",
SLOTS_MESP404 = "Esti ATAT de Talentat",
SLOTS_MESN404 = "Ce Oribil!",
SLOTS_MESP405 = "Esti o Stea",
SLOTS_MESN405 = "Eliminat!",
SLOTS_MESP406 = "Fii Uimitor!",
SLOTS_MESN406 = "Ne Pare Rau!",
SLOTS_MESP407 = "Fa-o!",
SLOTS_MESN407 = "E un Esec!",
SLOTS_MESP408 = "Esti Numarul Unu!",
SLOTS_MESN408 = "Asta a Fost Nasol!",
SLOTS_MESP409 = "Poti Reusi!",
SLOTS_MESN409 = "Fara Talent!",
SLOTS_MESP410 = "Esti Cel Mai Bun!",
SLOTS_MESN410 = "Tu Esti Lazlow?",
SLOTS_MESP411 = "Esti #1",
SLOTS_MESN411 = "Sub Supraveghere!",
SLOTS_MESP412 = "Fii de Neoprit!",
SLOTS_MESN412 = "Abandonat de Sponsori",
SLOTS_MESP413 = "Infricosator de Talentat!",
SLOTS_MESN413 = "Cariera TERMINATA!",
SLOTS_MESP414 = "Esti in FLACARI!",
SLOTS_MESN414 = "Depasit!",
SLOTS_MESP415 = "Atat de Fierbinte!",
SLOTS_MESN415 = "Buuu!",
SLOTS_MESP416 = "Preferatul Americii!",
SLOTS_MESN416 = "Ce Dezastru!",
SLOTS_MESP301 = "Incarca si Trage!",
SLOTS_MESN301 = "Au!",
SLOTS_MESP302 = "Trage unul",
SLOTS_MESN302 = "Nu-i Bine!",
SLOTS_MESP303 = "Ia-ti Partea!",
SLOTS_MESN303 = "Ce Naiba?",
SLOTS_MESP304 = "Misiune Indeplinita!",
SLOTS_MESN304 = "Mort de Tot!",
SLOTS_MESP305 = "Esti un Patriot!",
SLOTS_MESN305 = "Pai Sa Fie!",
SLOTS_MESP306 = "America!",
SLOTS_MESN306 = "Macar Incerci?",
SLOTS_MESP307 = "Yee-Hah!",
SLOTS_MESN307 = "La Naiba!",
SLOTS_MESP308 = "Hai Sa Facem Asta!",
SLOTS_MESN308 = "Fir-ar!",
SLOTS_MESP309 = "Va Distrati?",
SLOTS_MESN309 = "Zau Asa!",
SLOTS_MESP310 = "Fii un Erou!",
SLOTS_MESN310 = "Ei Bine!",
SLOTS_MESP311 = "Oorah!",
SLOTS_MESN311 = "Da Vina pe Straini",
SLOTS_MESP312 = "Tinta Localizata!",
SLOTS_MESN312 = "Prostii!",
SLOTS_MESP313 = "Bombardeaza-i din Orbita!",
SLOTS_MESN313 = "Dezastru Total!",
SLOTS_MESP314 = "Gratar de Extraterestri!",
SLOTS_MESN314 = "FUBAR!",
SLOTS_MESP315 = "Libertati Protejate!",
SLOTS_MESN315 = "Om Cazut!",
SLOTS_MESP316 = "Asa E!",
SLOTS_MESN316 = "KIA!",
SLOTS_MESP701 = "Ce Mogul!",
SLOTS_MESN701 = "Prins",
SLOTS_MESP702 = "Magnat!",
SLOTS_MESN702 = "Falit!",
SLOTS_MESP703 = "La Minerit!",
SLOTS_MESN703 = "Au!",
SLOTS_MESP704 = "Atat de Prosper!",
SLOTS_MESN704 = "Faliment!",
SLOTS_MESP705 = "Plin de Bani!",
SLOTS_MESN705 = "Capitolul 11",
SLOTS_MESP706 = "Dividende!",
SLOTS_MESN706 = "Asta Doare!",
SLOTS_MESP707 = "Stralucire!",
SLOTS_MESN707 = "Fara Bani!",
SLOTS_MESP708 = "Nepretuit!",
SLOTS_MESN708 = "La Coada pentru Supa!",
SLOTS_MESP709 = "Te Scalzi in Bani!",
SLOTS_MESN709 = "Urgh!",
SLOTS_MESP710 = "Usor!",
SLOTS_MESN710 = "Nu Esti Nimeni!",
SLOTS_MESP711 = "Gust Impecabil!",
SLOTS_MESN711 = "Fara Valoare",
SLOTS_MESP712 = "Atat de Extravagant!",
SLOTS_MESN712 = "Cheltuit!",
SLOTS_MESP713 = "Batut in Aur!",
SLOTS_MESN713 = "Respins!",
SLOTS_MESP714 = "Bogatas!",
SLOTS_MESN714 = "Ruinat!",
SLOTS_MESP715 = "Clasa Inalta!",
SLOTS_MESN715 = "Sarac Lipit!",
SLOTS_MESP716 = "Stralucitor!",
SLOTS_MESN716 = "Fals!",
SLOTS_MESP101 = "Minunat!",
SLOTS_MESN101 = "Ce Scarbos!",
SLOTS_MESP102 = "Tubular",
SLOTS_MESN102 = "Nici Vorba!",
SLOTS_MESP103 = "Uau!",
SLOTS_MESN103 = "Dezgustator!",
SLOTS_MESP104 = "Fantastic!",
SLOTS_MESN104 = "Groaznic",
SLOTS_MESP105 = "Grozav",
SLOTS_MESN105 = "O. Doamne. Sfinte.",
SLOTS_MESP106 = "Radical!",
SLOTS_MESN106 = "Ia o Pastila de Calm",
SLOTS_MESP107 = "Drept!",
SLOTS_MESN107 = "Ce Penibil!",
SLOTS_MESP108 = "Total!",
SLOTS_MESN108 = "Ratat",
SLOTS_MESP109 = "La Fix!",
SLOTS_MESN109 = "Nebun",
SLOTS_MESP110 = "Bestial!",
SLOTS_MESN110 = "Esti pe Langa",
SLOTS_MESP111 = "Bolnav de Bun!",
SLOTS_MESN111 = "Dur!",
SLOTS_MESP112 = "Strans",
SLOTS_MESN112 = "Gata cu Mine!",
SLOTS_MESP113 = "Genial!",
SLOTS_MESN113 = "Patanie!",
SLOTS_MESP114 = "Total Studly!",
SLOTS_MESN114 = "Fals!",
SLOTS_MESP115 = "Uau!",
SLOTS_MESN115 = "Totala Distrugere!",
SLOTS_MESP116 = "Dulce!",
SLOTS_MESN116 = "Sters!",
SLOTS_MESP601 = "Incearca-ti Norocul",
SLOTS_MESN601 = "Irosit",
SLOTS_MESP602 = "Lovitura de Maestru",
SLOTS_MESN602 = "Ucis",
SLOTS_MESP603 = "Distruge Tot!",
SLOTS_MESN603 = "Ce Masacru",
SLOTS_MESP604 = "E Timpul sa Ucizi!",
SLOTS_MESN604 = "Injunghiat",
SLOTS_MESP605 = "Joaca!",
SLOTS_MESN605 = "Anihilat!",
SLOTS_MESP606 = "Macelareste!",
SLOTS_MESN606 = "Mort",
SLOTS_MESP607 = "Timp pentru Sange",
SLOTS_MESN607 = "Joc Murdar!",
SLOTS_MESP608 = "Macelereste-i!",
SLOTS_MESN608 = "Gata!",
SLOTS_MESP609 = "Fii Vanatorul!",
SLOTS_MESN609 = "Gatit!",
SLOTS_MESP610 = "Scalda-te in Sange!",
SLOTS_MESN610 = "Macelarit",
SLOTS_MESP611 = "Omoara-i Pe Toti!",
SLOTS_MESN611 = "Ce Oroare!",
SLOTS_MESP612 = "Fara Remuscari!",
SLOTS_MESN612 = "Distrus",
SLOTS_MESP613 = "Trage Primul!",
SLOTS_MESN613 = "Esti Victima!",
SLOTS_MESP614 = "Mai Multe Saci de Cadavre!",
SLOTS_MESN614 = "Prajit",
SLOTS_MESP615 = "Esti un Taietor!",
SLOTS_MESN615 = "Nu Exista Scapare!",
SLOTS_MESP616 = "Taie, Taie!",
SLOTS_MESN616 = "Eradicat!",
SLOTS_MESP201 = "Poti Reusi!",
SLOTS_MESN201 = "Atentie!",
SLOTS_MESP202 = "Respira Adanc!",
SLOTS_MESN202 = "Nu-i Corect!",
SLOTS_MESP203 = "Tine-o Tot Asa!",
SLOTS_MESN203 = "Suparat!",
SLOTS_MESP204 = "Fii Pozitiv!",
SLOTS_MESN204 = "Conservatorii Sunt Rai!",
SLOTS_MESP205 = "Esti o Persoana Buna",
SLOTS_MESN205 = "Da Vina pe Conservatori!",
SLOTS_MESP206 = "Esti intr-un Loc Sigur",
SLOTS_MESN206 = "Suna-ti Terapeutul",
SLOTS_MESP207 = "Semnalizeaza Virtutea!",
SLOTS_MESN207 = "Te Simti Oprimat?",
SLOTS_MESP208 = "Nu Esti un Fulg de Nea!",
SLOTS_MESN208 = "Trolat!",
SLOTS_MESP209 = "Fa Yoga!",
SLOTS_MESN209 = "Verifica-ti Privilegiul",
SLOTS_MESP210 = "Mediteaza Mai Mult!",
SLOTS_MESN210 = "Sustine Radioul Public",
SLOTS_MESP211 = "Faci o Diferenta!",
SLOTS_MESN211 = "Nu Esti Treaz!",
SLOTS_MESP212 = "Recicleaza!",
SLOTS_MESN212 = "Fii Constient de Prejudecatile Tale!",
SLOTS_MESP213 = "Esti Pretios!",
SLOTS_MESN213 = "Nu Fi Trol!",
SLOTS_MESP214 = "Iluminare!",
SLOTS_MESN214 = "Treaz!",
SLOTS_MESP215 = "Constientizare!",
SLOTS_MESN215 = "Respira Adanc",
SLOTS_MESP216 = "Recunoaste Privilegiul!",
SLOTS_MESN216 = "Vot Negativ!",
-- Nume Cai Inside Track,
ITH_NAME_001 = "Ou Stricat",
ITH_NAME_002 = "Banana Hammock",
ITH_NAME_003 = "Mai Bine Decat Nimic",
ITH_NAME_004 = "Cocosul de la Black Rock",
ITH_NAME_005 = "Bleet Me Baby",
ITH_NAME_006 = "Vis Albastru",
ITH_NAME_007 = "Durere Imprumutata",
ITH_NAME_008 = "Binecuvantare Jucausa",
ITH_NAME_009 = "Cec Anulat",
ITH_NAME_010 = "Nu Poate Fi Mai Rau",
ITH_NAME_011 = "Clapback Charlie",
ITH_NAME_012 = "Laudaros Constant",
ITH_NAME_013 = "Blocat la Tara",
ITH_NAME_014 = "Biscuiti si Va Rog",
ITH_NAME_015 = "Dentistul Ciudat",
ITH_NAME_016 = "Crock Janley",
ITH_NAME_017 = "La Bara",
ITH_NAME_018 = "Pantofii de Dans",
ITH_NAME_019 = "Draga Ricki",
ITH_NAME_020 = "Familie Moarta",
ITH_NAME_021 = "Hattie la Egalitate",
ITH_NAME_022 = "Alergatorul Dexie",
ITH_NAME_023 = "Doctor Divortat",
ITH_NAME_024 = "Doozy Floozy",
ITH_NAME_025 = "Renumele din Centru",
ITH_NAME_026 = "Dr. Deez Fraie",
ITH_NAME_027 = "Spargatorul de Vise",
ITH_NAME_028 = "Avertisment Drona",
ITH_NAME_029 = "Brandee Beata",
ITH_NAME_030 = "Otrava din Durban",
ITH_NAME_031 = "Hraneste Trolii",
ITH_NAME_032 = "Pericole de Foc",
ITH_NAME_033 = "Peruca Rasturnata",
ITH_NAME_034 = "Foc Prietenos",
ITH_NAME_035 = "Se Face Mandru",
ITH_NAME_036 = "Fantoma Dank",
ITH_NAME_037 = "Sticla sau Tina",
ITH_NAME_039 = "Salvatorul din Los Santos",
ITH_NAME_040 = "Timp Greu Facut",
ITH_NAME_041 = "Iad pentru Vreme",
ITH_NAME_042 = "Calul lui Hennigan",
ITH_NAME_043 = "Hippie Crack",
ITH_NAME_044 = "Incins si Agitat",
ITH_NAME_045 = "Grena de Invazie",
ITH_NAME_046 = "E o Capcana",
ITH_NAME_047 = "Alergarea lui Kraff",
ITH_NAME_048 = "Plumbul E Afara",
ITH_NAME_049 = "Aprins ca Focul",
ITH_NAME_050 = "Fratele Vitreg Singur",
ITH_NAME_051 = "Viteza Iubirii",
ITH_NAME_052 = "Rujeola Smeezles",
ITH_NAME_053 = "Micro Agresiune",
ITH_NAME_054 = "Miza Minima",
ITH_NAME_055 = "Domnisoara Mary John",
ITH_NAME_056 = "Domnisoara Declansata",
ITH_NAME_057 = "Domnul Redactat",
ITH_NAME_058 = "Domnul Foarfece",
ITH_NAME_059 = "Bani de Ars",
ITH_NAME_060 = "Pietre Lunare",
ITH_NAME_061 = "Dl. Care Merita",
ITH_NAME_062 = "Dragonul de Noroi",
ITH_NAME_063 = "Cosmar Nocturn",
ITH_NAME_064 = "Aurora Boreala",
ITH_NAME_065 = "Ordinele Calugaritei",
ITH_NAME_066 = "Batranul Skag",
ITH_NAME_067 = "Batrana Ranchiuna",
ITH_NAME_068 = "Semne si Gheata",
ITH_NAME_069 = "Pieton",
ITH_NAME_070 = "Frumoasa ca un Pistol",
ITH_NAME_071 = "Demnitate Indoielnica",
ITH_NAME_072 = "Ocolul Orasului",
ITH_NAME_073 = "Apel Robot",
ITH_NAME_074 = "Sare si Sos",
ITH_NAME_075 = "Sarat si Treaz",
ITH_NAME_076 = "Martoaga Slaba",
ITH_NAME_077 = "Sir Omleta",
ITH_NAME_078 = "Sizzurp",
ITH_NAME_079 = "Ti-am Luat Mama",
ITH_NAME_080 = "Razboinic pe Retele Sociale",
ITH_NAME_081 = "Gata de Plecare",
ITH_NAME_082 = "Coleg de Studiu",
ITH_NAME_083 = "Bani Prosti",
ITH_NAME_084 = "Ceva Picant",
ITH_NAME_085 = "Alinare Dulce",
ITH_NAME_086 = "Taxati Saracii",
ITH_NAME_087 = "Tea Ache Sea",
ITH_NAME_088 = "Tenpenny",
ITH_NAME_089 = "Acolo Sufla",
ITH_NAME_090 = "Arunca Umbra",
ITH_NAME_091 = "Tunet Skunk",
ITH_NAME_092 = "Total Belter",
ITH_NAME_093 = "Dispozitie Turnt",
ITH_NAME_094 = "Calaret din Centru",
ITH_NAME_095 = "Salariul Consimtamantului",
ITH_NAME_096 = "Wee Scunner",
ITH_NAME_097 = "Cat un Regat",
ITH_NAME_098 = "Yay Yo Hai Sa Mergem",
ITH_NAME_099 = "Soare Galben",
HORSEGAME_PHOTO = "FOTO FINISH",
HORSEGAME_UNDERWAY = "EVENIMENT IN DESFASURARE",
HORSEGAME_SINGLE_SUB = "JOACA SINGUR",
HORSEGAME_REPLAY = "PARIAZA DIN NOU",
HORSEGAME_CTA = "PLASEAZA PARIU",
HORSEGAME_RESULTS = "REZULTATE",
HORSEGAME_PREV = "ANTERIOR",
HORSEGAME_MAIN = "EVENIMENT PRINCIPAL",
HORSEGAME_VIEWBET = "VEZI PARIU",
HORSEGAME_RULES = "REGULI",
HORSEGAME_CLOSE = "INCHIDE",
HORSEGAME_MAIN_SUB = "JOACA CU ALTII",
HORSEGAME_THIRD = "LOCUL 3",
HORSEGAME_SECOND = "LOCUL 2",
HORSEGAME_FIRST = "LOCUL 1",
HORSEGAME_PAYOUT = "PLATA",
HORSEGAME_SINGLE_SUB2 = "INCEPE CAND SE PLASEAZA PARIUL",
HORSEGAME_CANCEL = "ANULEAZA",
HORSEGAME_SEL = "SELECTEAZA CAL",
HORSEGAME_SINGLE = "EVENIMENT INDIVIDUAL",
HORSEGAME_BALANCE = "SOLD CURENT",
HORSEGAME_STARTS = "EVENIMENTUL INCEPE IN",
ABOUT = "Despre",
ADMIN_MENU_CHIP_MNG = "Gestionare Jetoane",
ADMIN_MENU_GAMESTATES = "Stari Jocuri",
ADMIN_MENU_CHIPS_NEWBALANCE = "Sold Nou",
}
@@ -1,100 +0,0 @@
if Framework.Active == 4 then
ESX = {}
ESX.RegisterUsableItem = function(itemName, callBack)
end
ESX.GetPlayerFromId = function(source)
local xPlayer = {}
---------
xPlayer.identifier = "UniqueIdentifier"
---------
xPlayer.license = "UniqueLicense"
---------
xPlayer.job = {
name = "unemployed",
label = "unemployed",
grade = {
name = "unemployed",
level = 0
}
}
---------
xPlayer.getGroup = function()
-- gets player ground (admin, mod, player...)
return "player"
end
---------
xPlayer.getJob = function()
return {
grade = 0,
grade_name = "unemployed",
name = "unemployed"
}
end
---------
xPlayer.getName = function()
return GetPlayerName(source)
end
---------
xPlayer.getTotalAmount = function(item)
return 123
end
---------
xPlayer.addInventoryItem = function(item, count)
-- implement function that gives items
end
---------
xPlayer.removeInventoryItem = function(item, count)
-- implement function that removes items
end
---------
xPlayer.getMoney = function()
-- implement function that gets money
return 123
end
---------
xPlayer.addMoney = function(money)
-- implement function that adds money
end
---------
xPlayer.addAccountMoney = function(type, money)
if type == "money" then
type = "cash"
end
-- implement function that adds account money
end
---------
xPlayer.getAccount = function(type)
-- implement function that gets money
return {
money = 123
}
end
---------
xPlayer.removeAccountMoney = function(type, money)
-- implement function that removes account money
end
---------
xPlayer.removeMoney = function(money)
-- implement function that removes money
end
---------
xPlayer.getInventoryItem = function(itemName)
-- implement function that gets inventory item info
local ItemInfo = {
name = itemName,
count = 123,
label = itemName,
weight = 0,
usable = false,
rare = false,
canRemove = false
}
return ItemInfo
end
---------
return xPlayer
end
end
@@ -1,6 +0,0 @@
if Framework.Active == 1 then
ESX = nil
GetCoreObject(Framework.Active, Framework.ES_EXTENDED_RESOURCE_NAME, function(object)
ESX = object
end)
end
@@ -1,174 +0,0 @@
if Framework.Active == 2 then
ESX = {}
GetCoreObject(Framework.Active, Framework.QB_CORE_RESOURCE_NAME, function(object)
ESX.QBCore = object
QBCore = object
ESX.RegisterUsableItem = function(itemName, callBack)
QBCore.Functions.CreateUseableItem(itemName, callBack)
end
ESX.GetPlayerFromId = function(source)
local xPlayer = {}
local qbPlayer = QBCore.Functions.GetPlayer(source)
---------
if not qbPlayer then
return nil
end
---------
xPlayer.identifier = qbPlayer.PlayerData.citizenid
---------
xPlayer.license = qbPlayer.PlayerData.license
---------
local gradeName = "none"
local gradeLevel = -1
if qbPlayer.PlayerData.job.grade then
gradeName = qbPlayer.PlayerData.job.grade.name
gradeLevel = qbPlayer.PlayerData.job.grade.level
elseif qbPlayer.PlayerData.job.grades then
gradeLevel = GetGreatestNumber(qbPlayer.PlayerData.job.grades)
end
xPlayer.job = {
name = qbPlayer.PlayerData.job.name,
label = qbPlayer.PlayerData.job.label,
grade = {
name = gradeName,
level = gradeLevel
}
}
---------
xPlayer.playerData = qbPlayer.PlayerData
---------
xPlayer.getGroup = function()
return QBCore.Functions.GetPermission(source)
end
---------
xPlayer.getJob = function()
if not qbPlayer.PlayerData.job or not qbPlayer.PlayerData.job.grade then
return {
grade = 0,
grade_name = nil,
name = nil
}
end
local gradeName = "none"
local gradeLevel = -1
if qbPlayer.PlayerData.job.grade then
gradeName = qbPlayer.PlayerData.job.grade.name
gradeLevel = qbPlayer.PlayerData.job.grade.level
elseif qbPlayer.PlayerData.job.grades then
gradeLevel = GetGreatestNumber(qbPlayer.PlayerData.job.grades)
end
return {
grade = gradeLevel,
grade_name = gradeName,
name = qbPlayer.PlayerData.job.name or "none"
}
end
---------
xPlayer.getName = function()
if qbPlayer.PlayerData.charinfo and qbPlayer.PlayerData.charinfo.firstname then
return qbPlayer.PlayerData.charinfo.firstname
else
return qbPlayer.PlayerData.name
end
end
---------
xPlayer.setInventoryItem = function(item, count)
local qbItem = qbPlayer.Functions.GetItemByName(item) or {}
qbPlayer.Functions.RemoveItem(item, qbItem.amount or qbItem.count or 0)
qbPlayer.Functions.AddItem(item, count)
end
---------
xPlayer.getTotalAmount = function(item)
local totalAmount = 0
for k, v in pairs(qbPlayer.Functions.GetItemsByName(item)) do
totalAmount = totalAmount + (v.amount or v.count)
end
return totalAmount
end
---------
xPlayer.addInventoryItem = function(item, count)
qbPlayer.Functions.AddItem(item, count)
end
---------
xPlayer.removeInventoryItem = function(item, count)
local needToRemove = count
for k, v in pairs(qbPlayer.Functions.GetItemsByName(item)) do
local _slot = v.slot
local slotData = v
if slotData and slotData.name == item then
local slotAmount = slotData.amount or slotData.count
if slotAmount <= needToRemove then
needToRemove = needToRemove - slotAmount
qbPlayer.PlayerData.items[_slot] = nil
qbPlayer.Functions.SetPlayerData("items", qbPlayer.PlayerData.items)
else
slotData.amount = slotAmount - needToRemove
slotData.count = slotData.amount
qbPlayer.PlayerData.items[_slot] = slotData
qbPlayer.Functions.SetPlayerData("items", qbPlayer.PlayerData.items)
break
end
if needToRemove == 0 then
break
end
end
end
end
---------
xPlayer.getMoney = function()
return qbPlayer.Functions.GetMoney("cash")
end
---------
xPlayer.addMoney = function(money, reason)
qbPlayer.Functions.AddMoney("cash", money, reason)
end
---------
xPlayer.addAccountMoney = function(type, money)
if type == "money" then
type = "cash"
end
qbPlayer.Functions.AddMoney(type, money)
end
---------
xPlayer.getAccount = function(type)
return {
money = qbPlayer.Functions.GetMoney(type) or 0
}
end
---------
xPlayer.removeAccountMoney = function(type, money)
qbPlayer.Functions.RemoveMoney(type, money)
end
---------
xPlayer.removeMoney = function(money, reason)
qbPlayer.Functions.RemoveMoney("cash", money, reason)
end
---------
xPlayer.getInventoryItem = function(itemName)
local item = qbPlayer.Functions.GetItemByName(itemName) or {}
local ItemInfo = {
name = itemName,
count = item.amount or item.count or 0,
label = item.label or "none",
weight = item.weight or 0,
usable = item.useable or false,
rare = false,
canRemove = false
}
return ItemInfo
end
---------
return xPlayer
end
end)
end
@@ -1,130 +0,0 @@
if Framework.Active == 3 then
ESX = {}
ESX.RegisterUsableItem = function(itemName, callBack)
end
ESX.GetPlayerFromId = function(source)
local s = source
local xPlayer = {}
---------
xPlayer.identifier = GetPlayerIdentifierType(s, "fivem:")
---------
xPlayer.license = GetPlayerIdentifierType(s, "license:")
---------
local pCache = Cache:GetNow(xPlayer.identifier) or {}
if not pCache.fakeInventory then
pCache.fakeInventory = {
[Config.ChipsInventoryItem] = Framework.STANDALONE_INITIAL_CHIPS
}
end
if not pCache.fakeAccounts then
pCache.fakeAccounts = {
["cash"] = 0
}
end
xPlayer.job = {
name = pCache.jobGrade and "casino" or "unemployed",
label = pCache.jobGrade and "casino" or "unemployed",
grade = {
name = pCache.jobGrade,
level = pCache.jobGrade
}
}
---------
xPlayer.getGroup = function()
for k, v in pairs(AdminGroup) do
if IsPlayerAceAllowed(s, k) then
return "admin"
end
end
return "player"
end
---------
xPlayer.getJob = function()
return {
grade = pCache.jobGrade,
grade_name = pCache.jobGrade,
name = pCache.jobGrade and "casino" or "unemployed"
}
end
---------
xPlayer.getName = function()
return GetPlayerName(s)
end
---------
xPlayer.getTotalAmount = function(item)
return pCache.fakeInventory[item] or 0
end
---------
xPlayer.addInventoryItem = function(item, count)
local newAmount = (pCache.fakeInventory[item] or 0) + count
pCache.fakeInventory[item] = newAmount
end
---------
xPlayer.removeInventoryItem = function(item, count)
local newAmount = (pCache.fakeInventory[item] or 0) - count
if newAmount < 0 then
newAmount = 0
end
pCache.fakeInventory[item] = newAmount
end
---------
xPlayer.getMoney = function()
return pCache.fakeAccounts["cash"] or 0
end
---------
xPlayer.addMoney = function(money)
local newAmount = (pCache.fakeAccounts["cash"] or 0) + money
pCache.fakeAccounts["cash"] = newAmount
end
---------
xPlayer.addAccountMoney = function(type, money)
if type == "money" then
type = "cash"
end
local newAmount = (pCache.fakeAccounts[type] or 0) + money
pCache.fakeAccounts[type] = newAmount
end
---------
xPlayer.getAccount = function(type)
return {
money = pCache.fakeAccounts[type] or 0
}
end
---------
xPlayer.removeAccountMoney = function(type, money)
local newAmount = (pCache.fakeAccounts[type] or 0) - money
if newAmount < 0 then
newAmount = 0
end
pCache.fakeAccounts[type] = newAmount
end
---------
xPlayer.removeMoney = function(money)
local newAmount = (pCache.fakeAccounts["cash"] or 0) - money
if newAmount < 0 then
newAmount = 0
end
pCache.fakeAccounts["cash"] = newAmount
end
---------
xPlayer.getInventoryItem = function(itemName)
local ItemInfo = {
name = itemName,
count = pCache.fakeInventory[itemName] or 0,
label = pCache.fakeInventory[itemName],
weight = 0,
usable = false,
rare = false,
canRemove = false
}
return ItemInfo
end
---------
return xPlayer
end
end

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