Files
red-valley/docs/cross_resource_modifications.md
T

204 lines
11 KiB
Markdown
Raw Normal View History

2026-03-29 21:41:17 +03:00
# 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)
---
2026-03-29 21:41:17 +03:00
## 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/`