Atributos do Jogador
Player Attributes
Especificação de game design dos atributos do personagem: vitais (Vida, Sangue, Consciência, Dor), condições (Stamina, Fome, Sede, Temperatura, Sinal, Sanidade…), o quadro do Sinal, dependências entre atributos e esboço de implementação em C++.
Última edição em 07/07/2026, 20:22 por Admin
Atributos do Jogador
Página de game design (não diegética), derivada de Sistema de Atributos, Dano e Balística. Define o conjunto completo de atributos do personagem do jogador, suas faixas, taxas e limiares.
Premissa: o jogador é um Free — um humano comum, com um Neural Chip dormente herdado que ele não pediu, não usa e não pode remover. Todos os sistemas partem daí.
Os atributos se dividem em dois grupos: vitais (matam) e condições (degradam os vitais e a performance).
1. Vitais
Os quatro vitais são os valores que decidem se o personagem vive, apaga ou morre. Nenhum deles é uma "barra de HP" isolada: cada um regenera (ou drena) em função dos outros.
| Atributo | Faixa | Função |
|---|---|---|
| Vida (Health) | 0–100 | Integridade geral. 0 = morte. Regenera lentamente (0,005–0,03/s) e só com Sangue, Fome e Sede altos. |
| Sangue (Blood) | 0–5000 | Perde por ferimentos/sangramento. Abaixo de ~3000: visão desbota e a Consciência drena; abaixo de 2500: morte. Regenera ~0,3/s apenas alimentado e hidratado; transfusão/soro acelera (~3/s). |
| Consciência (Choque) | 0–100 | Trauma acumulado. Abaixo de 25 = inconsciente (só recupera o controle acima de 50). Regenera 5/s acordado, 1/s desmaiado, com cooldown após cada impacto. Inconsciente na água = afogamento em ~20 s. |
| Dor | 0–100 | Não mata: atrapalha. Sway de mira, tremor de câmera, grunhidos audíveis (stealth), ações mais lentas. Reduzida por analgésicos; alta demais colapsa a Consciência. |
Pontos de design importantes:
- Vida não regenera de graça: a regeneração (0,005–0,03/s) só existe com Sangue, Fome e Sede em níveis altos. Um sobrevivente faminto e sangrando não se recupera — estabiliza ou piora.
- Sangue é o vital "lento": perdê-lo é fácil (ferimentos, sangramento), recuperá-lo é caro. A janela entre ~3000 (visão desbotando, Consciência drenando) e 2500 (morte) é o tempo que o jogador tem para estancar e se tratar.
- Consciência é o vital "rápido": um trauma forte pode apagar o personagem sem matá-lo. O nocaute abaixo de 25 com retorno de controle apenas acima de 50 cria um intervalo de vulnerabilidade real — e o afogamento em ~20 s torna água + inconsciência uma sentença.
- Dor é o vital de interface: nunca reduz a Vida, mas contamina tudo que o jogador faz — mira, câmera, ruído (os grunhidos entregam a posição em stealth) e velocidade de ações. Em nível extremo, colapsa a Consciência.
2. Condições
Condições não matam diretamente (com exceções nos extremos), mas degradam os vitais e a performance de forma contínua.
| Atributo | Faixa | Efeito |
|---|---|---|
| Stamina | 0–100 | Corrida, salto, escalada, melee pesado, prender a respiração na mira. Barra máxima é reduzida pelo peso carregado. |
| Fadiga | 0–100 | Acúmulo de longo prazo (horas sem descanso). Reduz regeneração de Stamina e estabilidade de mira; some com sono/descanso em zona segura. |
| Fome (Energia) | 0–5000 kcal | Dreno basal 0,01/s; caminhar 0,1; correr 0,3; sprint 0,6. Abaixo de 300: dano à Vida (0,05/s) e o Sangue não regenera. |
| Sede (Água) | 0–5000 ml | Mesmas taxas da fome. Desidratação em Scorchlands drena em dobro. |
| Temperatura corporal | ~28–41 °C | Conforto 36,0–36,5. Hipotermia (Dead Zone) e hipertermia (Scorchlands) causam tremor de mira, drenos e, no extremo, dano contínuo à Vida. Roupas têm valor de isolamento; roupa molhada pesa até 2× e isola pior. |
| Infecção (ferida) | estágios 0–3 | Ferida aberta/mal tratada tem chance de infectar (~40% se fechada sem desinfecção). Evolui para febre, drenos e morte se não tratada — e ferimento de Desynced carrega o risco maior: o Nanotech Virus (estágio terminal = dessincronização). |
| Radiação/Contaminação | 0–100 | Exposição a nanomáquinas ambientais (Contaminated Zone, Nanostorm, Carrier). Sobe sem proteção NBC; alta = dano contínuo, vômito (perde comida/água), redução da Vida máxima até tratamento. |
| Sincronização Neural (Exposição ao Sinal) | 0–100 | Exclusivo do projeto — ver quadro abaixo. |
| Sanidade/Percepção | 0–100 | Cai com escuridão prolongada, anomalias (Black Lake Phenomenon), gritos de Screamer e Exposição alta. Baixa = alucinações audiovisuais (falsos sons de horda, silhuetas), tremores. Recupera perto de fogueiras, música, zona segura, outros jogadores. |
| Peso carregado | kg | Reduz a Stamina máxima (ver diagrama de dependências abaixo). |
| Mobilidade | derivado | Estado composto: pernas feridas + peso + fadiga + temperatura → velocidade real, capacidade de sprint/salto e ruído de passos. |
Observações de design:
- Fome e Sede compartilham as taxas de dreno (basal 0,01/s; caminhar 0,1; correr 0,3; sprint 0,6) — o custo metabólico de cada postura de movimento é um só número, aplicado às duas barras.
- Fome abaixo de 300 kcal é o ponto de virada: começa o dano direto à Vida (0,05/s) e o Sangue para de regenerar — a inanição corta a recuperação exatamente quando ela é mais necessária.
- Temperatura é regional: a mesma barra pune a hipotermia da Dead Zone e a hipertermia de Scorchlands, e transforma roupa molhada (até 2× o peso, isolamento pior) num problema logístico real.
- Mobilidade não é um número armazenado: é o resultado composto de pernas feridas + peso + fadiga + temperatura, recalculado continuamente.
3. O Sinal (Sincronização Neural)
O chip dormente do jogador reage à Rede. A Exposição sobe: perto de Relay Towers ativas, durante Relay Surge e Signal Broadcast, em território Synced, diante dos agentes de elite. Efeitos por faixa:
- 0–25: zumbido ocasional; nada mecânico.
- 25–50: interferência no HUD do chip (marcadores piscam), −Sanidade lenta, Screamers detectam o jogador de mais longe.
- 50–75: sussurros na estática, sway de mira, a Rede vê o jogador (patrulhas convergem), navegação/bússola falha.
- 75–100: pré-sincronização — visão tunelada, comandos de movimento com atraso ("o corpo hesita"), e o risco narrativo: durante um evento de The Second Sync, quem estiver no topo da barra desmaia primeiro.
Reduz com: distância das fontes, blindagem de sinal (interior de bunkers, The Wall nas seções silenciosas — ironia intencional), consumível anti-sinal (drogas da The Disconnect), e zera na Dead Zone — o único lugar onde o chip realmente dorme (ao custo do frio letal e de nenhum eletrônico funcionar).
4. Dependências entre atributos
Nenhum atributo vive sozinho. As três correntes principais:
Fome (kcal) ──┐
├──> Sangue (regen ~0,3/s só alimentado E hidratado) ──> Vida (regen 0,005–0,03/s)
Sede (ml) ────┘ │
└── Sangue < ~3000: visão desbota, Consciência drena
Sangue < 2500: morte
Choque (impactos, trauma) ──> Consciência
< 25 = inconsciente | controle só volta > 50
(Dor extrema também colapsa a Consciência)
Peso carregado ──> Stamina máxima
livre até ~6 kg; acima disso cada 1 kg corta ~1,75% da barra (piso 5%)
Em forma de lista:
- Fome/Sede → Sangue → Vida: comer e beber não cura diretamente — habilita a cadeia de regeneração. Sem kcal e ml, o Sangue não sobe; sem Sangue (e Fome/Sede altos), a Vida não sobe.
- Choque → Consciência: todo impacto gera Choque, mesmo bloqueado por armadura. A Consciência é o alvo do trauma acumulado, com o nocaute como consequência.
- Peso → Stamina: o peso carregado não deixa o personagem "lento" por mágica — encolhe a barra máxima de Stamina, e tudo que depende dela (sprint, salto, prender a respiração) encolhe junto.
- Fadiga modula a corrente inteira por baixo: reduz a regeneração de Stamina e a estabilidade de mira até o personagem dormir em zona segura.
5. Esboço de implementação (Origin + GAS)
Regra arquitetural do projeto: o servidor Origin (custom) é a autoridade total — todos os drenos, regenerações, limiares e estados são simulados no servidor, no seu módulo de atributos. O cliente UE usa o plugin OriginGAS: o GAS roda local e idiomático (GameplayAttribute, GameplayEffect, tags), mas a camada de replicação da UE é desligada — os valores chegam por opcodes do OriginNetwork (snapshot completo na entrada + updates incrementais). O cliente não recalcula nada: espelha.
O AttributeSet do jogador segue o padrão do plugin (espelho client-side dos atributos canônicos do servidor):
/**
* AttributeSet de sobrevivencia do TSS — espelho client-side dos atributos
* canonicos simulados no servidor Origin (modulo de atributos).
*
* Server e autoritativo: cliente NAO recalcula nada. Estes valores sao
* populados pelo snapshot de atributos do OriginNetwork na entrada do mundo
* e atualizados por opcodes incrementais.
*
* Replicacao UE desabilitada: mudancas chegam via opcodes OriginNetwork.
*/
UCLASS()
class UTSSSurvivalAttributeSet : public UAttributeSet
{
GENERATED_BODY()
public:
// === Vitais (4) ===
UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
FGameplayAttributeData Health; // 0-100; 0 = morte
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Health)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
FGameplayAttributeData Blood; // 0-5000; fatal < 2500
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Blood)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
FGameplayAttributeData Consciousness; // 0-100; nocaute < 25, retorno > 50
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Consciousness)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Vitals")
FGameplayAttributeData Pain; // 0-100; debuff de manuseio
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Pain)
// === Condicoes ===
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData Stamina; // atual
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Stamina)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData MaxStamina; // reduzida pelo peso (server calcula)
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, MaxStamina)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData Energy; // 0-5000 kcal (Fome)
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Energy)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData Hydration; // 0-5000 ml (Sede)
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Hydration)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData BodyTemperature; // ~28-41 C
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, BodyTemperature)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData Contamination; // 0-100
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Contamination)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData SignalExposure; // 0-100 (Sincronizacao Neural)
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, SignalExposure)
UPROPERTY(BlueprintReadOnly, Category = "TSS|Conditions")
FGameplayAttributeData Sanity; // 0-100
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Sanity)
// === Meta (efemeros; pattern do plugin: o hook server-side converte e zera) ===
UPROPERTY(BlueprintReadOnly, Category = "TSS|Meta")
FGameplayAttributeData Damage; // empurrado pelo GE de dano; vira Health/Blood no server
ATTRIBUTE_ACCESSORS(UTSSSurvivalAttributeSet, Damage)
};
Divisão de responsabilidades:
| Onde | O quê |
|---|---|
| Servidor Origin (módulo de atributos) | Tick autoritativo: drenos por atividade (0,01/0,1/0,3/0,6), regenerações condicionais (Sangue exige Fome+Sede; Vida exige Sangue+Fome+Sede), limiares (morte < 2500 de Sangue; nocaute < 25 de Consciência), estados (infecção, fratura, exposição). |
| OriginNetwork (opcodes) | Snapshot completo dos atributos na entrada + updates incrementais; estados viram tags/efeitos anunciados ao cliente. |
| Cliente UE (OriginGAS) | Espelha os valores no AttributeSet acima; HUD, câmera, sway, pós-processo e áudio leem os atributos — nunca os escrevem. Efeitos cosméticos locais (tremor, vinheta) podem usar GameplayCues disparados pelos opcodes. |
Ver também
- Sistema de Atributos, Dano e Balística — página-hub com o sistema completo.