From 1bcf0d928208f7fadd73fde591cc1e5f41658a10 Mon Sep 17 00:00:00 2001 From: Kotzu Date: Wed, 17 Jun 2026 16:53:15 +0300 Subject: [PATCH] docs: sync knowledge base with April 8-10 changes 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 --- docs/changelog.md | 48 ++++++ docs/cross_resource_modifications.md | 87 +++++++++++ docs/resource_dependency_map.md | 20 +-- docs/resource_map.html | 3 +- docs/server_knowledge.md | 220 +++++++++++++++++++++------ 5 files changed, 319 insertions(+), 59 deletions(-) diff --git a/docs/changelog.md b/docs/changelog.md index 60220229..25579ad2 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -7,6 +7,41 @@ git tkn: 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 --- +## 2026-04-10 — Resource Cleanup + Knowledge Base Update + +### 🧹 Resource Cleanup +- Mutat resurse neutilizate în `_preLoad/_backups 10-04-2026/` +- Verificat complet structura resurselor post-cleanup +- Actualizat knowledge base: `server_knowledge.md`, `resource_dependency_map.md`, `changelog.md`, `todo_lists.md`, `cross_resource_modifications.md`, `resource_map.html` + +--- + +## 2026-04-08 — qb-target Migration (ld-target engine) + +### 🎯 Target System Migration: rv-target → qb-target (ld-target engine) +- **Cauza erorilor**: Folderul se numea `rv-target` cu `provide 'qb-target'` — resursele nu găseau exporturile +- **Fix**: Folder redenumit la `qb-target` (cum era distribuit ld-target original) +- **provide qtarget**: Adăugat `provide 'qtarget'` în fxmanifest.lua pt compatibilitate cu `17mov_Electrician` +- **Demo peds cleanup**: `Config.Peds = {}` (golit tabel demo Lunny) +- **Blue branding NUI**: `#00F8B9` → `#5c97f7` în style.css, interaction.css, script.js, index.html +- **DrawSprite albastru**: Zone markers RGB(92,151,247) în client.lua +- **Fresh copy**: client.lua și NUI copiate proaspăt din `_preLoad/ld-target/Standalone/` +- **F8 curat**: Toate erorile `No such export` rezolvate + +**Fișiere modificate:** +| Acțiune | Fișier | +|---------|--------| +| 🔄 REDENUMIT | `rv-target/` → `qb-target/` (folder rename) | +| ✏️ MOD | `qb-target/fxmanifest.lua` — name='qb-target', provide 'qtarget' | +| ✏️ MOD | `qb-target/init.lua` — Config.Peds = {} | +| ✏️ MOD | `qb-target/client.lua` — DrawSprite RGB(92,151,247) albastru | +| ✏️ MOD | `qb-target/html/style.css` — #00F8B9 → #5c97f7 | +| ✏️ MOD | `qb-target/html/interaction.css` — #00F8B9 → #5c97f7 | +| ✏️ MOD | `qb-target/html/script.js` — #00F8B9 → #5c97f7 | +| ✏️ MOD | `qb-target/html/index.html` — #00F8B9 → #5c97f7 | + +--- + ## 2026-04-03 — Stabilizare Post-Migrare Quasar Inventory + Notify Centralizat ### 🔧 Fix: qb-core Post-Update Recovery (Quasar fork a suprascris custom changes) @@ -20,6 +55,15 @@ git tkn: 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 - ✏️ `resources/[framework]/[core]/qb-core/client/events.lua` — Override `QBCore:Notify` event → `exports['17mov_Hud']:ShowNotification()` (linia ~193) - **Efect:** TOATE resursele de pe server afișează notificări prin 17mov_Hud automat, fără modificări individuale +### 🎯 Suprimare DrawText [E] Global + qb-target Migration +- ✏️ `resources/[framework]/[core]/qb-core/client/drawtext.lua` — **SUPRIMAT GLOBAL** — toate funcțiile DrawText/ChangeText/HideText/KeyPressed sunt no-ops. Resursele nu mai pot afișa prompt-uri [E]. Exporturile rămân funcționale (nu crashuiesc), dar nu fac nimic. +- ✏️ `resources/[framework]/[addons]/[housing]/qs-housing/client/custom/framework/qb.lua` — DrawText3D/DrawText3Ds/DrawTextBoard suprimare condițională: când `Config.UseTarget = true`, funcțiile devin no-ops (elimină textele [E] din codul encrypted) +- ✏️ `resources/[framework]/[addons]/[housing]/qs-housing/client/custom/target/qb-target.lua` — Adăugat BoxZone qb-target pe NPC-ul Real Estate + floating text "Agent Imobiliar" deasupra capului (utilizează native GTA, nu DrawText3D suprimat) +- **Efect:** Prompt-urile [E] au dispărut de pe tot serverul. Interacțiunile se fac prin qb-target (dot/eye target). Resursele cu `Config.UseTarget` rămân de setat individual pe `true` pe rând. + +### ⏰ Time Freeze la 14:00 +- ✏️ `resources/[framework]/[addons]/qb-weathersync/config.lua` — `Config.BaseTime = 14`, `Config.FreezeTime = true` (server locked la 14:00) + ### 📋 Workflow & Rulebook Updates - ✏️ `.agents/workflows/rulebook.md` — Regula 5 rescrisă complet: workflow obligatoriu `/resource-update`, qb-core checklist cu 7 puncte - 🆕 `.agents/workflows/resource-update.md` — Workflow nou: git diff înainte/după, cross_resource_modifications.md check, post-update verificare @@ -43,6 +87,10 @@ git tkn: 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 | 🆕 NOU | `.agents/workflows/resource-update.md` | | ✏️ MOD | `.agents/workflows/rulebook.md` — regula 5 extinsă | | ✏️ MOD | `cross_resource_modifications.md` — 7 puncte checklist qb-core | +| ✏️ SUPRIMAT | `qb-core/client/drawtext.lua` — DrawText/HideText no-ops global | +| ✏️ MOD | `qs-housing/client/custom/framework/qb.lua` — DrawText3D no-op când UseTarget=true | +| ✏️ MOD | `qs-housing/client/custom/target/qb-target.lua` — +NPC Real Estate target + floating text | +| ✏️ MOD | `qb-weathersync/config.lua` — time freeze 14:00 | --- diff --git a/docs/cross_resource_modifications.md b/docs/cross_resource_modifications.md index ad72b1dd..d82c2b37 100644 --- a/docs/cross_resource_modifications.md +++ b/docs/cross_resource_modifications.md @@ -114,3 +114,90 @@ resources/[framework]/[core]/qb-core/shared/items.lua ← +chain, +vest, +brac resources/[framework]/[core]/qb-core/server/player.lua ← playertables: -apartments, -phone_messages resources/[framework]/[core]/[inventory]/qs-inventory/config/config.lua ← lang, servername, debug ``` + +--- + +## Feature: Global [E] Prompt Suppression → qb-target (2026-04-03) + +### ⚠️ CRITICAL: Checklist la Update qb-core (drawtext) +Când se face update la `qb-core`, verifică: +- **`client/drawtext.lua`** → TOATE funcțiile sunt no-ops (DrawText, ChangeText, HideText, KeyPressed). La update, Quasar va restaura funcțiile originale! + +### Fișiere modificate: + +| Fișier | Resursă | Ce s-a modificat | +|--------|---------|------------------| +| `client/drawtext.lua` | `qb-core` | **SUPRIMAT GLOBAL** — DrawText/ChangeText/HideText/KeyPressed sunt no-ops cu `function() end`. Exporturile există dar nu fac nimic. | + +### Note: +- Supresia este globală — NICIO resursă nu poate afișa prompt-uri [E] prin qb-core exports +- Resursele nu crashuiesc, dar textul nu apare +- Aceasta forțează migrarea la qb-target (dot/eye target) pe tot serverul +- Resursele trebuie setate individual cu `Config.UseTarget = true` + +--- + +## Feature: qs-housing qb-target Migration (2026-04-03) + +### ⚠️ CRITICAL: Checklist la Update qs-housing +Când se face update la `qs-housing`, verifică: +1. **`client/custom/framework/qb.lua`** → DrawText3D/DrawText3Ds/DrawTextBoard sunt no-ops când `Config.UseTarget = true`. Update-ul Quasar va restaura funcțiile originale! +2. **`client/custom/target/qb-target.lua`** → BoxZone `rv_realestate_npc` + floating text "Agent Imobiliar" pe NPC Real Estate. Secțiunea RED VALLEY de la sfârșitul fișierului! + +### Fișiere modificate: + +| Fișier | Resursă | Ce s-a modificat | +|--------|---------|------------------| +| `client/custom/framework/qb.lua` | `qs-housing` | DrawText3D/DrawText3Ds/DrawTextBoard devin no-ops condițional (doar când `Config.UseTarget = true`). Codul encrypted apelează aceste funcții native GTA, deci suprimarea din qb-core nu le prindea. | +| `client/custom/target/qb-target.lua` | `qs-housing` | Adăugat BoxZone qb-target pe NPC-ul Real Estate (`rv_realestate_npc`) la coordonatele din `Config.RealeStateNPC.location`. Opțiune: "Open House Browser" (execută `/housebrowser`). Floating text nativ "Agent Imobiliar" cu LOS check. | + +### NPC Real Estate — Configurare: +- **Model:** `a_m_m_business_01` (din `Config.RealeStateNPC.pedModel`) +- **Locație:** `vec4(-253.978027, -970.457153, 31.217529, 161.574799)` (din `Config.RealeStateNPC.location`) +- **Target zone:** BoxZone 1.5×1.5, distance 2.5 +- **Floating text:** Native GTA rendering, LOS check, 15m range + +--- + +## Feature: Time Freeze 14:00 (2026-04-03) + +### Fișiere modificate: + +| Fișier | Resursă | Ce s-a modificat | +|--------|---------|------------------| +| `config.lua` | `qb-weathersync` | `Config.BaseTime = 14`, `Config.FreezeTime = true` — server locked la ora 14:00 permanent | + +### Note: +- Necesită restart complet de server (ensure nu funcționează) +- `Config.RealTimeSync` era deja `false` (setat 2026-03-28) + +--- + +## Feature: qb-target Migration (ld-target engine — 2026-04-08) + +### ⚠️ CRITICAL: Checklist la Update qb-target +Când se face update/înlocuire la `qb-target`, verifică: +1. **`fxmanifest.lua`** → `provide 'qtarget'` TREBUIE să existe (17mov_Electrician depinde de el) +2. **`init.lua`** → `Config.Peds = {}` (fără demo NPC-uri Lunny) +3. **`client.lua`** → DrawSprite zone markers: RGB(92, 151, 247) = albastru +4. **`html/`** → Culorile NUI: `#5c97f7` albastru (style.css, interaction.css, script.js, index.html) + +### Fișiere modificate: + +| Fișier | Resursă | Ce s-a modificat | +|--------|---------|------------------| +| `fxmanifest.lua` | `qb-target` | `name='qb-target'`, `provide 'qtarget'` adăugat | +| `init.lua` | `qb-target` | `Config.Peds = {}` — golit tabel demo peds Lunny | +| `client.lua` | `qb-target` | DrawSprite zone markers: `(255,255,255)` → `(92,151,247)` albastru | +| `html/style.css` | `qb-target` | `#00F8B9` → `#5c97f7` | +| `html/interaction.css` | `qb-target` | `#00F8B9` → `#5c97f7` | +| `html/script.js` | `qb-target` | `#00F8B9` → `#5c97f7` | +| `html/index.html` | `qb-target` | `#00F8B9` → `#5c97f7` | + +### Note: +- Folderul TREBUIE să se numească `qb-target` (nu `rv-target`) — resursele terțe hardcode `exports['qb-target']` +- `provide 'qtarget'` permite `exports['qtarget']` să rezolve la același resource +- Engine-ul este ld-target open-source (NP 4.0 inspired) +- Zone markers (puncte la distanță) funcționează doar pe **Zones** (BoxZone, CircleZone), NU pe entități adăugate cu `AddTargetEntity()` +- Sursele originale se găsesc în `_preLoad/ld-target/Standalone/` + diff --git a/docs/resource_dependency_map.md b/docs/resource_dependency_map.md index 269bca26..1cac6075 100644 --- a/docs/resource_dependency_map.md +++ b/docs/resource_dependency_map.md @@ -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) | diff --git a/docs/resource_map.html b/docs/resource_map.html index 137184e0..a8d26ee1 100644 --- a/docs/resource_map.html +++ b/docs/resource_map.html @@ -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"}, diff --git a/docs/server_knowledge.md b/docs/server_knowledge.md index 9f35b7f7..073e4beb 100644 --- a/docs/server_knowledge.md +++ b/docs/server_knowledge.md @@ -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 |