Saltearse al contenido

Proyectiles

Descripción General

Los archivos de proyectiles definen el comportamiento físico y las propiedades de daño de instancias individuales de proyectiles — flechas, hechizos y otros objetos disparados. Son la contraparte de datos de las Configuraciones de Proyectiles, que definen parámetros de lanzamiento y cadenas de interacción. Cada archivo de proyectil es referenciado por una cadena Appearance que lo vincula a los visuales del lado del cliente.

Ubicación del Archivo

Assets/Server/Projectiles/

Los subdirectorios agrupan los proyectiles por categoría:

Assets/Server/Projectiles/
Arrow_FullCharge.json
Arrow_HalfCharge.json
Arrow_NoCharge.json
Ice_Ball.json
Ice_Bolt.json
Roots.json
NPCs/
Player/
Spells/
Fireball.json

Esquema

CampoTipoRequeridoPor DefectoDescripción
AppearancestringID de apariencia del lado del cliente usado para buscar el modelo visual y textura del proyectil.
MuzzleVelocitynumberVelocidad inicial de lanzamiento en unidades/segundo en el momento del disparo.
TerminalVelocitynumberVelocidad máxima que el proyectil puede alcanzar en vuelo.
GravitynumberAceleración gravitacional descendente aplicada cada segundo. 0 para tiros perfectamente rectos.
BouncinessnumberNo0Fracción de velocidad retenida después de rebotar en una superficie. 0 = sin rebote.
ImpactSlowdownnumberNo0Reducción de velocidad aplicada en el impacto.
TimeToLivenumberNo0Segundos antes de que el proyectil sea destruido automáticamente. 0 = sin límite de tiempo.
DamagenumberDaño base causado en un impacto exitoso.
DeadTimenumberNo0Segundos que el proyectil permanece después de impactar un objetivo antes de ser eliminado.
DeadTimeMissnumberNoSegundos que el proyectil permanece después de fallar (impactar terreno).
SticksVerticallybooleanNofalseSi es true, el proyectil se incrusta verticalmente en las superficies en lugar de quedar acostado.
PitchAdjustShotbooleanNofalseSi es true, la inclinación del proyectil se corrige basándose en la trayectoria del arco.
HorizontalCenterShotnumberNo0Desplazamiento horizontal de precisión desde el centro de la mira.
VerticalCenterShotnumberNo0Desplazamiento vertical de precisión desde el centro de la mira.
DepthShotnumberNo1Multiplicador de profundidad para la detección de impactos.
RadiusnumberNoRadio de la esfera de colisión. Si se omite, se usa un hitbox de cápsula por defecto.
HeightnumberNoAltura de la cápsula de colisión.
HitSoundEventIdstringNoEvento de sonido reproducido al impactar una entidad.
MissSoundEventIdstringNoEvento de sonido reproducido al fallar contra el terreno.
BounceSoundEventIdstringNoEvento de sonido reproducido en cada rebote.
DeathSoundEventIdstringNoEvento de sonido reproducido cuando el proyectil expira naturalmente.
HitParticlesParticleRefNoSistema de partículas generado al impactar una entidad.
MissParticlesParticleRefNoSistema de partículas generado al fallar contra el terreno.
BounceParticlesParticleRefNoSistema de partículas generado en cada rebote.
DeathParticlesParticleRefNoSistema de partículas generado cuando el proyectil expira.
DeathEffectsOnHitbooleanNofalseSi es true, las partículas y sonidos de muerte también se activan en un impacto exitoso contra una entidad.
ExplosionConfigobjectNoConfigura una explosión de área de efecto en el impacto (ver abajo).

ParticleRef

CampoTipoRequeridoPor DefectoDescripción
SystemIdstringID del sistema de partículas a generar.

ExplosionConfig

CampoTipoRequeridoPor DefectoDescripción
DamageEntitiesbooleanNofalseSi la explosión daña entidades cercanas.
DamageBlocksbooleanNofalseSi la explosión daña bloques cercanos.
EntityDamageRadiusnumberNoRadio en unidades dentro del cual las entidades reciben daño.
EntityDamageFalloffnumberNo1.0Multiplicador de reducción de daño aplicado en el borde del radio.
BlockDamageRadiusnumberNoRadio en unidades dentro del cual los bloques son dañados.
KnockbackobjectNoRetroceso aplicado a las entidades en el radio de explosión.

Ejemplos

Flecha de carga completa (Assets/Server/Projectiles/Arrow_FullCharge.json):

{
"Appearance": "Arrow_Crude",
"SticksVertically": true,
"MuzzleVelocity": 50,
"TerminalVelocity": 50,
"Gravity": 10,
"Bounciness": 0,
"ImpactSlowdown": 0,
"TimeToLive": 20,
"Damage": 20,
"DeadTime": 0.1,
"HorizontalCenterShot": 0.1,
"VerticalCenterShot": 0.1,
"DepthShot": 1,
"PitchAdjustShot": true,
"HitSoundEventId": "SFX_Arrow_FullCharge_Hit",
"MissSoundEventId": "SFX_Arrow_FullCharge_Miss",
"HitParticles": {
"SystemId": "Impact_Blade_01"
}
}

Hechizo de bola de fuego (Assets/Server/Projectiles/Spells/Fireball.json):

{
"Appearance": "Fireball",
"Radius": 0.1,
"Height": 0.2,
"MuzzleVelocity": 40,
"TerminalVelocity": 100,
"Gravity": 4,
"Bounciness": 0,
"TimeToLive": 0,
"Damage": 60,
"DeadTime": 0,
"DeathEffectsOnHit": true,
"MissParticles": { "SystemId": "Explosion_Medium" },
"BounceParticles": { "SystemId": "Impact_Fire" },
"DeathParticles": { "SystemId": "Explosion_Medium" },
"MissSoundEventId": "SFX_Fireball_Miss",
"DeathSoundEventId": "SFX_Fireball_Death",
"ExplosionConfig": {
"DamageEntities": true,
"DamageBlocks": false,
"EntityDamageRadius": 5,
"EntityDamageFalloff": 1.0
}
}

Páginas Relacionadas