Pular para o conteúdo

Configuracoes de Projeteis

Visao Geral

Os arquivos de configuracao de projeteis definem como uma arma lanca um projetil: o modelo usado, parametros de fisica, posicao de spawn e o que acontece quando o projetil acerta, erra ou quica. Eles atuam como a ponte entre a acao de ataque de uma arma e a entidade de projetil em tempo de execucao. As configuracoes suportam heranca via campo Parent, permitindo que configuracoes base compartilhadas sejam substituidas por arma.

Localizacao dos Arquivos

Assets/Server/ProjectileConfigs/
Weapons/
Arrows/
Bows/
Crossbow/
Shortbow/
Staff/
Throwables/
...
NPCs/
_Debug/

Schema

CampoTipoObrigatorioPadraoDescricao
ParentstringNaoID de outra configuracao de projetil para herdar campos. Campos do filho sobrescrevem os do pai.
ModelstringNaoID do modelo visual usado para o projetil (ex: "Arrow_Crude", "Ice_Ball").
PhysicsPhysicsConfigNaoParametros de simulacao fisica. Veja abaixo.
LaunchForcenumberNaoForca escalar aplicada no lancamento, escalada pelo nivel de carga quando aplicavel.
LaunchLocalSoundEventIdstringNaoEvento sonoro reproduzido localmente para o atirador no lancamento.
LaunchWorldSoundEventIdstringNaoEvento sonoro reproduzido no mundo (audivel para jogadores proximos) no lancamento.
SpawnOffsetVector3NaoDeslocamento em espaco local (X/Y/Z) a partir da origem da arma onde o projetil surge.
SpawnRotationOffsetRotationOffsetNaoRotacao adicional aplicada ao projetil no spawn.
InteractionsInteractionMapNaoEventos de interacao nomeados e suas listas de acoes encadeadas. Veja abaixo.

PhysicsConfig

CampoTipoObrigatorioPadraoDescricao
Type"Standard"Nao"Standard"Modelo de simulacao fisica. Atualmente apenas "Standard" e usado.
GravitynumberNaoAceleracao gravitacional aplicada por segundo.
TerminalVelocityAirnumberNaoVelocidade maxima no ar.
TerminalVelocityWaternumberNaoVelocidade maxima na agua.
RotationMode"VelocityDamped" | "Fixed"NaoControla como a orientacao do projetil acompanha seu vetor de velocidade.
BouncinessnumberNao0Fracao de velocidade retida apos um quique em superficie.
BounceCountnumberNaoNumero de vezes que o projetil pode quicar antes de parar.
BounceLimitnumberNaoNumero maximo de quiques permitidos.
AllowRollingbooleanNaofalseSe o projetil pode rolar em superficies apos quicar.
SticksVerticallybooleanNaofalseSe o projetil se crava verticalmente em superficies no impacto.

Vector3

CampoTipoObrigatorioPadraoDescricao
XnumberSimDeslocamento lateral.
YnumberSimDeslocamento vertical.
ZnumberSimDeslocamento frontal.

RotationOffset

CampoTipoObrigatorioPadraoDescricao
PitchnumberNao0Deslocamento de pitch em graus.
YawnumberNao0Deslocamento de yaw em graus.
RollnumberNao0Deslocamento de roll em graus.

InteractionMap

O objeto Interactions mapeia nomes de eventos para objetos InteractionHandler. Chaves de evento suportadas:

ChaveQuando dispara
ProjectileSpawnImediatamente quando o projetil e criado.
ProjectileHitQuando o projetil acerta uma entidade.
ProjectileMissQuando o projetil acerta o terreno ou expira.
ProjectileBounceQuando o projetil quica em uma superficie.

InteractionHandler

CampoTipoObrigatorioPadraoDescricao
CooldownobjectNaoCooldown opcional controlando este handler.
Interactionsstring[] | object[]SimLista ordenada de IDs de interacao nomeados ou definicoes de interacao inline para executar.

Exemplos

Configuracao base de flecha (Assets/Server/ProjectileConfigs/Weapons/Arrows/Projectile_Config_Arrow_Base.json):

{
"Model": "Arrow_Crude",
"SpawnRotationOffset": {
"Pitch": 2,
"Yaw": 0.25,
"Roll": 0
},
"Physics": {
"Type": "Standard",
"Gravity": 15,
"TerminalVelocityAir": 50,
"TerminalVelocityWater": 15,
"RotationMode": "VelocityDamped",
"Bounciness": 0.0,
"SticksVertically": true
},
"LaunchForce": 30,
"SpawnOffset": {
"X": 0.15,
"Y": -0.25,
"Z": 0
}
}

Flecha de arco de duas maos (Projectile_Config_Arrow_Two_Handed_Bow.json) — herda da base e adiciona interacoes:

{
"Parent": "Projectile_Config_Arrow_Base",
"LaunchLocalSoundEventId": "SFX_Bow_T2_Shoot",
"LaunchWorldSoundEventId": "SFX_Bow_T2_Shoot",
"LaunchForce": 5,
"Interactions": {
"ProjectileHit": {
"Interactions": [
"Bow_Two_Handed_Projectile_Damage",
"Bow_Two_Handed_Projectile_Damage_End"
]
},
"ProjectileMiss": {
"Interactions": [
"Bow_Two_Handed_Projectile_Miss",
"Bow_Two_Handed_Projectile_Miss_End"
]
}
}
}

Configuracao de bola de gelo do cajado (Assets/Server/ProjectileConfigs/Weapons/Staff/Ice/Projectile_Config_Ice_Ball.json):

{
"Model": "Ice_Ball",
"LaunchForce": 30,
"Physics": {
"Type": "Standard",
"Gravity": 4.4,
"TerminalVelocityAir": 42.5,
"TerminalVelocityWater": 15,
"RotationMode": "VelocityDamped",
"Bounciness": 0.0,
"SticksVertically": true
},
"LaunchWorldSoundEventId": "SFX_Staff_Ice_Shoot",
"Interactions": {
"ProjectileHit": {
"Interactions": [
{
"Parent": "DamageEntityParent",
"DamageCalculator": {
"Class": "Charged",
"BaseDamage": { "Ice": 20 }
},
"DamageEffects": {
"Knockback": {
"Type": "Force",
"Force": 20,
"VelocityType": "Set"
},
"WorldParticles": [
{ "SystemId": "Impact_Ice" },
{ "SystemId": "IceBall_Explosion" }
],
"WorldSoundEventId": "SFX_Ice_Ball_Death"
}
},
{ "Type": "RemoveEntity", "Entity": "User" }
]
},
"ProjectileMiss": {
"Interactions": [
{
"Type": "Simple",
"Effects": {
"WorldSoundEventId": "SFX_Ice_Ball_Death",
"WorldParticles": [
{ "SystemId": "IceBall_Explosion" }
]
}
},
{ "Type": "RemoveEntity", "Entity": "User" }
]
}
}
}

Paginas Relacionadas

  • Projeteis — fisica de projeteis e valores de dano
  • Tipos de Dano — hierarquia de tipos de dano usada em BaseDamage