Saltearse al contenido

Efectos de Entidad

Descripcion General

Los efectos de entidad son modificadores temporales o permanentes aplicados a las entidades en tiempo de ejecucion. Impulsan una amplia gama de sistemas: tintes visuales y superposiciones de pantalla al recibir dano, mejoras de comida que aumentan la salud maxima, dano con el tiempo por quemaduras y veneno, efectos de control de masas como raiz y aturdimiento, y rastros de particulas cosmeticos en habilidades de armas. Cada archivo de efecto define su duracion, reglas de superposicion, modificaciones de estadisticas y retroalimentacion visual/auditiva.

Ubicacion de Archivos

Assets/Server/Entity/Effects/

Los subdirectorios agrupan los efectos por categoria:

Assets/Server/Entity/Effects/
BlockPlacement/ (retroalimentacion de exito/fallo al colocar bloques)
Damage/ (efectos de destello al recibir golpe)
Deployables/ (auras de sanacion/ralentizacion de totems)
Drop/ (efectos de brillo por rareza de objetos)
Food/
Boost/ (aumentos de estadisticas maximas por comida)
Buff/ (sanaciones instantaneas y mejoras con temporizador)
GameMode/ (visual del modo creativo)
Immunity/ (invulnerabilidad al esquivar, inmunidad al fuego/ambiente)
Mana/ (efectos de regeneracion y drenaje de mana)
Movement/ (efectos direccionales al esquivar)
Npc/ (muerte de NPC, sanacion, retorno a casa)
Portals/ (visual de teletransporte)
Projectiles/ (sub-efectos de flechas, bombas, escombros)
Stamina/ (resistencia agotada, error, retraso de regeneracion)
Status/ (quemadura, congelacion, veneno, raiz, ralentizacion, aturdimiento)
Weapons/ (efectos de firma y habilidad de armas)

Esquema

Campos de nivel superior

CampoTipoRequeridoPor defectoDescripcion
DurationnumberSiDuracion del efecto en segundos. 0 o 0.0 significa que el efecto se dispara una vez instantaneamente.
InfinitebooleanNofalseSi es true, el efecto persiste indefinidamente hasta que se elimine explicitamente. Anula Duration.
OverlapBehavior"Overwrite" | "Extend"NoComo manejar la re-aplicacion mientras ya esta activo. Overwrite reemplaza el temporizador; Extend agrega a la duracion restante.
RemovalBehaviorstringNoComo se elimina el efecto. Valor conocido: "Duration" (se elimina cuando expira el temporizador).
DebuffbooleanNofalseSi es true, el efecto se clasifica como debuff y puede ser limpiado por interacciones tipo antidoto.
InvulnerablebooleanNofalseSi es true, la entidad no puede recibir dano mientras el efecto esta activo.
StatusEffectIconstringNoRuta al icono de la interfaz mostrado en la barra de efectos de estado.
DeathMessageKeystringNoClave de localizacion para el mensaje de muerte cuando este efecto mata a una entidad.
ApplicationEffectsApplicationEffectsNoModificaciones visuales, de audio y de movimiento aplicadas mientras el efecto esta activo.
StatModifiersobjectNoMapa de ID de estadistica a valor plano agregado por tick (por ejemplo, {"Health": 2}).
ValueTypestringNoComo se interpretan los valores de StatModifiers. Valor conocido: "Percent".
RawStatModifiersobjectNoMapa de ID de estadistica a un array de objetos modificadores crudos para manipulacion avanzada de estadisticas.
DamageCalculatorDamageCalculatorNoDano periodico aplicado mientras el efecto esta activo.
DamageCalculatorCooldownnumberNoSegundos entre cada tick de dano del DamageCalculator.
DamageEffectsobjectNoEventos de sonido activados en cada tick de dano.
ModelOverrideModelOverrideNoReemplaza el modelo visual de la entidad durante la duracion del efecto (por ejemplo, enredaderas de raiz).

ApplicationEffects

CampoTipoRequeridoPor defectoDescripcion
EntityTopTintstringNoColor hexadecimal aplicado a la parte superior del modelo de la entidad.
EntityBottomTintstringNoColor hexadecimal aplicado a la parte inferior del modelo de la entidad.
ScreenEffectstringNoRuta a una textura de superposicion de pantalla (por ejemplo, "ScreenEffects/Fire.png").
HorizontalSpeedMultipliernumberNoMultiplicador aplicado a la velocidad de movimiento horizontal. 0.5 = 50% de velocidad.
KnockbackMultipliernumberNoMultiplicador para el retroceso entrante. 0 = inmune al retroceso.
ModelVFXIdstringNoID de un VFX a nivel de modelo para adjuntar a la entidad.
ParticlesParticleRef[]NoLista de sistemas de particulas para generar en la entidad.
MovementEffectsobjectNoAnulaciones de movimiento. Contiene DisableAll: true para inmovilizar completamente a la entidad.
WorldSoundEventIdstringNoEvento de sonido audible para todos los jugadores cercanos.
LocalSoundEventIdstringNoEvento de sonido audible solo para el jugador afectado.

ParticleRef

CampoTipoRequeridoPor defectoDescripcion
SystemIdstringSiID del sistema de particulas a generar.
TargetEntityPartstringNoParte de la entidad a la que adjuntar la particula (por ejemplo, "Entity").
TargetNodeNamestringNoNombre del hueso o nodo para el anclaje (por ejemplo, "Hip").
PositionOffsetVector3NoDesplazamiento local desde el punto de anclaje.
ColorstringNoColor hexadecimal de anulacion para el sistema de particulas.

RawStatModifier

CampoTipoRequeridoPor defectoDescripcion
AmountnumberSiValor del modificador. La interpretacion depende de CalculationType.
CalculationType"Additive" | "Multiplicative"SiAdditive agrega un valor plano al objetivo; Multiplicative escala el objetivo por la cantidad.
TargetstringSiQue aspecto de la estadistica modificar. Valor conocido: "Max" (modifica el maximo de la estadistica).

DamageCalculator

CampoTipoRequeridoPor defectoDescripcion
BaseDamageobjectSiMapa de ID de tipo de dano a valor de dano (por ejemplo, {"Fire": 5}).

ModelOverride

CampoTipoRequeridoPor defectoDescripcion
ModelstringSiRuta al archivo .blockymodel de reemplazo.
TexturestringSiRuta a la textura de reemplazo.
AnimationSetsobjectNoMapa de nombre de estado de animacion a definiciones de animacion (por ejemplo, Spawn, Despawn).

Ejemplos

Efecto de estado de quemadura (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"
}

Mejora de comida con aumento de salud 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"
}

Invulnerabilidad de carrera de daga (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