Pular para o conteúdo

Efeitos de Entidade

Visao Geral

Efeitos de entidade sao modificadores temporarios ou permanentes aplicados a entidades em tempo de execucao. Eles alimentam uma ampla gama de sistemas: tons visuais e sobreposicoes de tela ao receber dano, buffs de comida que aumentam a vida maxima, dano ao longo do tempo por queimaduras e veneno, efeitos de controle de grupo como enraizamento e atordoamento, e trilhas de particulas cosmeticas em habilidades de armas. Cada arquivo de efeito define sua duracao, regras de sobreposicao, modificacoes de atributos e feedback visual/sonoro.

Localizacao dos Arquivos

Assets/Server/Entity/Effects/

Subdiretorios agrupam efeitos por categoria:

Assets/Server/Entity/Effects/
BlockPlacement/ (feedback de sucesso/falha ao colocar blocos)
Damage/ (efeitos de flash ao ser atingido)
Deployables/ (auras de cura/lentidao de totens)
Drop/ (efeitos de brilho de raridade de itens)
Food/
Boost/ (aumentos de atributos maximos por comida)
Buff/ (curas instantaneas e buffs temporarios)
GameMode/ (visual do modo criativo)
Immunity/ (invulnerabilidade de esquiva, imunidade a fogo/ambiente)
Mana/ (efeitos de regeneracao e dreno de mana)
Movement/ (efeitos direcionais de esquiva)
Npc/ (morte, cura, retorno ao lar de NPCs)
Portals/ (visual de teleporte)
Projectiles/ (sub-efeitos de flecha, bomba, escombros)
Stamina/ (stamina quebrada, erro, atraso de regeneracao)
Status/ (queimadura, congelamento, veneno, enraizamento, lentidao, atordoamento)
Weapons/ (efeitos de assinatura e habilidade de armas)

Schema

Campos de nivel superior

CampoTipoObrigatorioPadraoDescricao
DurationnumberSimDuracao do efeito em segundos. 0 ou 0.0 significa que o efeito dispara uma vez instantaneamente.
InfinitebooleanNaofalseSe true, o efeito persiste indefinidamente ate ser removido explicitamente. Sobrescreve Duration.
OverlapBehavior"Overwrite" | "Extend"NaoComo lidar com reaplicacao enquanto ja esta ativo. Overwrite substitui o temporizador; Extend adiciona a duracao restante.
RemovalBehaviorstringNaoComo o efeito e removido. Valor conhecido: "Duration" (removido quando o temporizador expira).
DebuffbooleanNaofalseSe true, o efeito e classificado como debuff e pode ser limpo por interacoes do tipo antidoto.
InvulnerablebooleanNaofalseSe true, a entidade nao pode receber dano enquanto o efeito esta ativo.
StatusEffectIconstringNaoCaminho para o icone de UI exibido na barra de efeitos de status.
DeathMessageKeystringNaoChave de localizacao para a mensagem de morte quando este efeito mata uma entidade.
ApplicationEffectsApplicationEffectsNaoModificacoes visuais, sonoras e de movimento aplicadas enquanto o efeito esta ativo.
StatModifiersobjectNaoMapa de ID de atributo para valor fixo adicionado por tick (ex: {"Health": 2}).
ValueTypestringNaoComo os valores de StatModifiers sao interpretados. Valor conhecido: "Percent".
RawStatModifiersobjectNaoMapa de ID de atributo para um array de objetos modificadores brutos para manipulacao avancada de atributos.
DamageCalculatorDamageCalculatorNaoDano periodico aplicado enquanto o efeito esta ativo.
DamageCalculatorCooldownnumberNaoSegundos entre cada tick de dano do DamageCalculator.
DamageEffectsobjectNaoEventos sonoros disparados em cada tick de dano.
ModelOverrideModelOverrideNaoSubstitui o modelo visual da entidade pela duracao do efeito (ex: vinhas de enraizamento).

ApplicationEffects

CampoTipoObrigatorioPadraoDescricao
EntityTopTintstringNaoCor hexadecimal aplicada a porcao superior do modelo da entidade.
EntityBottomTintstringNaoCor hexadecimal aplicada a porcao inferior do modelo da entidade.
ScreenEffectstringNaoCaminho para uma textura de sobreposicao de tela (ex: "ScreenEffects/Fire.png").
HorizontalSpeedMultipliernumberNaoMultiplicador aplicado a velocidade de movimento horizontal. 0.5 = 50% de velocidade.
KnockbackMultipliernumberNaoMultiplicador para repulsao recebida. 0 = imune a repulsao.
ModelVFXIdstringNaoID de um VFX em nivel de modelo para anexar a entidade.
ParticlesParticleRef[]NaoLista de sistemas de particulas para gerar na entidade.
MovementEffectsobjectNaoSubstituicoes de movimento. Contem DisableAll: true para imobilizar totalmente a entidade.
WorldSoundEventIdstringNaoEvento sonoro audivel para todos os jogadores proximos.
LocalSoundEventIdstringNaoEvento sonoro audivel apenas para o jogador afetado.

ParticleRef

CampoTipoObrigatorioPadraoDescricao
SystemIdstringSimID do sistema de particulas a ser gerado.
TargetEntityPartstringNaoParte da entidade a qual anexar a particula (ex: "Entity").
TargetNodeNamestringNaoNome do osso ou no para anexacao (ex: "Hip").
PositionOffsetVector3NaoDeslocamento local a partir do ponto de anexacao.
ColorstringNaoSubstituicao de cor hexadecimal para o sistema de particulas.

RawStatModifier

CampoTipoObrigatorioPadraoDescricao
AmountnumberSimValor do modificador. A interpretacao depende do CalculationType.
CalculationType"Additive" | "Multiplicative"SimAdditive adiciona um valor fixo ao alvo; Multiplicative escala o alvo pelo valor.
TargetstringSimQual aspecto do atributo modificar. Valor conhecido: "Max" (modifica o maximo do atributo).

DamageCalculator

CampoTipoObrigatorioPadraoDescricao
BaseDamageobjectSimMapa de ID de tipo de dano para valor de dano (ex: {"Fire": 5}).

ModelOverride

CampoTipoObrigatorioPadraoDescricao
ModelstringSimCaminho para o arquivo .blockymodel de substituicao.
TexturestringSimCaminho para a textura de substituicao.
AnimationSetsobjectNaoMapa de nome de estado de animacao para definicoes de animacao (ex: Spawn, Despawn).

Exemplos

Efeito de status de queimadura (Assets/Server/Entity/Effects/Status/Burn.json):

{
"ApplicationEffects": {
"EntityBottomTint": "#100600",
"EntityTopTint": "#cf2302",
"ScreenEffect": "ScreenEffects/Fire.png",
"WorldSoundEventId": "SFX_Effect_Burn_World",
"LocalSoundEventId": "SFX_Effect_Burn_Local",
"Particles": [{ "SystemId": "Effect_Fire" }],
"ModelVFXId": "Burn"
},
"DamageCalculatorCooldown": 1,
"DamageCalculator": {
"BaseDamage": { "Fire": 5 }
},
"DamageEffects": {
"WorldSoundEventId": "SFX_Effect_Burn_World",
"PlayerSoundEventId": "SFX_Effect_Burn_Local"
},
"OverlapBehavior": "Overwrite",
"Debuff": true,
"StatusEffectIcon": "UI/StatusEffects/Burn.png",
"Duration": 3,
"DeathMessageKey": "server.general.deathCause.burn"
}

Buff de comida com aumento de vida maxima (Assets/Server/Entity/Effects/Food/Boost/Food_Health_Boost_Large.json):

{
"RawStatModifiers": {
"Health": [
{
"Amount": 30,
"CalculationType": "Additive",
"Target": "Max"
}
]
},
"Duration": 480,
"OverlapBehavior": "Overwrite",
"StatusEffectIcon": "UI/StatusEffects/AddHealth/Large.png"
}

Invulnerabilidade de investida com adaga (Assets/Server/Entity/Effects/Weapons/Dagger_Dash.json):

{
"Duration": 0.25,
"ApplicationEffects": {
"Particles": [
{
"SystemId": "Daggers_Dash_Straight",
"TargetEntityPart": "Entity",
"TargetNodeName": "Hip",
"PositionOffset": { "Y": 1.0 },
"Color": "#d7e5ec"
}
],
"ModelVFXId": "Dagger_Dash"
},
"OverlapBehavior": "Extend",
"Invulnerable": true
}

Paginas Relacionadas