Ativa o menu
Alternar menu de preferências
Alternar menu pessoal
Não autenticado(a)
Your IP address will be publicly visible if you make any edits.

Actor properties

De Brdoom wiki

As propriedades a seguir podem ser definidas no bloco Default {} de um actor em DECORATE ou ZScript. Elas controlam várias características do seu actor, desde a aparência até o comportamento ou as propriedades físicas do actor. Para usar, basta especificar a propriedade e quaisquer valores associados em sua própria linha dentro da definição do actor e fora do bloco de states.

Propriedades do actor

Warning: ZScript exige uma definição mais rigorosa de valores dependendo do tipo deles do que o DECORATE, devido à verificação estrita de tipos. Para propriedades do tipo Name, os valores DEVEM ser fornecidos entre aspas (aspas duplas ou simples funcionam): por exemplo, BounceType 'Doom' ou RenderStyle 'Fuzzy' exigem isso, enquanto BounceType Doom não será reconhecido. Valores String devem ser fornecidos entre aspas duplas: por exemplo, Powerup.Color "GoldMap". Omitir aspas para essas propriedades causará erro de compilação na inicialização.

Porém, propriedades numéricas (que constituem a maioria) são definidas da mesma forma tanto em ZScript quanto em DECORATE.

Controle de edição de mapa

  • Game gamename
    (Não herdável; substituído por lump filtering; apenas DECORATE)
    Define o jogo em que o número de editor e o spawn ID devem ter efeito. Para WADs customizados normais isso não é necessário, mas pode ter alguma utilidade em WADs de recursos voltados a múltiplos jogos. Nomes de jogo válidos são:
    • Chex
    • Doom
    • Heretic
    • Hexen
    • Strife
    • Raven (Heretic + Hexen)
    Múltiplas declarações game são aditivas.
  • SpawnID value
    (Não herdável; substituído por MAPINFO; apenas DECORATE)
    Define o spawn number a ser usado com Thing_Spawn e derivados.
  • ConversationID value
    (Não herdável; substituído por MAPINFO; apenas DECORATE)
    Define o ID usado pelo sistema de diálogos de Strife. Esta propriedade permite usar diálogos em todos os jogos, não apenas Strife. Se você usar ZSDF em vez do formato binário ou USDF, então isso é desnecessário e, em vez disso, é definido por actor no mapa.
    Nota: alguns actors padrão de Strife definem três números aqui, mas para um mod apenas o primeiro é necessário. Os dois últimos são usados pelas duas versões demo “teaser” de Strife e, como o ZDoom não permite usar mods com uma versão demo, adicionar suporte aos teasers de Strife em um mod não faz sentido.
  • Tag name
    Dá um nome ao actor. Os nomes são usados na exibição de chaves na barra de status de Strife e como o nome padrão do actor nos diálogos de Strife, além do nome do item de inventário atualmente selecionado quando o console command invquery é chamado.
    Nota: Isto foi feito para ser o “nome de exibição” do actor. Assim, deve ser considerado uma string voltada ao jogador e, como todas as strings desse tipo, é recomendado processá-la via lump LANGUAGE em vez de escrevê-la diretamente no código.

Comportamento

  • Health value
    Define a vida com que um monster ou qualquer outro item que pode ser atingido (shootable) começa.
    O padrão é 1000.
  • GibHealth value
    Define a vida (negativa) abaixo da qual este actor entra na sequência de morte extrema. Se isso não for definido, o valor depende do jogo, conforme definido em GameInfo definition com a propriedade gibfactor. Em Doom é o negativo da vida de spawn; nos outros jogos é metade do negativo da vida de spawn.
    Se houver necessidade de checar o GibHealth de um actor, use a função GetGibHealth em vez de ler a variável gibhealth diretamente.
  • WoundHealth value
    Define a vida abaixo da qual o actor entra no state Wound. O padrão é 6.
  • ReactionTime value
    Tempo em tics (1/35 de segundo) que um monstro leva para atacar após ser alertado. Atacar um monstro faz com que ele reaja imediatamente, independentemente do reaction time. Um valor negativo faz com que um monstro nunca ataque a menos que seja atacado primeiro. Normalmente não há necessidade de mudar esse valor, mas ele pode ser usado como contador para A_Countdown.
    O padrão é 8.
  • PainChance value
  • PainChance damagetype, value
    Probabilidade de entrar no pain state (256 = sempre, 0 = nunca). Você também pode especificar PainChance por tipo de dano. Fontes de dano que tenham a flag FORCEPAIN ignoram esta propriedade.
    O padrão é 0.
  • PainThreshold value
    Quantidade mínima de dano necessária para que o actor possa potencialmente entrar em seu Pain state. Fontes de dano que tenham a flag FORCEPAIN ignoram esta propriedade.
    O padrão é 0.
  • DamageFactor type, value
  • DamageFactor value
    Se o actor receber dano do tipo especificado, esse dano é multiplicado pelo valor especificado.
    É necessária uma vírgula entre type e value. value pode ser decimal; zero significa que o actor é completamente imune a esse tipo de dano.
    O padrão é 1.0.
    O máximo que esse valor pode atingir é 32767. DamageFactor é ignorado se o dano for 1.000.000 ou mais.
    Veja também Custom damage types
    Se nenhum tipo for fornecido, o fator se aplica a todos os tipos de dano, não especificados para o actor.
  • SelfDamageFactor value
    Um multiplicador para dano auto-infligido. Isso é ignorado se o dano for 1.000.000 ou mais.
    O padrão é 1.0.
  • DamageMultiply value
    Multiplicador de dano genérico. Isso é tipicamente usado em actors (por exemplo, monsters) para fortalecer ou enfraquecer o dano que eles causam com seus ataques.
    O padrão é 1.0.
  • Damage value
  • Damage (expression) Predefinição:Decoratefeaturesmall
    Para um projétil, define o dano que ele causa ao impacto. A fórmula é random(1,8) * damage, ou random(1,4) * damage se a flag STRIFEDAMAGE estiver definida.
    Isso também define o dano para actors que atacam como o Lost Soul. A fórmula para isso é random(1,8) * damage.
    damage também é usado para definir quantas balas são disparadas pela função genérica de ataque hitscan A_BulletAttack.
    Em DECORATE, fórmulas de dano customizadas podem ser especificadas colocando o value inteiro entre parênteses. Por exemplo: damage (random(4,8) * 5 + 6). Além disso, ACS_ExecuteWithResult e user variables podem ser usados como parte da expressão de dano; isso permite cálculos de dano mais sofisticados. A fórmula de dano é avaliada no momento em que o actor causa dano (por exemplo, impacto de projétil/hitscan). Usar uma expressão para dano ignora o cálculo normal e aplica exatamente o dano resultante da fórmula customizada. Para obter o mesmo em ZScript, use DamageFunction. Aviso: Expressões de dano customizadas podem ser definidas, mas NÃO vão funcionar de fato em ZScript (mesmo que o log do console não mostre erros). Use DamageFunction (descrita abaixo) para usar uma expressão customizada em ZScript.
    Para modificar o dano de uma instância existente de actor em ZScript, use SetDamage (já que o campo damage não é modificável diretamente).
    O padrão é 0.
  • DamageFunction (expression)
  • DamageFunction FormulaName()
    Predefinição:Zscriptfeaturesmall
    Similar a Damage, define o dano do actor. O que é passado é sempre tratado como uma expressão, seja um valor único ou uma fórmula, e não é sujeito à randomização como em Damage. Esta propriedade e Damage são consideradas a mesma propriedade, ou seja, um actor só pode ter uma ou outra, mas não ambas. Se ambas forem especificadas, apenas Damage é usada, enquanto DamageFunction é ignorada. Note que a função deve ser definida como uma função normal, fora do bloco Default. A função pode usar qualquer nome.
    O uso com exemplos é descrito em detalhes na página dedicada DamageFunction.
  • PoisonDamage value [, duration [, period]]
    Dá a um projétil dano de veneno. Dano de veneno não é aplicado de uma vez, mas afeta a vítima por um certo tempo. O valor especificado aqui define quanto tempo o efeito de envenenamento dura. Lembre-se: o dano de veneno só afeta jogadores se apenas value for especificado (veneno ao estilo Hexen). Caso contrário, ele também afeta outros actors (veneno ao estilo ZDoom).
    O dano de veneno é aplicado a cada period tics (o valor padrão 0 significa uma vez por segundo). Se um duration não-zero for fornecido, ele é usado como o tempo total do envenenamento; caso contrário, a duração depende de value. Veja também ADDITIVEPOISONDAMAGE e ADDITIVEPOISONDURATION.
  • PoisonDamageType type
    Muda o tipo de dano do veneno, sobrescrevendo o tipo padrão.
  • RadiusDamageFactor value
    Define o fator pelo qual o dano de raio (radius damage) neste actor é multiplicado.
  • MissileChanceMult value
    Um multiplicador para o quão provável é o actor fazer um ataque à distância. Quanto mais perto de 0.0, mais provável ele atacar; quanto maior, menos provável. 0.125 equivale a MISSILEEVENMORE, 0.5 equivale a MISSILEMORE, e 0.0625 equivale a ambas as flags ligadas.
    O padrão é 1.0.
  • RipperLevel value
    Usado por projéteis ou qualquer coisa capaz de funcionar com a flag RIPPER. Especifica o “nível” (o quão alto) que um projétil pode atravessar (rip through) em termos de monstros com diferentes valores mínimos e máximos.
    Um projétil abaixo do mínimo de um monstro ou acima do máximo significa que esse projétil não vai atravessá-lo. Todas as propriedades de ripper são ignoradas se a flag DONTRIP estiver presente no monstro e ele não será atravessado independentemente do nível.
    Quando usado em um monstro, porém, e nenhum mínimo ou máximo é definido, apenas aquele nível específico pode atravessá-lo.
    O valor pode ser negativo para isso, RipLevelMin e RipLevelMax.
  • RipLevelMin value
    Usado por monstros. Apenas projéteis que atinjam este nível ou maior podem atravessar este monstro. O padrão é 0.
  • RipLevelMax value
    Usado por monstros. Apenas projéteis que atinjam este nível ou menor podem atravessar este monstro. O padrão é 0, o que significa que qualquer coisa acima do mínimo pode atravessá-lo.
  • DesignatedTeam number
    Atribui o actor ao time especificado pelo número em TEAMINFO. Em jogo por times, o actor não vai receber dano de fogo amigo de companheiros de time a menos que a console variable teamdamage esteja definida. Se o monstro for amigável, ele não irá mirar em companheiros de time.
    O padrão é sem time.
  • Speed value
    Define o quão rápido um actor se move. Para projectiles, esta é a distância que ele se move por tic (1/35 de segundo). Para monsters, define o tamanho de um passo feito em A_Chase. A velocidade de movimento do Player também depende da propriedade Player.ForwardMove.
    O padrão é 0.
  • VSpeed value
    Dá a um actor um momentum vertical inicial. Quanto maior o valor, mais momentum. Isso é usado principalmente para actors de efeitos especiais (por exemplo, puffs de armas) com a flag NOGRAVITY para fazê-los flutuar para cima.
  • FastSpeed value
    Define a velocidade para “fast monsters” e modo nightmare. Note que, se você usar isso em um monstro, esse monstro terá a velocidade diferente pelo resto da vida. O modo Fast Monster faz com que monstros e projéteis usem sua propriedade FastSpeed em vez da velocidade definida quando as flags +fastmonsters ou +alwaysfast são usadas. Fast monsters reduz pela metade a duração de actor states com a palavra-chave Fast. Fast monsters pode ser configurado de muitas formas, como usando a flag +ALWAYSFAST ou +fastmonsters.
  • FloatSpeed value
    Define a velocidade com que o objeto flutua para cima/baixo quando a flag FLOAT está definida.
    O padrão é 4.
  • Species string
    Define a espécie à qual o monstro pertence. Isso determina o comportamento de infighting, já que, por padrão, o míssil de um monstro não causa dano (exceto por splash damage) a outros monstros da mesma espécie.
    Quando usada com keys, esta propriedade permite que novas chaves abram os mesmos locks das chaves às quais elas fazem referência com a propriedade, sem precisar redefinir os locks para adicionar as novas chaves. Por exemplo, definir a espécie da chave como RedCard fará com que ela abra locks como se fosse um cartão vermelho.
    O padrão é None, o que faz o jogo procurar o actor do qual este actor herda e que tenha esta propriedade definida para outro valor.
  • Accuracy value
    Define a precisão do objeto. Quanto maior o valor, mais preciso o objeto é considerado.
    Para jogadores, este valor entra no cálculo de precisão das funções nativas de disparo de armas de Strife.
    Para monstros e outros actors, este valor não tem um efeito predeterminado, mas pode ser referenciado em outros lugares via a variável DECORATE accuracy e a propriedade de actor APROP_Accuracy.
  • Stamina value
    Define a stamina do objeto.
    Para jogadores, cada ponto de stamina adiciona um ponto ao pool de vida máxima do jogador. O valor também é usado no cálculo de dano da punch dagger de Strife.
    Para monstros e outros actors, este valor não tem um efeito predeterminado, mas pode ser referenciado em outros lugares via a variável DECORATE stamina e a propriedade de actor APROP_Stamina.
  • Activation flags
    Define como o actor vai executar seu special. Além disso, algumas dessas flags permitem que o actor chame suas funções virtuais Activate e Deactivate. Os detalhes são cobertos na página Activation.
    As seguintes flags estão disponíveis (múltiplas flags podem ser combinadas usando | entre elas):

Thing activation flags

  • TeleFogSourceType classname
    Define a fog deixada para trás quando um actor teleporta para fora. Pode ser mudada com A_SetTeleFog.
    O padrão é TeleportFog.
  • TeleFogDestType classname
    Define a fog que o actor vai spawnar quando chegar. Pode ser mudada com A_SetTeleFog.
    O padrão é TeleportFog.
  • Threshold value
    Define por quanto tempo um actor vai manter um alvo após trocar de alvo por infighting. Por exemplo, se um imp troca de alvo porque foi atingido por um zombieman, ele precisa chamar A_Chase esta quantidade de vezes antes de estar pronto para trocar de novo. Note que ataques adicionais que causem dor do mesmo alvo redefinem este valor, fazendo com que ele fique com aquele alvo por mais tempo. QUICKTORETALIATE sobrescreve esta propriedade, e a propriedade é ajustável com A_SetChaseThreshold. Note que esta propriedade é redefinida para DefThreshold, permitindo que monstros tenham timers de infighting flexíveis.
  • DefThreshold value
    Define o valor padrão usado ao redefinir o threshold quando o actor troca o infighting de monstros. Ajustável com A_SetChaseThreshold.
  • FriendlySeeBlocks value
    (Aviso: não é recomendado definir esta propriedade para valores altos, pois isso pode ter impacto negativo em performance.)
    Define o raio máximo em que um monster amigável ou um monstro não amigável com SEEFRIENDLYMONSTERS ligado consegue ver inimigos. Isto é medido em blocos de 128x128 unidades de mapa.
    O padrão é 10 (1280 unidades de mapa).
  • ShadowAimFactor value
    Define o quanto a mira do actor é degradada ao atirar em actors com SHADOW e/ou SHADOWBLOCK. Isso permite que o atirador seja melhor ou pior em acertar actors shadow do que o normal. O padrão é 1.0.
  • ShadowPenaltyFactor value
    Usado por actors com SHADOW e/ou SHADOWBLOCK para aumentar ou reduzir o quanto eles pioram a mira de actors atirando neles ou através deles. O padrão é 1.0.

Colisões e física

  • Radius value
    Define o raio deste actor.
    O padrão é 20.
    Notas:
    • Usar valores muito pequenos pode provocar glitches na detecção de colisão.
    • O diâmetro total é o dobro deste valor, então um actor com raio 64 na verdade tem 128 unidades de comprimento e largura, tornando impossível, por exemplo, navegar por um corredor com 128 unidades de largura.
  • Height value
    Define a altura deste actor.
    O padrão é 16.
    Nota: usar valores muito pequenos pode provocar glitches na detecção de colisão.
  • DeathHeight value
    Define a altura que este actor tem após morrer.
    O padrão é 1/4 da altura original.
  • BurnHeight value
    Define a altura que este actor tem após morrer por Predefinição:DamageType.
    O padrão é 1/4 da altura original.
  • ProjectilePassHeight value
    Define a altura do actor para fins de permitir que projéteis passem através. Se isso for 0, a altura do actor é usada. Se o valor for positivo, ele sobrescreve a altura do actor no contexto de colisão de projéteis: definir para um valor menor que Height reduz a hitbox vertical para projéteis, enquanto definir para um valor maior a aumenta. Por exemplo, se Height é 60 mas ProjectilePassHeight é 70, projéteis poderão atingir o monstro se passarem a até 10 unidades acima de sua “cabeça”; enquanto se Height é 60 mas ProjectilePassHeight é 30, projéteis passarão pelo actor se atingirem acima de 30 unidades a partir da base.
    Se o valor for negativo, o valor absoluto será usado se a opção de compatibilidade associada estiver ligada.
  • Gravity value
    A quantidade de gravidade que afeta este actor. Valores menores que 1 reduzem a gravidade, enquanto valores maiores que 1 a aumentam.
    O padrão é 1.0.
  • Friction value
    A quantidade de atrito que afeta este actor. Valores menores que 1 aumentam o atrito, enquanto valores maiores que 1 o reduzem. Note que isso é multiplicado pelo atrito do próprio setor.
    O padrão é 1.0.
  • Mass value
    Define a massa deste actor. Quanto maior a massa, menos um actor se move quando é empurrado (thrust) por dano. Se for menor que 10, o actor também vai produzir pequenos terrain splashes em vez dos normais.
    O padrão é 100.
    Nota: dar a um actor uma massa extremamente alta para tentar torná-lo impossível de empurrar deve ser evitado em favor do uso da flag DONTTHRUST. Massa alta não exclui o actor dos cálculos de thrust, o que pode afetar a performance. Além disso, se um actor estiver preso em outro ou numa parede e então receber thrust por dano ou A_RadiusThrust, ele pode ser morto quase instantaneamente se RTF_NOIMPACTDAMAGE não for usado.
  • MaxStepHeight value
    Define a altura máxima de um degrau que este actor consegue subir ao se mover. O padrão é 24.
  • MaxDropOffHeight value
    Define a altura máxima de um degrau que este actor consegue descer ao se mover. Normalmente isso só se aplica a monstros, mas ao definir a flag NODROPOFF, isso se aplica a todas as formas de movimento.
    O padrão é 24.
  • MaxSlopeSteepness value
    Define a inclinação máxima de uma rampa (slope) que pode ser percorrida ao se mover, com base no componente Z da normal dela. Assim, um valor 1 faria apenas pisos perfeitamente planos serem caminháveis, enquanto qualquer rampa empurraria o actor para baixo; e um valor 0 tornaria praticamente qualquer tipo de rampa caminhável, não importa o quão íngreme.
    O padrão é STEEPSLOPE (46342 / 65536 = 0.707122...), o que limita o movimento a rampas de 45 graus ou menos.
  • BounceType name
    Define a forma como o actor quica (bounce). Veja também bounce flags. Nomes válidos incluem:
    • None: o actor não quica. Este é o valor padrão.
    • Doom: o actor quica em planos e paredes até perder momentum suficiente para parar.
    • Heretic: o actor quica apenas em planos — e entra em seu state Death ao quicar!
    • Hexen: o actor quica em planos e paredes.
    • Classic: o actor quica apenas em planos e é considerado um bouncer MBF.
    • Grenade: o actor quica em planos e paredes e é considerado um bouncer MBF.
    • DoomCompat, HereticCompat, HexenCompat: igual a Doom, Heretic ou Hexen respectivamente, mas o actor usa seu SeeSound em vez de BounceSound e WallBounceSound.
  • BounceFactor value
    Define o fator pelo qual o momentum deste actor será reduzido ao quicar em tetos e pisos. Isso só tem efeito se BounceType não for None. O padrão é 0.7. A propriedade WallBounceFactor pode ser usada para reduzir o momentum do actor quando ele quica em paredes.
  • WallBounceFactor value
    Define o fator pelo qual o momentum deste actor será reduzido ao quicar em paredes. Isso só tem efeito se BounceType não for None. O padrão é 0.75.
  • BounceCount value
    Define a quantidade de quicadas que este actor pode fazer antes de explodir. Isso só tem efeito se BounceType não for "None". O padrão é infinito, mas, por exemplo, as granadas incendiárias e explosivas de Strife só quicam duas vezes antes de explodir.
  • ProjectileKickBack value
    Similar a Weapon.KickBack, isso afeta o quanto o projétil vai empurrar seu alvo ao impacto. Esta propriedade sobrescreve o kickback de uma arma para projéteis arremessados por armas.
  • PushFactor value
    Define o quanto um actor com a flag PUSHABLE definida pode ser empurrado. O momentum do empurrador é multiplicado por esta quantidade e aplicado ao actor empurrado. O valor padrão é 0.25. Um valor 0.0 equivale a não ter a flag definida, enquanto um valor maior que 1.0 faz ele se mover mais rápido que o empurrador.
  • WeaveIndexXY value
    Define o índice de weave inicial para projéteis que usam as funções A_Weave, A_BishopMissileWeave e A_CStaffMissileSlither. O valor deve estar no intervalo 0—63.
  • WeaveIndexZ value
    Define o índice de weave inicial para projéteis que usam as funções A_Weave, A_BishopMissileWeave e A_CStaffMissileSlither. O valor deve estar no intervalo [0,63].
  • ThruBits value
    Permite definir “grupos” de desativação de colisão com números deslocados por bits. Isso só tem efeito se ALLOWTHRUBITS estiver ligado no actor.
    O padrão é 0, o que colide com tudo independentemente de qual grupo esteja definido para os outros.
enum EGroups
{
	ThruGroup1 = 1 << 0,
	ThruGroup2 = 1 << 1,
	//...
	ThruGroup31 = 1 << 30,
	ThruGroup32 = 1 << 31 // Este é o máximo que pode chegar, totalizando 32 grupos.
};

Default
{
	+ALLOWTHRUBITS // A flag é necessária para ativar isso.

	// Qualquer um que esteja em 'ThruGroup3' ou 'ThruGroup4' também vai atravessar. Grupos podem ser combinados com o símbolo '|' sem o .
	ThruBits (ThruGroup3|ThruGroup4); 
}

Som

  • ActiveSound soundname
Define o som que o actor faz quando está ativo.
Puffs de ataque melee tocarão este som (se definido) quando o ataque errar (não acertar nada ou acertar um plano de céu).
  • AttackSound soundname
    Define o som que o actor faz ao atacar.
Puffs tocarão este som quando o ataque acertar uma parede/plano. Puffs de bala também podem tocar isso quando o ataque não acerta nada (isto é, acerta um plano de céu ou termina no ar devido ao alcance limitado), desde que o puff tenha ALWAYSPUFF.
  • BounceSound soundname
    Define o som que o actor faz ao quicar. Se WallBounceSound estiver definido, aplica-se apenas ao quicar em um piso.
  • CrushPainSound soundname
    Define o som que o actor faz ao ser esmagado.
  • DeathSound soundname
    Define o som que o actor faz ao morrer ou quando um projétil explode. Para não-projéteis, o som de morte deve ser tocado explicitamente com A_Scream.
  • HowlSound soundname
    Define o som que o actor faz ao ser eletrocutado ou envenenado.
  • PainSound soundname
    Define o som que o actor faz quando sente dor. Para ouvir este som, A_Pain precisa ser chamado.
  • RipSound soundname
    Define o som que o projectile faz quando atravessa (rips) actors que podem receber dano.
    O padrão é "misc/ripslop".
  • SeeSound soundname
    Define o som que o actor faz quando vê o jogador (para monstros) ou quando um projétil é spawnado.
Puffs também tocarão este som quando o ataque acertar um actor shootable que não sangra. Puffs também podem tocar isso ao acertar um actor shootable que sangra, desde que tenham as flags certas (PUFFONACTORS para puffs de bala e melee, e ALWAYSPUFF para puffs de railgun).
  • WallBounceSound soundname
    Define o som que o actor faz ao quicar em uma parede. Se esta propriedade não estiver definida, o BounceSound será tocado em vez disso.
  • PushSound soundname
    Define o som que o actor faz quando é empurrado por outro actor. Isso só funciona em actors com PUSHABLE.

Renderização

  • RenderStyle type
    Define como este actor é renderizado. O valor é um Name, então em ZScript ele deve ser especificado entre aspas simples ou duplas. Valores possíveis incluem:
    • 'None' - o actor é invisível.
    • 'Normal' - o actor é visível e não é translúcido.
    • 'Fuzzy' - como o Spectre em Doom.
    • 'SoulTrans' - o actor é translúcido, numa quantidade determinada por transsouls CVAR.
    • 'OptFuzzy' - o actor é fuzzy ou translúcido, com base em preferência do usuário.
    • 'Stencil' - o actor é desenhado como uma única cor. Use a propriedade StencilColor para definir a cor a ser usada. Note que internamente isso define o campo renderstyle do actor para STYLE_Stencil, mas se o valor de Alpha for definido para algo abaixo de 1.0, renderstyle será definido para STYLE_TranslucentStencil, e a translucidez será habilitada no actor.
    • 'AddStencil' - o mesmo que 'Stencil', só que aditivo.
    • 'Translucent' - o actor é translúcido.
    • 'Add' - o actor usa translucidez aditiva.
    • 'Subtract' - o actor usa translucidez reversa-subtrativa.
    • 'Shaded' - trata imagens indexadas em 8-bit como um mapa alpha. Índice 0 = totalmente transparente, índice 255 = totalmente opaco. É assim que decals são desenhados. Use a propriedade StencilColor para colorir o sprite resultante.
    • 'AddShaded' - o mesmo que 'Shaded', só que aditivo.
    • 'Shadow' - equivalente a um stencil preto translúcido com alpha 0.3.
    O padrão é 'Normal'.
    Veja a página dedicada Renderstyle para os nomes das constantes internas e uma demonstração de como esses estilos se parecem.
  • Alpha value
    Define a opacidade/intensidade para os render styles Translucent, Add, Subtract e Stencil. O intervalo é [0.0, 1.0].
    O padrão é 1.0.
  • DefaultAlpha
    Define o valor alpha do actor para 0.4 ao jogar Heretic e para 0.6 ao jogar os outros jogos.
  • StealthAlpha value
    Define o valor mínimo de visibilidade de um stealth monster.
    O padrão é 0.
  • XScale value
    Define a escala X deste actor. Valores negativos são válidos e resultarão em espelhamento do sprite no eixo.
    O padrão é 1.0.
  • YScale value
    Define a escala Y deste actor.
    O padrão é 1.0.
  • Scale value
    Combina XScale e YScale.
    O padrão é 1.0.
  • LightLevel value
    Especifica o nível de luz absoluto do actor, independente do nível de luz dos setores. Este valor pode variar de 0 a 255. A flag ADDLIGHTLEVEL faz com que esta propriedade some ou subtraia do nível de luz do setor atual do actor.
    O padrão é -1, o que significa que o actor usa apenas o nível de luz dos setores.
  • Translation value
    Define uma das traduções padrão de Doom (que traduzem a faixa de cor verde) como padrão. O intervalo é 0-2 e corresponde às traduções padrão de Doom de cinza (0), marrom (1) e vermelho (2). Strife define mais, mas elas só podem ser usadas ao jogá-lo.
    O padrão é nenhuma tradução.
  • Translation translationstring [, translationstring [,....]]
  • Translation "translationname"
    Define uma tradução customizada para este actor. Pode haver 65536 traduções customizadas ao mesmo tempo. Todas as translation strings especificadas são adicionadas para criar uma tabela final de tradução (veja Translation para a sintaxe das translation strings).
    A tradução pode ser definida diretamente, ou definida em TRNSLATE e então referenciada pelo nome.
  • Translation Ice
    Este uso especial da propriedade Translation instruirá o ZDoom a usar a tradução de gelo embutida ao renderizar este actor. A principal vantagem disso é para o GZDoom, onde a faixa de gelo usa cores fora da paleta normal de Doom e, portanto, é difícil de recriar com uma tradução normal.
  • BloodColor color
    Define a cor do sangue do actor. Pode haver até 256 cores de sangue customizadas diferentes ao mesmo tempo. color é especificado como 3 inteiros, uma string "rr gg bb" ou uma string contendo um dos nomes especiais de cor.
  • BloodType replaceblood [, replacebloodsplatter [, replacebloodaxe]]
    Diz ao ZDoom qual classe spawnar quando o actor é atingido por uma arma, substituindo o sangue padrão. Se apenas um tipo for especificado, ele será usado para todos os 3 actors de sangue.
  • Decal decalname
    Permite especificar aqui o decal que este actor cria em vez de ter que editar também o lump DECALDEF.
    Decals podem ser herdados dessa forma em vez de serem especificados para cada actor. Note que os decals dos projéteis padrão de Doom são definidos via DECALDEF e actors customizados baseados neles não herdarão seus decals.
    Decals podem ser especificados dentro de definições de arma ou de bullet puff. Se ambos existirem, a definição da arma tem precedência a menos que a flag FORCEDECAL esteja definida no puff.
    Decals de railgun puff exigem que a flag FORCEDECAL esteja definida no puff.
    Para um projétil deixar um decal, ele deve existir por pelo menos um tic no seu Death state — caso contrário, nenhum decal será “espirrado”.
  • StencilColor color
    Define a cor a ser usada ao usar o RenderStyle Stencil ou Shaded.
  • FloatBobPhase value
    Define a fase inicial de bob para o actor. Actors com o mesmo valor de fase fazem bob em sincronia uns com os outros. O intervalo de fases vai de -1 a 63, com -1 escolhendo aleatoriamente uma fase no intervalo [0,63].
    O padrão é -1.
  • FloatBobStrength value
    Define a magnitude do comportamento de bob criado pela flag FLOATBOB, efetivamente determinando a distância que o actor percorrerá ao fazer bob. Um valor 1.0 produz o comportamento visto em Heretic e Hexen, enquanto valores maiores e menores produzem um bob mais e menos extremo, respectivamente. Note que isso só muda a distância percorrida ao fazer bob, mas não o tempo para percorrer essa distância.
    O padrão é 1.0.
  • FloatBobFactor value
    Define a velocidade do comportamento de bob criado pela flag FLOATBOB. Quanto menor, mais rápido o actor vai visualmente subir e descer (então, 0.5 significa duas vezes mais rápido, 2.0 significa metade da velocidade). Este valor deve sempre ser maior que 0.
    O padrão é 1.0.
  • DistanceCheck cvarname
    Um actor com esta propriedade não é renderizado se a visão do jogador estiver a uma distância do actor que seja igual ou maior que o valor da console variable especificada. Apenas console variables inteiras são aceitas.
  • SpriteAngle angle
    Define o ângulo absoluto em que o sprite será desenhado naquele ângulo. Isso exige que +SPRITEANGLE tenha efeito e, uma vez habilitado, sobrescreve todas as outras propriedades de ângulo de sprite. Isso não afeta o ângulo real do actor; em vez disso, afeta o sprite que o jogador veria se o estivesse vendo daquele ângulo. Útil para coisas como decals, FLATSPRITE, e mais. Veja GetSpriteAngle e A_SetSpriteAngle para manipulação em runtime.
0 é as costas do actor.
90 é o actor virado para a direita.
180 é a frente do actor. Etc.
  • SpriteRotation angle
    Aplica um offset ao ângulo do sprite do actor em graus. Isso permite que actors pareçam estar virados para uma direção enquanto realmente olham para outra. Use GetSpriteRotation e A_SetSpriteRotation para manipulação em runtime.
  • VisibleAngles start, end
  • VisiblePitch start, end
    Define o intervalo em que o sprite é desenhado se a câmera do jogador estiver olhando para ele a partir daquele intervalo de ângulo/pitch. Vê-lo fora desse intervalo não irá renderizá-lo. Pode ser modificado com A_SetVisibleRotation.
    Nota: estas propriedades exigem que a flag MASKROTATION esteja definida para funcionar. Além disso, elas precisam ser usadas juntas para funcionar corretamente (bug?).
  • RenderRadius radius
    Define uma caixa de colisão visual de forma similar a Radius. O actor tem garantia de ser desenhado se qualquer setor dentro desse alcance for desenhado, mesmo que o setor principal do actor não esteja visível. Isso também afeta luzes dinâmicas ao redor do actor, o que é útil para garantir que luzes distantes iluminando um actor com um modelo grande funcionem corretamente.
    Se este valor for menor que Radius, Radius é usado em vez disso. Um valor 0 restringe o actor ao setor de origem, correspondendo ao comportamento do engine vanilla Doom; enquanto um valor -1 faz o actor ser removido até mesmo da lista de renderização do setor de origem, o que pode ser útil para otimizar performance de actors que deveriam ser invisíveis.
    O padrão é 0.0.
  • CameraHeight value
    Define a altura em que a visão é renderizada quando o actor é usado como câmera.
  • CameraFOV value
    Define o campo de visão quando o actor é usado como câmera.
    O padrão é 90.0.
  • AutomapOffsets (value, value) Predefinição:Zscriptfeaturesmall
    Desloca visualmente a posição em que o actor é renderizado no automapa, quando a exibição de sprites está habilitada. Pode ser usado para efeitos como fazer um actor feito de múltiplas partes (como um veículo com uma torre) ser renderizado corretamente, em vez de parecer “afundado” por ambos os actors ocuparem a mesma posição XY. Esta é uma propriedade vector2, então ela é definida assim: AutomapOffsets (20,40);
    O padrão é (0,0).

Obituários

Obituários são mensagens exibidas no log quando um jogador é morto por um monstro, projétil ou arma. A string pode ser usada diretamente no código DECORATE ou colocada em um lump LANGUAGE e referenciada pelo seu identificador. Começar uma string com o caractere $ a marca como um identificador. Os seguintes placeholders podem ser usados dentro da própria string:

  • %o: nome da vítima
  • %k: nome do assassino
  • %g: ele/ela/eles/elas/isso, dependendo do gênero da vítima
  • %h: ele/ela/eles/elas/isso
  • %p: dele/dela/deles/delas/disso
  • %s: dele/dela/deles/delas/disso
  • %r: ele é/ela é/eles são/elas são/isso é

Os actors definidos em gzdoom.pk3 sempre usam uma referência a um identificador no lump LANGUAGE; porém, para fins de referência, a string correspondente em inglês é fornecida como um comentário. Você pode sobrescrever um obituário padrão redefinindo-o em um LANGUAGE lump customizado, evitando a necessidade de substituir o actor inteiro.

Note que, em deathmatch, se a console variable cl_bbannounce for true, o Bloodbath announcer substitui os obituários de armas por suas próprias strings aleatórias.

  • HitObituary string
    Define a string de obituário para um ataque melee deste actor, identificado como tal pelo tipo de dano ser Melee. Se não estiver presente, Obituary é usado em vez disso.
  • Obituary string
    Define a string de obituário para este actor. Para armas, esta propriedade pode ser usada diretamente na arma ou no puff para ataques hitscan ou rail, mas ela deve estar no projétil para ataques de míssil.
  • SelfObituary string Predefinição:Git
    Define uma string de obituário para o caso de o actor fazer algo que o faça se matar, como um jogador se explodindo.

Ataques

  • MinMissileChance value
    Esta é uma parte do cálculo de probabilidade de ataque de míssil. Quanto menor este valor, mais agressivo o monstro é. Isso pode ser combinado com as flags MISSILEMORE e MISSILEEVENMORE.
    O valor padrão é 200.
  • DamageType 'type'
    Pode ser usado para dar a um ataque um tipo de dano. Isso pode ser definido em um projectile, um puff customizado, ou — no caso de ataques melee de monstros apenas, já que eles não usam puffs — em um monstro. Um número de tipos de dano pré-definidos está disponível, mas é possível definir seus próprios tipos de dano customizados. Tipos de dano são identificados apenas pelo nome e não precisam ser declarados em nenhum outro lugar.
    Nota: Um ataque só pode causar dano de um tipo. Se múltiplas propriedades DamageType forem definidas por algum motivo, a última será usada.
    Aviso: Em ZScript, o type precisa ser especificado dentro de aspas simples (ou duplas), já que é um name. Em DECORATE, aspas duplas ou nenhuma aspa funcionam.
  • DeathType 'type'
    Se usado em um projectile ou puff, quando o ataque dado matar outro actor, o actor usará uma sequência de Death state correspondente se ela existir. Por exemplo, se um projétil com DeathType 'Melt' matar um monstro, o monstro entrará na sequência de states Death.Melt se ela existir.
    Em contraste com DamageType, DeathType não implica um tipo de dano e não faz o dano do ataque ser modificado pelos fatores de dano da vítima.
    Aviso: Em ZScript, o type precisa ser especificado dentro de aspas simples (ou duplas), já que é um name. Em DECORATE, aspas duplas ou nenhuma aspa funcionam.
  • PainType 'type'
    Igual a DeathType, mas se aplica a Pain states: se usado em um projectile ou puff, quando o ataque dado ferir outro actor, o actor usará uma sequência de Pain state correspondente se ela existir.
  • MeleeThreshold value
    Um actor com esta propriedade definida não atacará seu alvo com um ataque de míssil se ele estiver dentro do alcance especificado; em vez disso, ele tentará (se estiver perseguindo) se aproximar para engajar em melee. Deve ser usado no lugar da antiga flag LONGMELEERANGE.
  • MeleeRange value
    Especifica a distância máxima até um alvo em que um ataque melee causa dano. A distância é calculada do centro do atacante até a bounding box do alvo.
    Todos os ataques melee de monstros usam este valor como alcance de melee. Isso inclui A_BasicAttack, A_ComboAttack, A_CustomComboAttack, A_CustomMeleeAttack, A_MeleeAttack e assim por diante.
    O padrão é 44.
  • MaxTargetRange value
    Um monster com esta propriedade definida não atacará seu alvo a menos que ele esteja dentro do alcance especificado. Deve ser usada no lugar da flag obsoleta SHORTMISSILERANGE. Isso é usado por A_Chase e funções similares.
    Mísseis Seeker têm um uso especial para esta propriedade. Veja A_SeekerMissile para mais informações.
  • MeleeDamage value (deprecated)
  • MeleeSound soundname (deprecated)
  • MissileHeight value (deprecated) (Exceto com FastProjectile)
  • MissileType classname (deprecated) (Exceto com FastProjectile e alguns outros)
    Essas propriedades serviam como parâmetros para A_MeleeAttack, A_MissileAttack e A_ComboAttack. No entanto, essas três funções foram substituídas por versões com parâmetros chamadas A_CustomMeleeAttack, A_CustomMissile e A_CustomComboAttack, respectivamente.
    Note que FastProjectile, ArtiPoisonBagShooter, ArtiPoisonBagGiver e classes que usam A_LightningZap ou A_LastZap fazem um uso especial das propriedades de míssil.
  • ExplosionRadius value
    A_Explode usará este valor como o raio da explosão, a menos que um valor diferente seja fornecido na própria chamada da função. Esta propriedade pode ser útil para fins de herança, para sobrescrever o raio da explosão em um actor filho sem precisar mudar o state em que ele chama A_Explode.
  • ExplosionDamage value
    A_Explode usará este valor como o dano da explosão, a menos que um valor diferente seja fornecido na própria chamada da função. Esta propriedade pode ser útil para fins de herança, para sobrescrever o dano da explosão em um actor filho sem precisar mudar o state em que ele chama A_Explode.
  • DontHurtShooter (deprecated)
    Estas propriedades eram usadas para passar os parâmetros para A_Explode. Agora que A_Explode permite passar os parâmetros diretamente, não há necessidade de usá-las exceto por compatibilidade com definições antigas.

Combos de flags

Especial

  • Args arg0[, arg1[, arg2[, arg3[, arg4]]]]
    Define (hardcode) os argumentos do actor; eles podem ser qualquer valor inteiro. Eles sobrescreverão quaisquer argumentos definidos no editor de mapas; portanto, usar esta propriedade geralmente não é recomendado, a menos que você esteja criando actors para o Doom formato de mapa ou actors para o formato de mapa de Hexen que precisem de valores de argumento fora do intervalo [0,255].
  • ClearFlags
    Limpa todas as flags definidas previamente.
  • DropItem classname [, probability [, amount]]
    O item que o actor está configurado para dropar, que pode ser qualquer classe de actor e não apenas inventory. A ação de dropar o item é realizada por A_NoBlocking, que tipicamente é chamada durante as sequências de morte do actor. Opcionalmente, a probabilidade pode ser especificada. Uma probability de 255 ou maior significa que o item sempre será dropado, enquanto uma probability de -1 ou menor significa que ele nunca será dropado. Quando classname é None, a lista de drops será removida completamente.
    amount só se aplica à classe Inventory e derivados. Ela especifica quantas “amostras” o item dropado contém.
    RandomSpawner, BossEye, SpawnShot, Weapon e os CustomMonsterInvasionSpot e CustomPickupInvasionSpot de Skulltag usam esta propriedade de forma diferente.
    Pode haver mais de uma definição dropitem para um actor. A quantidade de definições por actor é ilimitada.
    dropitem funciona de forma diferente com actors herdados. Um actor pode herdar uma lista de definições dropitem do seu pai, mas se ele definir uma própria, a lista inteira do pai é descartada. Este parâmetro não funciona para jogadores.
  • Spawn (deprecated)
  • See (deprecated)
  • Melee (deprecated)
  • Missile (deprecated)
  • Pain (deprecated)
  • Death (deprecated)
  • XDeath (deprecated)
  • Burn (deprecated)
  • Ice (deprecated)
  • Disintegrate (deprecated)
  • Raise (deprecated)
  • Crash (deprecated)
  • Wound (deprecated)
  • Crush (deprecated)
  • Heal (deprecated)
    Essas palavras-chave eram originalmente usadas para remapear states. Contudo, desde 2.1.0 elas foram tornadas obsoletas porque agora é possível colocar instruções goto logo após rótulos de state, o que dá o mesmo efeito de um jeito muito mais limpo e flexível.
  • States
    Define os states de um actor.
  • Skip_Super
    Reinicializa o actor como se ele não tivesse pai. Isso pode ser usado para ter acesso aos states do pai sem herdar seus atributos.
  • VisibleToTeam team_number
    Renderiza o actor visível para jogadores de um time específico. A física e o código do actor ainda funcionarão normalmente, porém.
    Pode ser combinado com VisibleToPlayerClass. Originalmente um recurso de Skulltag.
  • VisibleToPlayerClass classname[, classname2[, classname3[, ...]]]
    Igual a VisibleToTeam, mas para classes de jogador.
    Pode ser combinado com VisibleToTeam. Originalmente um recurso de Skulltag.
    Em vez de apenas uma classe, pode ser fornecida uma lista de classes separada por vírgulas. Note que esta propriedade usa herança, então se um actor é visível para a classe DoomPlayer, ele será visível para todas as classes derivadas de DoomPlayer também.

Propriedades adicionais

Subclasses de Actor podem ter propriedades adicionais. Notavelmente, Inventory e suas próprias subclasses (como Weapon) têm; elas são listadas com suas respectivas classes. PlayerPawn também define suas próprias propriedades.

Note que todas as subclasses de Inventory (Ammo, Weapons, etc.) podem ser usadas com as seguintes propriedades de inventário. Inventory properties

FakeInventory properties

BasicArmorPickup properties

BasicArmorBonus properties

Weapon properties

Ammo properties

WeaponPiece properties

Health properties

PuzzleItem properties

Player properties

Powerup properties

PowerSpeed properties

PowerupGiver properties

HealthPickup properties

MorphProjectile properties