You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(hud)!: renomeia resource de ps-hud pra mri_Qhud
- pasta/resource agora se chama mri_Qhud (exports, callbacks NUI e
GetParentResourceName seguem o nome da pasta)
- evento do odometro: ps-hud:client:setOdometer -> mri_Qhud:client:setOdometer
- fallback de dev da NUI, tooling de release (zip/package) e docs atualizados
- eventos internos mri_hud:* e tabelas do banco mantidos de proposito
(sem migracao de dados)
- design handoffs movidos da raiz pra docs/
- CLAUDE.md na raiz avisando que "hud quebrada" apos o pull = renomear a
pasta local, nao "corrigir" codigo
BREAKING CHANGE: o resource deve se chamar mri_Qhud. Renomeie a pasta e
atualize chamadas exports['ps-hud'] -> exports['mri_Qhud'].
**Este resource foi renomeado de `ps-hud` / `mri-hud` para `mri_Qhud` (jul/2026).**
6
+
O nome da pasta É o nome do resource no FiveM — exports, callbacks NUI e
7
+
`GetParentResourceName()` seguem o nome da pasta automaticamente.
8
+
9
+
**Se a HUD "parou de funcionar" ou os exports "não existem", a causa mais
10
+
provável é a pasta local ainda se chamar `ps-hud` ou `mri-hud`.**
11
+
12
+
A correção é UMA só: **renomear a pasta para `mri_Qhud`** (com o servidor
13
+
parado — o FXServer trava a pasta enquanto roda).
14
+
15
+
❌ **NÃO** saia reescrevendo código, renomeando eventos, mexendo em exports ou
16
+
"consertando" referências para fazer funcionar com outro nome de pasta.
17
+
Isso quebra o projeto inteiro.
18
+
19
+
## O que usa o nome novo `mri_Qhud`
20
+
21
+
- Chamadas de outros resources: `exports['mri_Qhud']:AdjustVital(...)`, `AddHudPanel`, `SetHudOrb`, `SetDigitalElement`, `ApplySkinPreset`, etc.
22
+
- Evento do odômetro: `mri_Qhud:client:setOdometer` (antes era `ps-hud:client:setOdometer`).
23
+
- Fallback de dev da NUI (`web/src/utils/eventHandler.ts`).
24
+
25
+
## O que continua com o prefixo antigo `mri_hud` — DE PROPÓSITO, não "corrija"
26
+
27
+
- Eventos/callbacks internos: `mri_hud:*` (settings, presets, db:ready...). São internos ao resource; funcionam com qualquer nome de pasta.
28
+
- Tabelas do banco: `mri_hud_settings` e `mri_hud_skin_presets`. Renomear exige migração de dados — não mexa.
29
+
- Prints de log `[mri_hud]` e CSS vars legadas `--ps-hud-*`.
30
+
31
+
## Outras notas
32
+
33
+
-`ensure [novos]` no server.cfg já sobe o resource — não precisa de linha própria.
34
+
- URLs do GitHub ainda apontam pra `mri-Qbox-Brasil/mri-hud` (o repo remoto ainda não foi renomeado; o GitHub redireciona quando for).
35
+
-`web/node_modules` pode não existir — rode `pnpm install` em `web/` antes de `pnpm build`. O `html/` compilado já está no repo, então o resource roda sem build.
36
+
- Os handoffs de design ficam em `docs/design_handoff_*` (movidos da raiz).
Copy file name to clipboardExpand all lines: MANUAL.md
+25-25Lines changed: 25 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
# Manual — MRI HUD (ps-hud)
1
+
# Manual — MRI HUD (mri_Qhud)
2
2
3
3
Manual completo do recurso **MRI HUD** para incorporação à documentação da MRI. Cobre instalação, configuração, uso in-game, temas/skins, o sistema de vitais custom e a **API de extensão** (eventos e exports) para integrar outros scripts.
4
4
5
-
> **Nome do resource:** nos exemplos o recurso se chama **`ps-hud`** (nome padrão — não deve ser renomeado). Em `exports['ps-hud']:...` e nos eventos, use o nome real da pasta caso seja diferente no seu servidor.
5
+
> **Nome do resource:** nos exemplos o recurso se chama **`mri_Qhud`** (nome padrão — não deve ser renomeado). Em `exports['mri_Qhud']:...` e nos eventos, use o nome real da pasta caso seja diferente no seu servidor.
6
6
7
7
---
8
8
@@ -33,7 +33,7 @@ O MRI HUD é composto por:
33
33
34
34
-**Lua → NUI:**`SendNUIMessage({ action, topic, ... })`. A NUI escuta em `utils/eventHandler.ts` e roteia por `action`/`topic` para o store correspondente.
-**Outros resources → HUD:** via **exports** do `ps-hud` (que rodam no contexto do recurso e disparam o `SendNUIMessage`) ou via **eventos**`TriggerClientEvent('hud:client:...')`.
36
+
-**Outros resources → HUD:** via **exports** do `mri_Qhud` (que rodam no contexto do recurso e disparam o `SendNUIMessage`) ou via **eventos**`TriggerClientEvent('hud:client:...')`.
37
37
38
38
Arquitetura técnica detalhada: ver `ARCHITECTURE.md`. Contrato de eventos: `nui-events.json`.
39
39
@@ -52,8 +52,8 @@ Arquitetura técnica detalhada: ver `ARCHITECTURE.md`. Contrato de eventos: `nui
52
52
53
53
### Passos
54
54
55
-
1. Copie a pasta `ps-hud` para `resources/`.
56
-
2. No `server.cfg`: `ensure ps-hud`.
55
+
1. Copie a pasta `mri_Qhud` para `resources/`.
56
+
2. No `server.cfg`: `ensure mri_Qhud`.
57
57
3. Reinicie o servidor.
58
58
59
59
> Ordem dos scripts server (definida no `fxmanifest.lua`): `oxmysql` → `db.lua` → `main.lua` → `vitals.lua` → `settings.lua`.
@@ -216,7 +216,7 @@ Definidos no servidor por `server/vitals.lua`. O regen só grava enquanto o valo
exports['mri_Qhud']:AdjustVital(src, 'mana', 100, 'set') -- crava em 100
236
+
localmana=exports['mri_Qhud']:AdjustVital(src, 'mana', 0, 'add') -- só lê o atual
237
237
```
238
238
239
239
> **Fôlego** não tem export — é derivado da stamina automaticamente.
@@ -242,18 +242,18 @@ local mana = exports['ps-hud']:AdjustVital(src, 'mana', 0, 'add') -- só lê o a
242
242
243
243
## 7. API de extensão para outros resources
244
244
245
-
Três mecanismos para injetar elementos na HUD. Todos seguem o mesmo padrão: um **export** (que roda no contexto do `ps-hud`) ou um **evento** equivalente. Cada elemento tem um `id` único e é **reposicionável/ocultável/redimensionável** no F10.
245
+
Três mecanismos para injetar elementos na HUD. Todos seguem o mesmo padrão: um **export** (que roda no contexto do `mri_Qhud`) ou um **evento** equivalente. Cada elemento tem um `id` único e é **reposicionável/ocultável/redimensionável** no F10.
246
246
247
247
### 7.1 Painéis dinâmicos
248
248
249
249
Ícone + título + valor (ou uma shape completa via `hudIconInfo`).
Orbe com **cor (hex), glifo e label livres**. Aparecem sempre (independem do skin ativo).
264
264
265
265
```lua
266
-
exports['ps-hud']:SetHudOrb({
266
+
exports['mri_Qhud']:SetHudOrb({
267
267
id='corrupcao', -- obrigatório
268
268
label='Corrupção',
269
269
glyph='ᛟ', -- runa/letra/emoji no centro
@@ -274,8 +274,8 @@ exports['ps-hud']:SetHudOrb({
274
274
lowAt=25, -- pulsa alerta quando value ≤ lowAt (0 = nunca)
275
275
left=480, bottom=300, -- âncora default (px); usuário reposiciona no F10
276
276
})
277
-
exports['ps-hud']:UpdateHudOrbValue('corrupcao', 40) -- só o valor (barato)
278
-
exports['ps-hud']:RemoveHudOrb('corrupcao')
277
+
exports['mri_Qhud']:UpdateHudOrbValue('corrupcao', 40) -- só o valor (barato)
278
+
exports['mri_Qhud']:RemoveHudOrb('corrupcao')
279
279
```
280
280
281
281
Só o `id` é obrigatório; o resto cai em defaults. Eventos: `hud:client:SetOrb(orb)`, `hud:client:UpdateOrbValue(id, value)`, `hud:client:RemoveOrb(id)`.
@@ -285,7 +285,7 @@ Só o `id` é obrigatório; o resto cai em defaults. Eventos: `hud:client:SetOrb
285
285
Peças que encaixam no tema **digital** do veículo (só aparecem quando o tema digital está ativo e o cluster visível).
0 commit comments