Compare commits
2 Commits
24b682532e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 1bcf0d9282 | |||
| 3dcff3ce6d |
@@ -7,6 +7,41 @@ git tkn: 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
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-10 — Resource Cleanup + Knowledge Base Update
|
||||
|
||||
### 🧹 Resource Cleanup
|
||||
- Mutat resurse neutilizate în `_preLoad/_backups 10-04-2026/`
|
||||
- Verificat complet structura resurselor post-cleanup
|
||||
- Actualizat knowledge base: `server_knowledge.md`, `resource_dependency_map.md`, `changelog.md`, `todo_lists.md`, `cross_resource_modifications.md`, `resource_map.html`
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-08 — qb-target Migration (ld-target engine)
|
||||
|
||||
### 🎯 Target System Migration: rv-target → qb-target (ld-target engine)
|
||||
- **Cauza erorilor**: Folderul se numea `rv-target` cu `provide 'qb-target'` — resursele nu găseau exporturile
|
||||
- **Fix**: Folder redenumit la `qb-target` (cum era distribuit ld-target original)
|
||||
- **provide qtarget**: Adăugat `provide 'qtarget'` în fxmanifest.lua pt compatibilitate cu `17mov_Electrician`
|
||||
- **Demo peds cleanup**: `Config.Peds = {}` (golit tabel demo Lunny)
|
||||
- **Blue branding NUI**: `#00F8B9` → `#5c97f7` în style.css, interaction.css, script.js, index.html
|
||||
- **DrawSprite albastru**: Zone markers RGB(92,151,247) în client.lua
|
||||
- **Fresh copy**: client.lua și NUI copiate proaspăt din `_preLoad/ld-target/Standalone/`
|
||||
- **F8 curat**: Toate erorile `No such export` rezolvate
|
||||
|
||||
**Fișiere modificate:**
|
||||
| Acțiune | Fișier |
|
||||
|---------|--------|
|
||||
| 🔄 REDENUMIT | `rv-target/` → `qb-target/` (folder rename) |
|
||||
| ✏️ MOD | `qb-target/fxmanifest.lua` — name='qb-target', provide 'qtarget' |
|
||||
| ✏️ MOD | `qb-target/init.lua` — Config.Peds = {} |
|
||||
| ✏️ MOD | `qb-target/client.lua` — DrawSprite RGB(92,151,247) albastru |
|
||||
| ✏️ MOD | `qb-target/html/style.css` — #00F8B9 → #5c97f7 |
|
||||
| ✏️ MOD | `qb-target/html/interaction.css` — #00F8B9 → #5c97f7 |
|
||||
| ✏️ MOD | `qb-target/html/script.js` — #00F8B9 → #5c97f7 |
|
||||
| ✏️ MOD | `qb-target/html/index.html` — #00F8B9 → #5c97f7 |
|
||||
|
||||
---
|
||||
|
||||
## 2026-04-03 — Stabilizare Post-Migrare Quasar Inventory + Notify Centralizat
|
||||
|
||||
### 🔧 Fix: qb-core Post-Update Recovery (Quasar fork a suprascris custom changes)
|
||||
@@ -20,6 +55,15 @@ git tkn: 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
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/client/events.lua` — Override `QBCore:Notify` event → `exports['17mov_Hud']:ShowNotification()` (linia ~193)
|
||||
- **Efect:** TOATE resursele de pe server afișează notificări prin 17mov_Hud automat, fără modificări individuale
|
||||
|
||||
### 🎯 Suprimare DrawText [E] Global + qb-target Migration
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/client/drawtext.lua` — **SUPRIMAT GLOBAL** — toate funcțiile DrawText/ChangeText/HideText/KeyPressed sunt no-ops. Resursele nu mai pot afișa prompt-uri [E]. Exporturile rămân funcționale (nu crashuiesc), dar nu fac nimic.
|
||||
- ✏️ `resources/[framework]/[addons]/[housing]/qs-housing/client/custom/framework/qb.lua` — DrawText3D/DrawText3Ds/DrawTextBoard suprimare condițională: când `Config.UseTarget = true`, funcțiile devin no-ops (elimină textele [E] din codul encrypted)
|
||||
- ✏️ `resources/[framework]/[addons]/[housing]/qs-housing/client/custom/target/qb-target.lua` — Adăugat BoxZone qb-target pe NPC-ul Real Estate + floating text "Agent Imobiliar" deasupra capului (utilizează native GTA, nu DrawText3D suprimat)
|
||||
- **Efect:** Prompt-urile [E] au dispărut de pe tot serverul. Interacțiunile se fac prin qb-target (dot/eye target). Resursele cu `Config.UseTarget` rămân de setat individual pe `true` pe rând.
|
||||
|
||||
### ⏰ Time Freeze la 14:00
|
||||
- ✏️ `resources/[framework]/[addons]/qb-weathersync/config.lua` — `Config.BaseTime = 14`, `Config.FreezeTime = true` (server locked la 14:00)
|
||||
|
||||
### 📋 Workflow & Rulebook Updates
|
||||
- ✏️ `.agents/workflows/rulebook.md` — Regula 5 rescrisă complet: workflow obligatoriu `/resource-update`, qb-core checklist cu 7 puncte
|
||||
- 🆕 `.agents/workflows/resource-update.md` — Workflow nou: git diff înainte/după, cross_resource_modifications.md check, post-update verificare
|
||||
@@ -43,6 +87,10 @@ git tkn: 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
|
||||
| 🆕 NOU | `.agents/workflows/resource-update.md` |
|
||||
| ✏️ MOD | `.agents/workflows/rulebook.md` — regula 5 extinsă |
|
||||
| ✏️ MOD | `cross_resource_modifications.md` — 7 puncte checklist qb-core |
|
||||
| ✏️ SUPRIMAT | `qb-core/client/drawtext.lua` — DrawText/HideText no-ops global |
|
||||
| ✏️ MOD | `qs-housing/client/custom/framework/qb.lua` — DrawText3D no-op când UseTarget=true |
|
||||
| ✏️ MOD | `qs-housing/client/custom/target/qb-target.lua` — +NPC Real Estate target + floating text |
|
||||
| ✏️ MOD | `qb-weathersync/config.lua` — time freeze 14:00 |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -114,3 +114,90 @@ resources/[framework]/[core]/qb-core/shared/items.lua ← +chain, +vest, +brac
|
||||
resources/[framework]/[core]/qb-core/server/player.lua ← playertables: -apartments, -phone_messages
|
||||
resources/[framework]/[core]/[inventory]/qs-inventory/config/config.lua ← lang, servername, debug
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Feature: Global [E] Prompt Suppression → qb-target (2026-04-03)
|
||||
|
||||
### ⚠️ CRITICAL: Checklist la Update qb-core (drawtext)
|
||||
Când se face update la `qb-core`, verifică:
|
||||
- **`client/drawtext.lua`** → TOATE funcțiile sunt no-ops (DrawText, ChangeText, HideText, KeyPressed). La update, Quasar va restaura funcțiile originale!
|
||||
|
||||
### Fișiere modificate:
|
||||
|
||||
| Fișier | Resursă | Ce s-a modificat |
|
||||
|--------|---------|------------------|
|
||||
| `client/drawtext.lua` | `qb-core` | **SUPRIMAT GLOBAL** — DrawText/ChangeText/HideText/KeyPressed sunt no-ops cu `function() end`. Exporturile există dar nu fac nimic. |
|
||||
|
||||
### Note:
|
||||
- Supresia este globală — NICIO resursă nu poate afișa prompt-uri [E] prin qb-core exports
|
||||
- Resursele nu crashuiesc, dar textul nu apare
|
||||
- Aceasta forțează migrarea la qb-target (dot/eye target) pe tot serverul
|
||||
- Resursele trebuie setate individual cu `Config.UseTarget = true`
|
||||
|
||||
---
|
||||
|
||||
## Feature: qs-housing qb-target Migration (2026-04-03)
|
||||
|
||||
### ⚠️ CRITICAL: Checklist la Update qs-housing
|
||||
Când se face update la `qs-housing`, verifică:
|
||||
1. **`client/custom/framework/qb.lua`** → DrawText3D/DrawText3Ds/DrawTextBoard sunt no-ops când `Config.UseTarget = true`. Update-ul Quasar va restaura funcțiile originale!
|
||||
2. **`client/custom/target/qb-target.lua`** → BoxZone `rv_realestate_npc` + floating text "Agent Imobiliar" pe NPC Real Estate. Secțiunea RED VALLEY de la sfârșitul fișierului!
|
||||
|
||||
### Fișiere modificate:
|
||||
|
||||
| Fișier | Resursă | Ce s-a modificat |
|
||||
|--------|---------|------------------|
|
||||
| `client/custom/framework/qb.lua` | `qs-housing` | DrawText3D/DrawText3Ds/DrawTextBoard devin no-ops condițional (doar când `Config.UseTarget = true`). Codul encrypted apelează aceste funcții native GTA, deci suprimarea din qb-core nu le prindea. |
|
||||
| `client/custom/target/qb-target.lua` | `qs-housing` | Adăugat BoxZone qb-target pe NPC-ul Real Estate (`rv_realestate_npc`) la coordonatele din `Config.RealeStateNPC.location`. Opțiune: "Open House Browser" (execută `/housebrowser`). Floating text nativ "Agent Imobiliar" cu LOS check. |
|
||||
|
||||
### NPC Real Estate — Configurare:
|
||||
- **Model:** `a_m_m_business_01` (din `Config.RealeStateNPC.pedModel`)
|
||||
- **Locație:** `vec4(-253.978027, -970.457153, 31.217529, 161.574799)` (din `Config.RealeStateNPC.location`)
|
||||
- **Target zone:** BoxZone 1.5×1.5, distance 2.5
|
||||
- **Floating text:** Native GTA rendering, LOS check, 15m range
|
||||
|
||||
---
|
||||
|
||||
## Feature: Time Freeze 14:00 (2026-04-03)
|
||||
|
||||
### Fișiere modificate:
|
||||
|
||||
| Fișier | Resursă | Ce s-a modificat |
|
||||
|--------|---------|------------------|
|
||||
| `config.lua` | `qb-weathersync` | `Config.BaseTime = 14`, `Config.FreezeTime = true` — server locked la ora 14:00 permanent |
|
||||
|
||||
### Note:
|
||||
- Necesită restart complet de server (ensure nu funcționează)
|
||||
- `Config.RealTimeSync` era deja `false` (setat 2026-03-28)
|
||||
|
||||
---
|
||||
|
||||
## Feature: qb-target Migration (ld-target engine — 2026-04-08)
|
||||
|
||||
### ⚠️ CRITICAL: Checklist la Update qb-target
|
||||
Când se face update/înlocuire la `qb-target`, verifică:
|
||||
1. **`fxmanifest.lua`** → `provide 'qtarget'` TREBUIE să existe (17mov_Electrician depinde de el)
|
||||
2. **`init.lua`** → `Config.Peds = {}` (fără demo NPC-uri Lunny)
|
||||
3. **`client.lua`** → DrawSprite zone markers: RGB(92, 151, 247) = albastru
|
||||
4. **`html/`** → Culorile NUI: `#5c97f7` albastru (style.css, interaction.css, script.js, index.html)
|
||||
|
||||
### Fișiere modificate:
|
||||
|
||||
| Fișier | Resursă | Ce s-a modificat |
|
||||
|--------|---------|------------------|
|
||||
| `fxmanifest.lua` | `qb-target` | `name='qb-target'`, `provide 'qtarget'` adăugat |
|
||||
| `init.lua` | `qb-target` | `Config.Peds = {}` — golit tabel demo peds Lunny |
|
||||
| `client.lua` | `qb-target` | DrawSprite zone markers: `(255,255,255)` → `(92,151,247)` albastru |
|
||||
| `html/style.css` | `qb-target` | `#00F8B9` → `#5c97f7` |
|
||||
| `html/interaction.css` | `qb-target` | `#00F8B9` → `#5c97f7` |
|
||||
| `html/script.js` | `qb-target` | `#00F8B9` → `#5c97f7` |
|
||||
| `html/index.html` | `qb-target` | `#00F8B9` → `#5c97f7` |
|
||||
|
||||
### Note:
|
||||
- Folderul TREBUIE să se numească `qb-target` (nu `rv-target`) — resursele terțe hardcode `exports['qb-target']`
|
||||
- `provide 'qtarget'` permite `exports['qtarget']` să rezolve la același resource
|
||||
- Engine-ul este ld-target open-source (NP 4.0 inspired)
|
||||
- Zone markers (puncte la distanță) funcționează doar pe **Zones** (BoxZone, CircleZone), NU pe entități adăugate cu `AddTargetEntity()`
|
||||
- Sursele originale se găsesc în `_preLoad/ld-target/Standalone/`
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Red Valley Roleplay — Resource Dependency Map
|
||||
|
||||
> Scanat din codul sursă: exports, TriggerEvent, TriggerServerEvent, TriggerClientEvent.
|
||||
> Ultima actualizare: 2026-04-01
|
||||
> Ultima actualizare: 2026-04-10
|
||||
|
||||
---
|
||||
|
||||
@@ -305,12 +305,16 @@
|
||||
└── Dependințe → niciunul (standalone stream resource)
|
||||
```
|
||||
|
||||
### Dacă modifici `rv-qb-target` (Target QoL — în dezvoltare):
|
||||
### Dacă modifici `qb-target` (ld-target engine):
|
||||
```
|
||||
├── Depinde de → qb-target (exports + event trigger)
|
||||
├── Funcționalitate → Highlight entități interactabile la ALT
|
||||
├── Vizual → DrawSprite deasupra capului (vizibil prin ziduri)
|
||||
└── CPU → Zero când inactiv (event-driven)
|
||||
├── Engine → ld-target (NP 4.0 inspired, open-source)
|
||||
├── Provides → qb-target + qtarget (17mov_Electrician)
|
||||
├── Exports → AddBoxZone, AddTargetEntity, AddTargetModel, etc.
|
||||
├── Consumatori → t1ger_lib, toate resursele cu target options
|
||||
├── NUI → html/ (style.css, interaction.css, script.js)
|
||||
├── Texturi → stream/ (circle_marker.ytd, lunny_ui.ytd)
|
||||
├── Zone markers → DrawSprite pe Zones (nu pe entități externe)
|
||||
└── Dependență → PolyZone
|
||||
```
|
||||
|
||||
---
|
||||
@@ -359,7 +363,6 @@ graph TD
|
||||
TL --> |society| QM
|
||||
|
||||
RVP[rv-props] --> |prop_rv_tablet| JC[17mov_JobCenter]
|
||||
RVQBT[rv-qb-target] -.-> |exports + events| QBT
|
||||
|
||||
IDC --> |notif| HUD
|
||||
BDS --> |notif| HUD
|
||||
@@ -375,7 +378,6 @@ graph TD
|
||||
style HUD fill:#ff9900,color:#fff
|
||||
style LA fill:#9933cc,color:#fff
|
||||
style RVP fill:#33aa33,color:#fff
|
||||
style RVQBT fill:#33aa33,color:#fff
|
||||
style JC fill:#3399ff,color:#fff
|
||||
```
|
||||
|
||||
@@ -399,4 +401,4 @@ graph TD
|
||||
| Stash/storage | qs-inventory, t1ger_lib |
|
||||
| Phone features | qs-smartphone-pro ↔ pma-voice, qs-vehiclekeys |
|
||||
| Custom props (rv-props) | 17mov_JobCenter (prop_rv_tablet) |
|
||||
| qb-target behavior | rv-qb-target, t1ger_lib, toate resursele cu AddTargetEntity/Model |
|
||||
| qb-target behavior | t1ger_lib, toate resursele cu AddTargetEntity/Model, 17mov_Electrician (qtarget) |
|
||||
|
||||
@@ -113,7 +113,7 @@ const teamMap={"17mov":"17 Movement",wasabi:"Wasabi",quasar:"Quasar",kq:"KuzQual
|
||||
const nodes=[
|
||||
// === QBCORE ===
|
||||
{id:"qb-core",team:"qb",r:32,desc:"Nucleul QBCore — jobs, items, player, events",keywords:"framework core player job item shared"},
|
||||
{id:"qb-target",team:"qb",r:16,desc:"Target system — interact cu entități",keywords:"target interact eye"},
|
||||
{id:"qb-target",team:"qb",r:18,desc:"Target system (ld-target engine) — provides qb-target + qtarget",keywords:"target interact eye ld-target qtarget provide"},
|
||||
{id:"qb-menu",team:"qb",r:10,desc:"Menu system QBCore",keywords:"menu context"},
|
||||
{id:"qb-smallresources",team:"qb",r:14,desc:"Consumables, AFK, seatbelt etc",keywords:"consumable food drink stress seatbelt"},
|
||||
{id:"qb-input",team:"qb",r:8,desc:"Input dialog QBCore",keywords:"input dialog form"},
|
||||
@@ -246,6 +246,7 @@ const links=[
|
||||
{s:"wasabi_bridge",t:"qb-core",type:"export",label:"GetCoreObject"},
|
||||
{s:"luxu_admin",t:"qb-core",type:"export",label:"GetCoreObject"},
|
||||
{s:"qb-target",t:"qb-core",type:"export",label:"GetCoreObject"},
|
||||
{s:"17mov_Electrician",t:"qb-target",type:"export",label:"AddTargetEntity (via qtarget provide)"},
|
||||
{s:"qb-menu",t:"qb-core",type:"export",label:"GetCoreObject"},
|
||||
{s:"qb-smallresources",t:"qb-core",type:"export",label:"GetCoreObject"},
|
||||
{s:"qb-management",t:"qb-core",type:"export",label:"GetCoreObject"},
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
| **Mechanic Job** | t1ger_mechanic |
|
||||
| **HUD** | 17mov_Hud |
|
||||
| **Voice** | pma-voice |
|
||||
| **Target System** | qb-target |
|
||||
| **Target System** | qb-target (ld-target engine, provides qtarget) |
|
||||
| **Server Port** | 30110 |
|
||||
| **Max Clients** | 8 |
|
||||
| **Game Build** | 3570 |
|
||||
@@ -34,12 +34,28 @@
|
||||
|
||||
```
|
||||
resources/
|
||||
├── [cfx-default]/ # CFX default resources
|
||||
├── [cfx-default]/
|
||||
│ ├── [local]/ # .gitkeep (empty)
|
||||
│ ├── [managers]/
|
||||
│ │ ├── mapmanager/
|
||||
│ │ └── spawnmanager/
|
||||
│ └── [system]/
|
||||
│ ├── [builders]/
|
||||
│ ├── baseevents/
|
||||
│ └── sessionmanager/
|
||||
├── [framework]/
|
||||
│ ├── [core]/
|
||||
│ │ ├── qb-core/ # QBCore framework
|
||||
│ │ ├── qb-target/ # Target system
|
||||
│ │ ├── qs-inventory/ # Quasar inventory
|
||||
│ │ ├── qb-core/ # QBCore framework (Quasar fork 1.3.0)
|
||||
│ │ ├── qb-target/ # ★ Target system (ld-target engine, provides qtarget)
|
||||
│ │ ├── qb-menu/ # QBCore menu
|
||||
│ │ ├── qb-smallresources/ # QBCore small resources
|
||||
│ │ ├── ox_lib/ # Overextended lib
|
||||
│ │ ├── [inventory]/ # ★ Quasar Advanced Inventory v1.5.66
|
||||
│ │ │ ├── qs-inventory/ # Resursa principală
|
||||
│ │ │ ├── qs-inventory-objects/ # Props stream
|
||||
│ │ │ ├── qs-advancedshops/ # Shopuri avansate
|
||||
│ │ │ ├── [sql]/ # SQL importat
|
||||
│ │ │ └── [dlc]/
|
||||
│ │ └── no-npc/ # Remove ambient NPCs
|
||||
│ ├── [base]/
|
||||
│ │ ├── [auth]/
|
||||
@@ -47,20 +63,20 @@ resources/
|
||||
│ │ │ ├── 17mov-plugin-char-creator/ # Spawn outfit in creator
|
||||
│ │ │ └── connectqueue/ # Queue system
|
||||
│ │ ├── [ui]/
|
||||
│ │ │ ├── 17mov_Hud/ # HUD system
|
||||
│ │ │ └── rv-chat/ # ★ Custom RV chat (VPS only, lipsește din LOCAL — trebuie copiat)
|
||||
│ │ │ └── 17mov_Hud/ # HUD system
|
||||
│ │ └── [jobs]/
|
||||
│ │ ├── 17mov_JobCenter/ # Job listing & apply (NUI, FXAP encrypted)
|
||||
│ │ │ ├── Config.lua # ★ Editable: jobs, blips, NUI settings
|
||||
│ │ │ ├── bridge/qb/server/main.lua # ★ Editable: SetPlayerJob (license check here)
|
||||
│ │ │ ├── bridge/qb/client/main.lua # ★ Editable: events, UI hooks
|
||||
│ │ │ ├── server/utils.lua # ★ Editable: FormatMoney
|
||||
│ │ │ └── client/utils.lua # ★ Editable: target system
|
||||
│ │ ├── [citizen]/
|
||||
│ │ │ ├── 17mov_GarbageCollector/ # Garbage job (★ license check in server/functions.lua)
|
||||
│ │ │ ├── 17mov_BuilderJob/ # Builder job
|
||||
│ │ │ ├── 17mov_Deliverer/ # Delivery job
|
||||
│ │ │ ├── 17mov_Postman/ # Postman job
|
||||
│ │ │ ├── 17mov_Electrician/ # Electrician job (uses qtarget)
|
||||
│ │ │ ├── 17mov_GarbageCollector/ # Garbage job (★ license check)
|
||||
│ │ │ ├── 17mov_Lumberjack/ # Lumberjack job
|
||||
│ │ │ ├── 17mov_Miner/ # Miner job
|
||||
│ │ │ ├── 17mov_OilRig/ # Oil rig job
|
||||
│ │ │ ├── 17mov_Postman/ # Postman job
|
||||
│ │ │ ├── 17mov_TreasureHunter/ # Treasure hunter job
|
||||
│ │ │ ├── 17mov_WindowCleaning/ # Window cleaning job
|
||||
│ │ │ └── aty_busjob/ # Bus driver job
|
||||
│ │ └── [legal]/
|
||||
│ │ ├── [police]/
|
||||
@@ -69,49 +85,72 @@ resources/
|
||||
│ │ │ ├── codem-dispatch/ # Dispatch alerts
|
||||
│ │ │ └── codem-mdtProp/ # MDT prop
|
||||
│ │ ├── [ambulance]/
|
||||
│ │ │ └── wasabi_ambulance/ # Ambulance job (provides qb-ambulancejob)
|
||||
│ │ │ └── wasabi_ambulance/ # Ambulance job
|
||||
│ │ ├── [mechanic]/
|
||||
│ │ │ └── t1ger_mechanic/ # Mechanic job
|
||||
│ │ │ ├── t1ger_mechanic/ # Mechanic job
|
||||
│ │ │ ├── t1ger_carlift/ # Car lift
|
||||
│ │ │ ├── t1ger_mechanicprops/ # Mechanic props
|
||||
│ │ │ └── jo_towtruck/ # Tow truck
|
||||
│ │ └── [tuner]/
|
||||
│ │ └── t1ger_tuningsystem/ # Tuning system
|
||||
│ │ ├── t1ger_tuningsystem/ # Tuning system
|
||||
│ │ └── t1ger_lib/ # T1GER library
|
||||
│ ├── [depends]/
|
||||
│ │ ├── bob74_ipl/ # IPL loader v2.6.0 (interiors, DLC maps)
|
||||
│ │ ├── ox_lib/ # Overextended lib
|
||||
│ │ ├── Howdy-Minigame/ # Minigame lib
|
||||
│ │ ├── MugShotBase64/ # Mugshot generation
|
||||
│ │ ├── PolyZone/ # Zone management
|
||||
│ │ ├── VehicleDeformation/ # Vehicle damage
|
||||
│ │ ├── bob74_ipl/ # IPL loader v2.6.0
|
||||
│ │ ├── interact-sound/ # Sound interactions
|
||||
│ │ ├── mhacking/ # Hacking minigame
|
||||
│ │ ├── oxmysql/ # MySQL adapter
|
||||
│ │ ├── phone-radio/ # Phone radio
|
||||
│ │ ├── phone-recorder/ # Phone recorder
|
||||
│ │ ├── phone-render/ # Phone render
|
||||
│ │ ├── progressbar/ # Progress bars
|
||||
│ │ ├── screenshot-basic/ # Screenshots
|
||||
│ │ ├── VehicleDeformation/ # Vehicle damage
|
||||
│ │ ├── wasabi_bridge/ # Wasabi framework bridge
|
||||
│ │ └── xsound/ # Sound system
|
||||
│ └── [addons]/
|
||||
│ ├── 0r_idcard/ # ID card system
|
||||
│ ├── bit-driverschool/ # Driving school (licences in metadata.licences)
|
||||
│ ├── rv-license-dialog/ # ★ RED VALLEY: NUI dialog permis de conducere
|
||||
│ ├── qs-advancedgarages/ # Garages (Quasar)
|
||||
│ ├── qs-housing/ # Housing (Quasar)
|
||||
│ ├── qs-shops/ # Shops (Quasar)
|
||||
│ ├── kq_* / [kq]/ # Kuzkay addons (LOCAL: scattered, VPS: grouped in [kq]/)
|
||||
│ └── qb-weathersync/ # Weather & time
|
||||
│ ├── [housing]/
|
||||
│ │ ├── qs-housing/ # Housing (Quasar)
|
||||
│ │ ├── qs-weed/ # Weed growing
|
||||
│ │ └── [dlc/img/props/shells/sql]/ # Housing assets
|
||||
│ ├── [notify]/
|
||||
│ │ └── qs-notify/ # Quasar notifications
|
||||
│ ├── [quasar]/
|
||||
│ │ ├── qs-advancedgarages/ # Garages v5.0.20
|
||||
│ │ ├── qs-shops/ # Shops
|
||||
│ │ ├── qs-smartphone-pro/ # Smartphone PRO
|
||||
│ │ └── qs-vehiclekeys/ # Vehicle keys v4.0.13
|
||||
│ ├── ac-carcontrol/ # Car control
|
||||
│ ├── bit-driverschool/ # Driving school
|
||||
│ ├── qb-input/ # QBCore input dialog
|
||||
│ ├── qb-interior/ # QBCore interiors
|
||||
│ ├── qb-management/ # Boss/gang menus
|
||||
│ ├── qb-weathersync/ # Weather & time
|
||||
│ ├── rv-devtools/ # ★ RV dev tools
|
||||
│ ├── rv-itemsonback/ # ★ RV items on back
|
||||
│ ├── rv-license-dialog/ # ★ RV license dialog NUI
|
||||
│ ├── rv-maphold/ # ★ RV map hold
|
||||
│ └── svdden_banking/ # Banking system
|
||||
├── [stream]/
|
||||
│ ├── [admin-outfit]/AdminPack/ # Admin clothing streaming
|
||||
│ ├── [mlos]/ # Map interiors
|
||||
│ │ ├── soloty-southside-custom/ # Mechanic shop MLO
|
||||
│ │ ├── rfc_los_santos_customs/ # Los Santos Customs MLO
|
||||
│ │ ├── cfx-fm-fleeca-banks-v2/ # Fleeca banks
|
||||
│ │ ├── cfx-fm-mrpd/ # Mission Row PD
|
||||
│ │ └── ... # + hospital, prison, gas stations, etc.
|
||||
│ └── [vehs]/ # Custom vehicles
|
||||
│ ├── [vehs]/ # Custom vehicles
|
||||
│ ├── minimap/ # Custom minimap
|
||||
│ ├── phone-props/ # Phone props
|
||||
│ ├── rv-props/ # RV custom props
|
||||
│ └── squidgame/ # Squid game MLO
|
||||
├── [voice]/
|
||||
│ ├── pma-voice/ # Voice system
|
||||
│ └── codem-radio/ # Radio system (VPS only — NU e pe LOCAL)
|
||||
│ └── pma-voice/ # Voice system
|
||||
└── luxu_admin/ # Admin panel (top-level)
|
||||
```
|
||||
|
||||
### Load Order (`resources.cfg`)
|
||||
```
|
||||
[cfx-default] → ox_lib → [core] → [depends] → [voice] → [auth] → [ui] →
|
||||
[jobs] → [addons] → rv-license-dialog → kq_carheist → [mlos] → [vehs] → minimap → phone-props →
|
||||
[casino] → [stream] → luxu_admin → [weapons]
|
||||
[cfx-default] → ox_lib → [core] → [depends] → [inventory] → [voice] → [auth] → [ui] →
|
||||
[jobs] → [addons] → qs-weaponsonback → rv-license-dialog → kq_carheist →
|
||||
[mlos] → [vehs] → minimap → phone-props → [casino] → [stream] → luxu_admin
|
||||
```
|
||||
|
||||
---
|
||||
@@ -214,8 +253,8 @@ qbcore.god → group.admin → qbcore.admin → qbcore.mod
|
||||
|
||||
- **DB Name**: `red-valley`
|
||||
- **Connection**: `server=127.0.0.1;database=red-valley;userid=root;` (via oxmysql)
|
||||
- **Character Delete** (`qb-core/server/player.lua`): Many default tables commented out (apartments, bank_accounts, crypto_transactions, phone_invoices, phone_messages, player_contacts, player_houses, player_mails) — only `players`, `playerskins`, `player_outfits`, `player_vehicles` active
|
||||
- **⚠️ PENDING**: `crypto_history` table has ~2,343 rows causing oversized queries — needs periodic cleanup or LIMIT
|
||||
- **Character Delete** (`qb-core/server/player.lua` L541): `playertables` — comentat `apartments` (tabel inexistent) și `phone_messages` (coloana citizenid nu există, qs-smartphone-pro). Restul active: players, bank_accounts, crypto_transactions, phone_invoices, playerskins, player_contacts, player_houses, player_mails, player_outfits, player_vehicles
|
||||
- **⚠️ PENDING**: `crypto_history` table has ~3,971 rows causing oversized queries — needs periodic cleanup or LIMIT
|
||||
|
||||
---
|
||||
|
||||
@@ -433,9 +472,26 @@ Toate resursele 17mov au fișiere encrypted (FXAP) dar următoarele sunt **edita
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Interaction System (qb-target)
|
||||
## 🎯 Interaction System (qb-target / ld-target engine)
|
||||
|
||||
De la **2026-03-31**, toate resursele folosesc **qb-target** (third-eye system) ca sistem de interacțiune.
|
||||
De la **2026-04-08**, sistemul de target este **qb-target** bazat pe **ld-target** (engine open-source NP 4.0 inspired).
|
||||
|
||||
### Fișiere Cheie
|
||||
| Fișier | Scop |
|
||||
|--------|------|
|
||||
| `fxmanifest.lua` | `provide 'qtarget'` — compatibilitate cu 17mov_Electrician |
|
||||
| `client.lua` | Engine principal (raycast, exports, zone markers) |
|
||||
| `init.lua` | Config (DrawSprite=true, Peds={}) |
|
||||
| `interaction/interaction.lua` | 3-stage interaction (dot→hexagon→menu) |
|
||||
| `html/` | NUI (style.css, interaction.css, script.js, index.html) |
|
||||
| `stream/` | circle_marker.ytd + lunny_ui.ytd (texturi interacțiune) |
|
||||
|
||||
### Exports Disponibile
|
||||
`AddBoxZone`, `AddCircleZone`, `AddPolyZone`, `AddEntityZone`, `AddComboZone`, `RemoveZone`,
|
||||
`AddTargetEntity`, `RemoveTargetEntity`, `AddTargetModel`, `RemoveTargetModel`, `AddTargetBone`, `RemoveTargetBone`,
|
||||
`AddGlobalPed`, `AddGlobalVehicle`, `AddGlobalObject`, `AddGlobalPlayer`,
|
||||
`RemoveGlobalPed`, `RemoveGlobalVehicle`, `RemoveGlobalObject`, `RemoveGlobalPlayer`,
|
||||
`SpawnPed`, `RemoveSpawnedPed`, `DeletePeds`, `IsTargetActive`, `IsTargetSuccess`
|
||||
|
||||
### Config Flag per DevTeam
|
||||
| DevTeam | Config Key | Valoare |
|
||||
@@ -451,6 +507,11 @@ De la **2026-03-31**, toate resursele folosesc **qb-target** (third-eye system)
|
||||
### Excepție
|
||||
- **qs-advancedgarages** — nu suportă qb-target (doar ox_target / qb-radialmenu / none)
|
||||
|
||||
### Zone Markers
|
||||
- Circle dots apar pe **Zones** (BoxZone, CircleZone) când ALT e ținut apăsat
|
||||
- Entitățile adăugate cu `AddTargetEntity()` NU au markere la distanță (design original ld-target)
|
||||
- Culoare DrawSprite: RGB(92, 151, 247) = #5c97f7 albastru
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ 17mov_Hud — API Reference
|
||||
@@ -507,11 +568,72 @@ exports["17mov_Hud"]:ToggleComponentVisibility("name", bool) -- arată/ascund
|
||||
- **Consumat de**: 17mov_JobCenter (tabletă animație)
|
||||
- **Tip**: Standalone (stream, zero cod Lua)
|
||||
|
||||
### rv-qb-target (Target QoL — în dezvoltare)
|
||||
- **Locație**: `resources/[framework]/[core]/rv-qb-target/`
|
||||
- **Scop**: Highlight entități interactabile când qb-target e activ (ALT)
|
||||
- **Design**: DrawSprite deasupra capului, vizibil prin ziduri, doar entități cu target înregistrat
|
||||
- **Depinde de**: qb-target (exports + event trigger)
|
||||
- **Status**: Planificat, research complet, cod nescris
|
||||
### qb-target (ld-target engine — migrat 2026-04-08)
|
||||
- **Locație**: `resources/[framework]/[core]/qb-target/`
|
||||
- **Engine**: ld-target (open-source, NP 4.0 inspired)
|
||||
- **provide**: `qtarget` (compatibilitate 17mov_Electrician)
|
||||
- **Config.Peds**: Golit (fără demo NPC-uri Lunny)
|
||||
- **Culori NUI**: Teal original (#00F8B9) — planificat switch la #5c97f7 albastru
|
||||
- **Dependență**: PolyZone
|
||||
- **Status**: ✅ Funcțional complet, exports verificate, F8 curat
|
||||
|
||||
### rv-itemsonback (Items vizibile pe corp + Admin Menu)
|
||||
- **Locație**: `resources/[framework]/[addons]/rv-itemsonback/`
|
||||
- **Scop**: Afișare props pe corpul jucătorului din inventar (medikit, etc.) + admin menu live edit
|
||||
- **Fișiere**: `fxmanifest.lua`, `config.lua`, `client.lua`, `server.lua`, `data/items.json`
|
||||
- **Dependențe**: ox_lib, qb-core
|
||||
- **Manifest**: `fx_version 'bodacious'` (NU cerulean — nu încarcă scripturile!)
|
||||
- **Admin Menu**: `/itemsonback` — ox_lib context menu
|
||||
- Search items din QBCore.Shared.Items
|
||||
- Ajustare live pos/rot cu preview transparent
|
||||
- Selectare bone (pelvis, spine, etc.)
|
||||
- Salvare persistentă în `data/items.json`
|
||||
- `/clearpreview` — cleanup emergency prop
|
||||
- **Auto-cleanup**: Safety thread curăță preview-ul dacă rămâne blocat (3s)
|
||||
- **Disable Idle**: `InvalidateIdleCam()` + `N_0xf4f2c0d4ee209e20()` + `SetPedCanPlayAmbientAnims(false)`
|
||||
- **Target Dummy**: `/spawndummy` (NPC random, stă pe loc, rănibil, rămâne mort), `/killdummy` (cleanup)
|
||||
- **Ensure**: În `[addons]` folder, pornește cu `ensure [addons]`
|
||||
|
||||
### qs-inventory Fixes (2026-04-01)
|
||||
- **Config.Genders**: Adăugat `[0] = 'Male', [1] = 'Female'` — QBCore folosește 0-indexed, Quasar 1-indexed
|
||||
- **Config.Framework**: Forțat `'qb'` (auto-detect eșua)
|
||||
- **Config.Debug**: `false` (elimină spam consolă)
|
||||
- **RemoveItem.lua**: `pcall` la `handleDeleteItem` export (previne crash qs-smartphone-pro vechi)
|
||||
|
||||
### Quasar Advanced Inventory Migration (2026-04-02)
|
||||
- **qb-core fork**: Instalat Quasar pre-configured qb-core 1.3.0
|
||||
- **StarterItems** (`qb-core/shared/main.lua` L6): DOAR `phone` + `map` (id_card de la mugshot, driver_license de la școală)
|
||||
- **Clothing items** (`qb-core/shared/items.lua`): Adăugat `chain`, `vest`, `bracelets`, `watch` (copiate din qs-inventory items.lua)
|
||||
- **playertables** (`qb-core/server/player.lua` L541): Comentat `apartments` + `phone_messages`
|
||||
- **qs-inventory config**: `Language='ro'`, `ServerName='RED VALLEY'`, `Debug=true` (temporar)
|
||||
- **qs-housing SQL**: Importat din docs + folder (houselocations, player_houses, house_decorations, etc.)
|
||||
|
||||
### ⚠️ CRITICAL: Checklist la Update qb-core
|
||||
1. `shared/main.lua` → StarterItems: DOAR phone + map
|
||||
2. `server/player.lua` → playertables: FĂRĂ apartments, FĂRĂ phone_messages
|
||||
3. `shared/items.lua` → Clothing: chain, vest, bracelets, watch TREBUIE să existe
|
||||
|
||||
---
|
||||
|
||||
## 📜 Changelog Summary (reverse chronological)
|
||||
|
||||
| Date | Focus |
|
||||
|------|-------|
|
||||
| 2026-04-10 | **Resource cleanup**: mutat resurse neutilizate în backup, verificat structura completă, actualizat knowledge base |
|
||||
| 2026-04-08 | **qb-target migration** (ld-target engine): folder rename rv-target→qb-target, provide qtarget, demo peds cleanup, blue branding NUI (#5c97f7), fresh copy din ld-target original, F8 erori rezolvate (toate exporturile funcționale) |
|
||||
| 2026-04-02 | **Quasar Advanced Inventory migration** (v1.5.66), qb-core fork Quasar 1.3.0, qs-housing SQL import, clothing items fix (+chain/vest/bracelets/watch), playertables fix (-apartments/-phone_messages), StarterItems fix (phone+map only), rv-itemsonback v2.0 |
|
||||
| 2026-03-30 | NUI Simulator standalone (Node.js), Resource comparison LOCAL vs VPS (raport complet), qs-inventory item icons sync (7 imagini VPS→LOCAL), rv-chat descoperit pe VPS (lipsește local) |
|
||||
| 2026-03-29 | wasabi_police install + config review, console cleanup (10 resurse), start.bat v2.0, bit-driverschool fix, 17mov banner off, bob74_ipl v2.6.0, Synapse Map, License Check system (Job Center + GarbageCollector), rv-license-dialog NUI |
|
||||
| 2026-03-28 | Driving School integration, ID Card notifications, Weather sync |
|
||||
| 2026-03-27 | Spawn Outfit System, Character Delete fix, Skin presets, Char Creator plugin |
|
||||
| 2026-03-04 | Mechanic Job Outfit System (auto-equip on duty) |
|
||||
| 2026-03-03 | Mechanic Garage & Keys, 6 Bug Fixes, 17mov update v1.2.4→v1.2.5 |
|
||||
| 2026-03-02 | Server Architecture Research, Cfx.re Audit, Admin Outfit Research |
|
||||
| 2026-03-01 | HUD Migration (jg-hud→17mov), Luxu Admin update, No-NPC, QBCore updates |
|
||||
| 2026-02-27 | Luxu Admin install, rv-mdt creation, BMW M3 F80, QBCore server events refactor |
|
||||
| 2026-02-19 | Remove mChat, resource updates |
|
||||
| 2026-02-17 | QS-Inventory core update |
|
||||
| 2026-02-02 | Remove codem-pausemenu, vehicle swaps, TLS |
|
||||
| 2026-01-19 | Helnius Xero24 Gas Station MLO |
|
||||
| 2026-01-18 | ConnectQueue, Wasabi Police, Bank MLO, Codem Radio, QS-Shops |
|
||||
| 2026-01-07 | Cache cleanup |
|
||||
|
||||
@@ -10,11 +10,7 @@ ensure [jobs]
|
||||
ensure [addons]
|
||||
ensure qs-weaponsonback # safety net ne asiguram ca se incarca
|
||||
ensure rv-license-dialog
|
||||
ensure kq_carheist
|
||||
ensure [mlos]
|
||||
ensure [vehs]
|
||||
ensure minimap
|
||||
ensure phone-props
|
||||
ensure [casino]
|
||||
ensure [stream]
|
||||
ensure luxu_admin
|
||||
@@ -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 .. '"/> {{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>
|
||||
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 352 B |
|
Before Width: | Height: | Size: 322 B |
|
Before Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 304 B |
|
Before Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 453 B |
|
Before Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 568 B |
|
Before Width: | Height: | Size: 690 B |
|
Before Width: | Height: | Size: 349 B |
|
Before Width: | Height: | Size: 596 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 761 B |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 903 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
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")
|
||||
]]
|
||||
@@ -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)
|
||||
@@ -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
|
||||
}
|
||||
@@ -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",
|
||||
}
|
||||
|
||||