Compare commits
19 Commits
e8141d030a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 1bcf0d9282 | |||
| 3dcff3ce6d | |||
| 24b682532e | |||
| 5e23b3e966 | |||
| 4d73d4a013 | |||
| e756e29294 | |||
| 06414ed181 | |||
| 818eadbd46 | |||
| 373d179cfb | |||
| a3d124dc45 | |||
| 8cf412c266 | |||
| e2b6726108 | |||
| cefe558c9a | |||
| 978c9bc759 | |||
| 096ccb6399 | |||
| b2060cfbb2 | |||
| 1ee53356fc | |||
| ddc4d116db | |||
| 6112500590 |
@@ -10,3 +10,9 @@ cache/
|
||||
nui-simulator/node_modules/
|
||||
resources/luxu_admin/logs/
|
||||
cache/files/17mov_JobCenter/resource.rpf
|
||||
_fix_dupes.py
|
||||
_check_dupes.py
|
||||
_find_dupes.py
|
||||
artifacts/crashes/136f1640-ac9a-4693-824a-5ccd58f1b359-full.dmp
|
||||
artifacts/crashes/136f1640-ac9a-4693-824a-5ccd58f1b359.dmp
|
||||
/artifacts/crashes
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import re, os
|
||||
|
||||
def extract_items(path):
|
||||
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
content = f.read()
|
||||
return set(re.findall(r"\['([a-zA-Z0-9_]+)'\]\s*=\s*\{\s*\['name'\]", content))
|
||||
|
||||
preload_path = r'E:\FiveMserver\server\_preLoad\qs-inventory\[inventory]\qs-inventory\shared\items.lua'
|
||||
qbcore_path = r'E:\FiveMserver\server\resources\[framework]\[core]\qb-core\shared\items.lua'
|
||||
|
||||
if not os.path.exists(preload_path):
|
||||
print(f'PRELOAD NOT FOUND: {preload_path}')
|
||||
else:
|
||||
pi = extract_items(preload_path)
|
||||
qi = extract_items(qbcore_path)
|
||||
|
||||
only_preload = sorted(pi - qi)
|
||||
only_qbcore = sorted(qi - pi)
|
||||
|
||||
print(f'Preload items: {len(pi)}')
|
||||
print(f'QBCore items: {len(qi)}')
|
||||
print(f'Common: {len(pi & qi)}')
|
||||
print()
|
||||
print(f'=== ONLY IN PRELOAD ({len(only_preload)}) ===')
|
||||
for item in only_preload:
|
||||
print(f' + {item}')
|
||||
print()
|
||||
print(f'=== ONLY IN QBCORE ({len(only_qbcore)}) ===')
|
||||
for item in only_qbcore:
|
||||
print(f' - {item}')
|
||||
@@ -0,0 +1,24 @@
|
||||
import re
|
||||
|
||||
path = r'E:\FiveMserver\server\resources\[framework]\[core]\qb-core\shared\items.lua'
|
||||
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
broken = []
|
||||
for i, line in enumerate(lines):
|
||||
stripped = line.strip()
|
||||
if "['description']" not in stripped:
|
||||
continue
|
||||
if "['name']" not in stripped:
|
||||
continue
|
||||
# Count single quotes after ['description']
|
||||
idx = stripped.index("['description']")
|
||||
after = stripped[idx:]
|
||||
# Should end with ...'}, or ...'}},
|
||||
# Check if description value has matching quotes
|
||||
if after.count("'") % 2 != 0:
|
||||
broken.append((i+1, stripped[:120]))
|
||||
|
||||
print(f"Found {len(broken)} broken strings:")
|
||||
for ln, txt in broken:
|
||||
print(f" L{ln}: {txt}")
|
||||
@@ -0,0 +1,34 @@
|
||||
import re
|
||||
|
||||
path = r'E:\FiveMserver\server\resources\[framework]\[core]\qb-core\shared\items.lua'
|
||||
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
content = f.read()
|
||||
|
||||
# Fix pattern: find description strings that don't end with closing quote before },
|
||||
# Pattern: ['description'] = 'text without closing quote},
|
||||
# Should be: ['description'] = 'text with closing quote'},
|
||||
|
||||
fixed = 0
|
||||
|
||||
lines = content.split('\n')
|
||||
new_lines = []
|
||||
for line in lines:
|
||||
if "['description']" in line and "['name']" in line:
|
||||
idx = line.index("['description']")
|
||||
after = line[idx:]
|
||||
if after.count("'") % 2 != 0:
|
||||
# Find the last }, and insert closing quote before it
|
||||
# Pattern: some text}, -> some text'},
|
||||
# Or: some text}}, -> some text'}},
|
||||
line = re.sub(r"([^'])\},\s*$", r"\1'},", line)
|
||||
line = re.sub(r"([^'])\}\},\s*$", r"\1'}},", line)
|
||||
# Handle CRLF
|
||||
line = re.sub(r"([^'])\},\r$", r"\1'},\r", line)
|
||||
line = re.sub(r"([^'])\}\},\r$", r"\1'}},\r", line)
|
||||
fixed += 1
|
||||
new_lines.append(line)
|
||||
|
||||
with open(path, 'w', encoding='utf-8') as f:
|
||||
f.write('\n'.join(new_lines))
|
||||
|
||||
print(f"Fixed {fixed} broken description strings")
|
||||
@@ -0,0 +1,95 @@
|
||||
import re, os
|
||||
|
||||
def extract_items_with_defs(path):
|
||||
"""Extract item keys and their full definitions from a lua items file."""
|
||||
with open(path, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
content = f.read()
|
||||
|
||||
items = {}
|
||||
# Match multi-line item blocks: ['key'] = { ... },
|
||||
pattern = r"\['([a-zA-Z0-9_]+)'\]\s*=\s*\{([^}]+)\}"
|
||||
for match in re.finditer(pattern, content):
|
||||
key = match.group(1)
|
||||
body = match.group(2)
|
||||
# Only count items that have ['name'] inside
|
||||
if "['name']" in body:
|
||||
items[key] = body.strip()
|
||||
return items
|
||||
|
||||
def extract_field(body, field):
|
||||
"""Extract a field value from item body."""
|
||||
m = re.search(r"\['" + field + r"'\]\s*=\s*(.+?)(?:,\s*$|,\s*\[)", body, re.MULTILINE)
|
||||
if m:
|
||||
return m.group(1).strip().rstrip(',')
|
||||
# try simpler
|
||||
m = re.search(r"\['" + field + r"'\]\s*=\s*([^,]+)", body)
|
||||
if m:
|
||||
return m.group(1).strip()
|
||||
return None
|
||||
|
||||
def to_qbcore_line(key, body):
|
||||
"""Convert a qs-inventory item block to a qb-core single-line format."""
|
||||
fields = ['name', 'label', 'weight', 'type', 'image', 'unique', 'useable', 'shouldClose', 'combinable', 'description']
|
||||
vals = {}
|
||||
for f in fields:
|
||||
v = extract_field(body, f)
|
||||
if v is not None:
|
||||
vals[f] = v
|
||||
|
||||
# Build the line in qb-core style
|
||||
# Pad the key to align
|
||||
padded_key = f"['{key}']"
|
||||
padded_key = padded_key.ljust(40)
|
||||
|
||||
parts = []
|
||||
for f in fields:
|
||||
if f in vals:
|
||||
padded_f = f"['{f}']"
|
||||
parts.append(f"{padded_f} = {vals[f]}")
|
||||
|
||||
line = f" {padded_key} = {{{', '.join(parts)}}},"
|
||||
return line
|
||||
|
||||
# Paths
|
||||
preload_path = r'E:\FiveMserver\server\_preLoad\qs-inventory\[inventory]\qs-inventory\shared\items.lua'
|
||||
qbcore_path = r'E:\FiveMserver\server\resources\[framework]\[core]\qb-core\shared\items.lua'
|
||||
|
||||
# Extract items from both
|
||||
preload_items = extract_items_with_defs(preload_path)
|
||||
qbcore_items = extract_items_with_defs(qbcore_path)
|
||||
|
||||
# Find items only in preload
|
||||
only_preload = sorted(set(preload_items.keys()) - set(qbcore_items.keys()))
|
||||
print(f"Items to add: {len(only_preload)}")
|
||||
|
||||
# Generate qb-core lines
|
||||
new_lines = []
|
||||
new_lines.append("")
|
||||
new_lines.append(" -- ═══════════════════════════════════════════════════")
|
||||
new_lines.append(" -- ITEMS IMPORTATE DIN QS-INVENTORY (preLoad update)")
|
||||
new_lines.append(" -- ═══════════════════════════════════════════════════")
|
||||
new_lines.append("")
|
||||
|
||||
for key in only_preload:
|
||||
body = preload_items[key]
|
||||
line = to_qbcore_line(key, body)
|
||||
new_lines.append(line)
|
||||
|
||||
# Read qb-core file
|
||||
with open(qbcore_path, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
qb_content = f.read()
|
||||
|
||||
# Find the last } that closes QBShared.Items
|
||||
# Insert before the last }
|
||||
last_brace = qb_content.rfind('}')
|
||||
if last_brace == -1:
|
||||
print("ERROR: Could not find closing brace")
|
||||
else:
|
||||
new_content = qb_content[:last_brace] + '\n'.join(new_lines) + '\n' + qb_content[last_brace:]
|
||||
with open(qbcore_path, 'w', encoding='utf-8') as f:
|
||||
f.write(new_content)
|
||||
print(f"SUCCESS: Added {len(only_preload)} items to qb-core items.lua")
|
||||
print("First 5 items added:")
|
||||
for k in only_preload[:5]:
|
||||
print(f" + {k}")
|
||||
print(f" ... and {len(only_preload)-5} more")
|
||||
@@ -7,6 +7,93 @@ 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)
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/shared/jobs.lua` — **RESTAURAT din git** — Quasar fork a suprascris toate joburile 17mov (deliverer, garbage, bus, builder, electrician, etc.) cu defaults
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/shared/items.lua` — adăugat item `map` (lipsea complet, rupt rv-maphold StarterItems)
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/config.lua` — `metadata.licences.driver = false` (Quasar pune `true` default, trebuie `false` pt bit-driverschool)
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/server/player.lua` — playertables: comentat `apartments`, `phone_messages`, `player_contacts`, `player_mails` (nu au coloana `citizenid`)
|
||||
|
||||
### 🔔 Centralizare Notificări → 17mov_Hud
|
||||
- ✏️ `resources/[framework]/[core]/qb-core/client/functions.lua` — Override `QBCore.Functions.Notify()` → `exports['17mov_Hud']:ShowNotification()` (linia ~171)
|
||||
- ✏️ `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
|
||||
- ✏️ `cross_resource_modifications.md` — Adăugat puncte 4 (jobs.lua), 5 (config.lua driver), 6 (functions.lua notify), 7 (events.lua notify)
|
||||
|
||||
### 📱 qs-smartphone-pro SQL Analysis
|
||||
- Analizat `_preLoad/[smartphone].pack/[smartphone]/[sql]/qb.sql` — confirmat tabelele phone NU au `citizenid`:
|
||||
- `phone_messages` → `phone` (VARCHAR)
|
||||
- `player_contacts` → `identifier` (VARCHAR)
|
||||
- `player_mails` → `taker` (VARCHAR)
|
||||
|
||||
**Fișiere modificate:**
|
||||
| Acțiune | Fișier |
|
||||
|---------|--------|
|
||||
| 🔄 RESTAURAT | `qb-core/shared/jobs.lua` — din git (toate joburile 17mov) |
|
||||
| ✏️ MOD | `qb-core/shared/items.lua` — adăugat `map` item |
|
||||
| ✏️ MOD | `qb-core/config.lua` — `licences.driver = false` |
|
||||
| ✏️ MOD | `qb-core/server/player.lua` — playertables cleanup |
|
||||
| ✏️ MOD | `qb-core/client/functions.lua` — notify override 17mov_Hud |
|
||||
| ✏️ MOD | `qb-core/client/events.lua` — notify event override 17mov_Hud |
|
||||
| 🆕 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 |
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-31 — Migrare Interacțiuni la qb-target + Skills Upgrade + Bus Icon + Animație Tabletă
|
||||
|
||||
### 🎬 Animație Tabletă la Job Center
|
||||
@@ -771,7 +858,11 @@ Toate resursele care foloseau DrawText3D `[E]` / Markers au fost trecute pe **qb
|
||||
- [x] **t1ger_tuningsystem debug**: Eliminat 6× console.log din NUI JS (2026-03-29)
|
||||
- [ ] **Webhooks** `qs-smartphone-pro`: configurare în `server/custom/webhooks/webhooks.lua`
|
||||
- [ ] **Webhooks** `qs-advancedgarages`: configurare în `server/custom/misc/*.lua`
|
||||
- [ ] **oxmysql oversized query**: `SELECT * FROM crypto_history` (2339 results) — trebuie paginare sau LIMIT
|
||||
- [ ] **Version updates**: `qs-inventory` 3.7.16→3.7.17, `qs-vehiclekeys` 4.0.13→4.0.29, `t1ger_mechanic` 3.6.7→3.6.9
|
||||
- [ ] **oxmysql oversized query**: `SELECT * FROM crypto_history` (4016 results) — trebuie paginare sau LIMIT
|
||||
- [ ] **Version updates**: `qs-vehiclekeys` 4.0.13→4.0.29, `t1ger_mechanic` 3.6.7→3.6.9
|
||||
- [ ] **Admin outfit setup**: Configurare Luxu panel Clone Yourself + testare outfit stack
|
||||
- [ ] **Admin jacket blacklist**: Adăugare în `Skin.BlacklistedInputValues`
|
||||
- [ ] **qs-smartphone-pro setup**: Import SQL-uri, configurare completă telefon, re-evaluare playertables după setup
|
||||
- [ ] **map.png**: Verificare imagine map în qs-inventory/html/images/ (userul a copiat manual)
|
||||
- [x] **qb-core post-update recovery**: jobs.lua restaurat, items.lua map adăugat, config.lua driver=false, notify centralizat (2026-04-03)
|
||||
|
||||
|
||||
@@ -5,6 +5,23 @@ Util pentru tracking git — aceste fișiere aparțin altor resurse dar au fost
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ CRITICAL: Checklist la Update qb-core
|
||||
|
||||
Când se face update la `qb-core` (orice versiune/fork), OBLIGATORIU verifică:
|
||||
|
||||
1. **`shared/main.lua`** → `QBShared.StarterItems` — DOAR `phone` + `map`! (NU id_card, NU driver_license)
|
||||
2. **`server/player.lua`** → `playertables` — FĂRĂ `apartments` (tabel inexistent), FĂRĂ `phone_messages` (nu are citizenid)
|
||||
- ⚠️ **ATENȚIE:** Repo-ul OFICIAL Quasar qb-core vine MEREU cu `apartments` + `phone_messages` in playertables. La FIECARE update trebuie comentate!
|
||||
- 📱 **TODO (qs-smartphone-pro setup):** Când se configurează qs-smartphone-pro complet, REVERIFICÃ tabelele `player_contacts`, `player_mails`, `phone_messages`, `phone_invoices`. Dacă schema lor are coloana `citizenid`, reactivează-le. Dacă nu, adaugă cleanup custom cu coloana corectă (ex: `number`, `phone_number`).
|
||||
3. **`shared/items.lua`** → Clothing items: `chain`, `vest`, `bracelets`, `watch` + `map` (rv-maphold) TREBUIE să existe
|
||||
4. **`shared/jobs.lua`** → TOATE joburile 17mov TREBUIE păstrate: `deliverer`, `garbage`, `postman`, `lumberjack`, `bus`, `builder`, `electrician`, `windowcleaner`, `treasurehunter`, `miner`, `oilrig`, `mechanic`, `unemployed`. Quasar fork SUPRASCRIE cu joburi default!
|
||||
- ⚠️ **FIX RAPID:** `git checkout HEAD -- "resources/[framework]/[core]/qb-core/shared/jobs.lua"` restaurează din git
|
||||
5. **`config.lua`** → `metadata.licences.driver = false` (linia 87) — Quasar pune `true` default, TREBUIE setat `false` (permisul se obține la bit-driverschool)
|
||||
6. **`client/functions.lua`** → `QBCore.Functions.Notify` override la `exports['17mov_Hud']:ShowNotification` (linia ~171)
|
||||
7. **`client/events.lua`** → `QBCore:Notify` event override la `exports['17mov_Hud']:ShowNotification` (linia ~193)
|
||||
|
||||
---
|
||||
|
||||
## Feature: Mechanic Job Outfit (lucrat pe `t1ger_mechanic`)
|
||||
|
||||
### Fișiere modificate în alte resurse:
|
||||
@@ -47,23 +64,6 @@ Util pentru tracking git — aceste fișiere aparțin altor resurse dar au fost
|
||||
|
||||
---
|
||||
|
||||
## Rezumat rapid — Toate fișierele modificate
|
||||
|
||||
```
|
||||
resources/[framework]/[core]/qb-core/shared/jobs.lua ← MODIFICAT
|
||||
resources/[framework]/[base]/[auth]/17mov_CharacterSystem/configs/Config.lua ← MODIFICAT
|
||||
resources/[framework]/[base]/[jobs]/[legal]/[mechanic]/t1ger_mechanic/
|
||||
└── client/shop/markers/duty.lua ← MODIFICAT
|
||||
└── client/shop/markers/getoutfit.lua ← NOU
|
||||
resources/[stream]/[admin-outfit]/AdminPack/fxmanifest.lua ← NOU
|
||||
resources.cfg ← MODIFICAT
|
||||
start_server.ps1 ← NOU
|
||||
_preLoad/AdminPack/fxmanifest.lua ← NOU
|
||||
.agents/workflows/job-outfit-setup.md ← NOU
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Feature: Wasabi Police Install (lucrat pe `wasabi_police` — 2026-03-29)
|
||||
|
||||
### Fișiere modificate în alte resurse:
|
||||
@@ -86,3 +86,118 @@ _preLoad/AdminPack/fxmanifest.lua ← NOU
|
||||
- SQL-urile ESX din `_install_first/esx/sql/` nu au fost executate (suntem pe QBCore)
|
||||
- Resursa se încarcă automat via `ensure [jobs]` din `resources.cfg`
|
||||
|
||||
---
|
||||
|
||||
## Feature: Quasar Advanced Inventory Migration (qb-core fork Quasar 1.3.0 — 2026-04-02)
|
||||
|
||||
### Fișiere modificate în qb-core:
|
||||
|
||||
| Fișier | Linie | Ce s-a modificat |
|
||||
|--------|-------|------------------|
|
||||
| `shared/main.lua` | L6-11 | **StarterItems** — DOAR `phone` + `map`. Comentat `id_card` (de la mugshot) și `driver_license` (de la școala de șoferi) |
|
||||
| `shared/items.lua` | L4765+ | Adăugat 4 clothing items lipsă: `chain`, `vest`, `bracelets`, `watch` (copiate din qs-inventory/shared/items.lua) |
|
||||
| `server/player.lua` | L541-554 | **playertables** — comentat `apartments` (tabel inexistent) și `phone_messages` (nu are coloana citizenid, qs-smartphone-pro) |
|
||||
|
||||
### Fișiere modificate în qs-inventory:
|
||||
|
||||
| Fișier | Linie | Ce s-a modificat |
|
||||
|--------|-------|------------------|
|
||||
| `config/config.lua` | L26 | `Config.Language = 'ro'` |
|
||||
| `config/config.lua` | L72 | `Config.ServerName = 'RED VALLEY'` |
|
||||
| `config/config.lua` | L935 | `Config.Debug = true` (temporar, de setat `false` la producție) |
|
||||
|
||||
### Rezumat rapid — Toate fișierele modificate (Quasar migration)
|
||||
|
||||
```
|
||||
resources/[framework]/[core]/qb-core/shared/main.lua ← StarterItems: phone + map ONLY
|
||||
resources/[framework]/[core]/qb-core/shared/items.lua ← +chain, +vest, +bracelets, +watch
|
||||
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 |
|
||||
|
||||
@@ -2,18 +2,15 @@ ensure [cfx-default]
|
||||
ensure ox_lib
|
||||
ensure [core]
|
||||
ensure [depends]
|
||||
ensure [inventory]
|
||||
ensure [voice]
|
||||
ensure [auth]
|
||||
ensure [ui]
|
||||
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
|
||||
ensure [weapons]
|
||||
ensure luxu_admin
|
||||
@@ -7,6 +7,20 @@ RegisterNetEvent("0r_idcard:server:saveHeadshot", function(shot)
|
||||
local player = getExtendedPlayer(src)
|
||||
local license = getPlayerLicense(player)
|
||||
|
||||
-- Build metadata for qs-inventory id_card display
|
||||
local cardInfo = {}
|
||||
if Config.Framework == "qb" then
|
||||
local charinfo = player.PlayerData.charinfo
|
||||
cardInfo = {
|
||||
citizenid = player.PlayerData.citizenid,
|
||||
firstname = charinfo.firstname,
|
||||
lastname = charinfo.lastname,
|
||||
birthdate = charinfo.birthdate,
|
||||
gender = charinfo.gender == 0 and 'Male' or 'Female',
|
||||
nationality = charinfo.nationality or 'Unknown'
|
||||
}
|
||||
end
|
||||
|
||||
if license then
|
||||
local result = mysqlQuery("SELECT id_card_given FROM 0r_idcard WHERE license = @license", {["@license"] = license})
|
||||
|
||||
@@ -15,12 +29,12 @@ RegisterNetEvent("0r_idcard:server:saveHeadshot", function(shot)
|
||||
mysqlQuery("UPDATE 0r_idcard SET photo = @photo WHERE license = @license", {["@photo"] = shot, ["@license"] = license})
|
||||
-- Give id_card only once (first mugshot)
|
||||
if result[1].id_card_given == 0 then
|
||||
addItem(src, Config.IdCard, 1)
|
||||
addItem(src, Config.IdCard, 1, cardInfo)
|
||||
mysqlQuery("UPDATE 0r_idcard SET id_card_given = 1 WHERE license = @license", {["@license"] = license})
|
||||
end
|
||||
else
|
||||
mysqlQuery("INSERT INTO 0r_idcard (license, photo, id_card_given) VALUES (@license, @photo, 1)", {["@license"] = license, ["@photo"] = shot})
|
||||
addItem(src, Config.IdCard, 1)
|
||||
addItem(src, Config.IdCard, 1, cardInfo)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -99,7 +99,7 @@ function removeMoney(src, amount)
|
||||
return false
|
||||
end
|
||||
|
||||
function addItem(src, item, amoumt)
|
||||
function addItem(src, item, amoumt, info)
|
||||
local player = getExtendedPlayer(src)
|
||||
|
||||
while player == nil do
|
||||
@@ -108,7 +108,7 @@ function addItem(src, item, amoumt)
|
||||
end
|
||||
|
||||
if Config.Framework == "qb" then
|
||||
player.Functions.AddItem(item, amoumt)
|
||||
player.Functions.AddItem(item, amoumt, nil, info)
|
||||
elseif Config.Framework == "esx" then
|
||||
player.addInventoryItem(item, amoumt)
|
||||
end
|
||||
|
||||
@@ -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
|
||||