1bcf0d9282
Synchronized docs/ folder with Knowledge Base (was behind since April 3): - changelog.md: added qb-target migration (Apr 8) + resource cleanup (Apr 10) entries - server_knowledge.md: complete resource structure post-cleanup, target section update - cross_resource_modifications.md: added qb-target migration checklist - resource_dependency_map.md: removed rv-qb-target, updated qb-target (ld-target engine) - resource_map.html: updated qb-target node + 17mov_Electrician qtarget link
204 lines
11 KiB
Markdown
204 lines
11 KiB
Markdown
# Cross-Resource Modifications
|
||
|
||
Fișiere modificate **în afara resursei principale** la care s-a lucrat.
|
||
Util pentru tracking git — aceste fișiere aparțin altor resurse dar au fost modificate pentru a suporta features noi.
|
||
|
||
---
|
||
|
||
## ⚠️ 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:
|
||
|
||
| Fișier | Resursă | Ce s-a modificat |
|
||
|--------|---------|------------------|
|
||
| `configs/Config.lua` | `17mov_CharacterSystem` | Adăugat `Config.Outfits['mechanic']` cu outfit data per grad (0-4) și gen (male/female) |
|
||
| `shared/jobs.lua` | `qb-core` | Schimbat label job mechanic: "Servicii Auto" → "Mecanic" |
|
||
| `resources.cfg` | Server root | Adăugat `ensure [stream]` pentru încărcare AdminPack |
|
||
|
||
### Fișiere NOI create în t1ger_mechanic:
|
||
|
||
| Fișier | Ce face |
|
||
|--------|---------|
|
||
| `client/shop/markers/getoutfit.lua` | Comandă admin `/getoutfit` — printează clothing component IDs |
|
||
| `client/shop/markers/duty.lua` | **MODIFICAT** — adăugat auto-apply/restore outfit la duty toggle |
|
||
|
||
### Fișiere NOI create în alte locații:
|
||
|
||
| Fișier | Locație | Ce face |
|
||
|--------|---------|---------|
|
||
| `fxmanifest.lua` | `[stream]/[admin-outfit]/AdminPack/` | Manifest pentru încărcare clothing pack admin |
|
||
| `fxmanifest.lua` | `_preLoad/AdminPack/` | Manifest pre-staging (copie, nu se încarcă pe server) |
|
||
| `start_server.ps1` | Server root | PowerShell wrapper anti Ctrl+C |
|
||
| `job-outfit-setup.md` | `.agents/workflows/` | Workflow refolosibil pentru setup outfit per job |
|
||
|
||
---
|
||
|
||
## Feature: Mechanic Job Garage & Keys (lucrat pe `t1ger_mechanic` + `qs-advancedgarages`)
|
||
|
||
### Fișiere modificate în alte resurse:
|
||
|
||
| Fișier | Resursă | Ce s-a modificat |
|
||
|--------|---------|------------------|
|
||
| `fxmanifest.lua` | `qs-advancedgarages` | Verificat/ajustat dependințe |
|
||
|
||
### Note:
|
||
- Modificările la garage/keys au fost în principal în fișierele native ale `t1ger_mechanic` (garage.lua, duty.lua)
|
||
- Logica de key removal la admin delete a fost adăugată cross-resource între t1ger_mechanic și qs-advancedgarages
|
||
|
||
---
|
||
|
||
## Feature: Wasabi Police Install (lucrat pe `wasabi_police` — 2026-03-29)
|
||
|
||
### Fișiere modificate în alte resurse:
|
||
|
||
| Fișier | Resursă | Ce s-a modificat |
|
||
|--------|---------|------------------|
|
||
| `shared/items.lua` | `qs-inventory` | Adăugat `bobby_pin` + `tracking_bracelet` în secțiunea Cops Tools |
|
||
| `html/images/bobby_pin.png` | `qs-inventory` | Copiat imagine item din `_install_first/inventory_images/` |
|
||
| `html/images/tracking_bracelet.png` | `qs-inventory` | Copiat imagine item din `_install_first/inventory_images/` |
|
||
|
||
### Fișiere modificate în wasabi_police:
|
||
|
||
| Fișier | Ce s-a modificat |
|
||
|--------|------------------|
|
||
| `game/configuration/config.lua` | `Config.Jail.jail = 'rcore'` (linia 74) |
|
||
|
||
### Note:
|
||
- Items `bobby_pin` și `tracking_bracelet` existau deja în `qb-core/shared/items.lua` (adăugate anterior pe 2026-01-18)
|
||
- `handcuffs` exista deja în ambele (qb-core + qs-inventory)
|
||
- 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/`
|
||
|