Saltearse al contenido

Encadenamiento de interacciones

Descripción general

Hytale construye comportamientos de juego complejos encadenando interacciones simples. Cada interacción tiene un Type y un campo opcional Next que apunta a la siguiente acción. Esto crea pipelines secuenciales que pueden incluir condiciones, daño, efectos, sonidos y más.

Cómo funcionan las cadenas de interacción

flowchart TD;
A[Player Uses Item] --> B{Condition Check};
B -->|"Game Mode = Adventure"| C[Apply Effect];
B -->|"Wrong Game Mode"| X[Chain Stops];
C -->|"EffectId: Burning"| D[Deal Damage];
D -->|"BaseDamage: Fire 10"| E[Chain Complete];
style A fill:darkgreen,color:white;
style X fill:darkred,color:white;
style E fill:steelblue,color:white;

Cadena de impacto de proyectil

flowchart LR;
A[Projectile Hits Entity] --> B["DamageEntity<br>Fire: 15"];
B --> C["RemoveEntity<br>Projectile destroyed"];
style A fill:darkgoldenrod,color:white;
style C fill:darkred,color:white;

Cadena de arma compleja

flowchart TD;
A[Player Swings Sword] --> B{Check Durability};
B -->|"Has durability"| C[Damage Target];
B -->|"Broken"| X[Play Break Sound];
C --> D[Apply Knockback];
D --> E{Critical Hit?};
E -->|"Yes"| F[Apply Stun Effect];
E -->|"No"| G[Play Hit Sound];
F --> G;
G --> H[Reduce Durability];
style A fill:darkgreen,color:white;
style X fill:darkred,color:white;

Estructura de la cadena

{
"Type": "Condition",
"RequiredGameMode": "Adventure",
"Next": {
"Type": "ApplyEffect",
"EffectId": "Burning",
"Next": {
"Type": "Damage",
"DamageCalculator": {
"BaseDamage": { "Fire": 10 }
}
}
}
}

Esta cadena: verifica el modo de juego -> aplica efecto de quemadura -> inflige daño de fuego.

Tipos de interacción

TypePropósitoCampos clave
ConditionFiltro basado en requisitosRequiredGameMode
ApplyEffectAplica un efecto de estadoEffectId
DamageInflige dañoDamageCalculator, BaseDamage
DamageEntityDaño al impactar proyectilDamageCalculator
RemoveEntityDestruye la entidad
SimpleInteracción básicaVaría
ConsumeUsa un objeto consumibleConsume_Charge, efectos

Dónde se usan las cadenas

  • Interacciones de objetos (Server/Item/Interactions/) — romper bloques, uso de herramientas
  • Configuraciones de proyectiles (Server/ProjectileConfigs/) — acciones al impactar y rebotar
  • Acciones de NPC — secuencias de habilidades de combate

Ejemplo de interacción de proyectil

{
"Interactions": {
"ProjectileHit": {
"Cooldown": 0,
"Interactions": [
{
"Type": "DamageEntity",
"DamageCalculator": { "BaseDamage": { "Fire": 15 } },
"Next": {
"Type": "RemoveEntity"
}
}
]
}
}
}

Páginas relacionadas