Thing
Mais ações
Em Doom, things são usados para representar jogadores, monstros, itens coletáveis e projéteis. Dentro do jogo, eles são conhecidos como atores (actors). Existem três maneiras de colocar um ator no seu mapa. A maioria das things são actors, então os nomes frequentemente são usados de forma intercambiável. Algumas things, no entanto, não são atores, como pontos de player start.
Referenciando things
DoomEd numbers são os números usados no editor para representar um ator. Quando o mapa é carregado, um ator correspondente àquele número será spawned no local daquela thing do mapa. Embora muitos atores tenham números DoomEd, nem todos têm. Por exemplo, um cartão-chave azul tem um número DoomEd, mas um foguete voando pelo ar não tem.
Spawn numbers são os números usados por specials como Thing_Spawn para spawnar atores no jogo depois que o usuário começa a jogar o mapa. Embora números DoomEd e números de spawn ambos descrevam atores, eles não são intercambiáveis—você não deve usar um número de spawn em uma thing do mapa, e você não deve usar um número DoomEd, por exemplo, como parâmetro de Thing_Spawn.
Nomes de ator são os nomes reais que cada ator tem internamente (para testar isso, você pode querer experimentar o comando do console summon). Eles são usados com as funções SpawnSpot e Spawn, que permitem spawnar qualquer ator disponível com Thing_Spawn e também todos os outros atores (embora alguns atores não devam ser spawnados), como câmeras, cenário ou qualquer outra coisa que você precisar.
Se você criar um novo ator com o lump DECORATE, você pode especificar tanto o número de spawn (SpawnID) quanto o número DoomEd (DoomEdNum). O nome que você dá ao novo item DECORATE também é o seu nome de ator, então você também pode spawná-lo usando esse nome.
Há também um terceiro conjunto de números usado para representar atores que é importante apenas para DeHackEd e similares. Esses números correspondem à ordem em que os atores foram definidos no exe vanilla. Eles não têm significado fora do carregador DeHackEd do ZDoom e, como resultado, não são uma propriedade. Em Strife, eles eram usados para identificar classes de ator em conversas, mas o ZDoom transformou isso na propriedade ConversationID porque atores idênticos tinham números diferentes nas diferentes versões de Strife disponíveis.
Especificação (formato Doom)
| Bytes | Tipo de dado | Descrição | Notas |
|---|---|---|---|
| 0-1 | Signed short | Posição X | |
| 2-3 | Signed short | Posição Y | |
| 4-5 | Unsigned short | Ângulo | 0=Leste, 45=NE, 90=Norte 135=NO, 180=Oeste, 225=SO, 270=Sul |
| 6-7 | Unsigned short | Tipo | Veja a lista de standard editor numbers |
| 8-9 | Unsigned Short | Flags de spawn |
Especificação (formato Hexen)
| Bytes | Tipo de dado | Descrição | Notas |
|---|---|---|---|
| 0-1 | Unsigned short | Thing ID | Este valor é usado para scripts e specials |
| 2-3 | Signed short | Posição X | |
| 4-5 | Signed short | Posição Y | |
| 6-7 | Signed short | Posição Z | |
| 8-9 | Unsigned short | Ângulo | 0=Leste, 45=NE, 90=Norte 135=NO, 180=Oeste, 225=SO, 270=Sul |
| 10-11 | Unsigned short | Tipo | Veja a lista de standard editor numbers |
| 12-13 | Unsigned short | Flags de spawn | |
| 14 | Unsigned byte | Action special | Uma ação a ser executada quando esta thing for destruída ou coletada |
| 15 | Unsigned byte | Argumento de ação 1 | |
| 16 | Unsigned byte | Argumento de ação 2 | |
| 17 | Unsigned byte | Argumento de ação 3 | |
| 18 | Unsigned byte | Argumento de ação 4 | |
| 19 | Unsigned byte | Argumento de ação 5 |
Flags de spawn
Há vários conflitos na lista de flags, dependendo do jogo. Map translators são usados para definir como os valores são associados às flags em um mapa binário. UDMF permite resolver esses conflitos por não usar um array de bitfield e, em vez disso, referir-se a cada flag pelo nome. Várias flags só estão disponíveis neste formato de mapa.
| Flag | Z-Bit | Z-Hex | D-Bit | D-Hex | S-Bit | S-Hex | Descrição | Nome em UDMF |
|---|---|---|---|---|---|---|---|---|
| EASY | 0 | 0x0001 | 0 | 0x0001 | 0 | 0x0001 | Thing é spawnada nas habilidades #1 e #2 | skill1 + skill2 |
| MEDIUM | 1 | 0x0002 | 1 | 0x0002 | 1 | 0x0002 | Thing é spawnada na habilidade #3 | skill3 |
| HARD | 2 | 0x0004 | 2 | 0x0004 | 2 | 0x0004 | Thing é spawnada nas habilidades #4 e #5 | skill4 + skill5 |
| AMBUSH | 3 | 0x0008 | 3 | 0x0008 | 5 | 0x0020 | Thing fica em emboscada (a flag AMBUSH está definida) | ambush |
| DORMANT | 4 | 0x0010 | Thing fica DORMANT até ser ativada | dormant | ||||
| FIGHTER | 5 | 0x0020 | Thing é spawnada quando a classe de jogador #1 está presente | class1 | ||||
| CLERIC | 6 | 0x0040 | Thing é spawnada quando a classe de jogador #2 está presente | class2 | ||||
| MAGE | 7 | 0x0080 | Thing é spawnada quando a classe de jogador #3 está presente | class3 | ||||
| SINGLE | 8 | 0x0100 | Thing aparece em jogos single-player | single | ||||
| COOPERATIVE | 9 | 0x0200 | Thing aparece em jogos cooperativos | coop | ||||
| DEATHMATCH | 10 | 0x0400 | Thing aparece em jogos deathmatch | dm | ||||
| SHADOW | 11 | 0x0800 | 8 | 0x0100 | Thing é 25% translúcida | translucent | ||
| ALTSHADOW | 12 | 0x1000 | 9 | 0x0200 | Thing é invisível | invisible | ||
| FRIENDLY | 13 | 0x2000 | 6 | 0x0040 | Isto é um monstro FRIENDLY usando a lógica de Strife | strifeally | ||
| STANDSTILL | 14 | 0x4000 | 3 | 0x0008 | Thing fica parada (só útil para monstros específicos de Strife ou friendlys) | standing | ||
| SECRET | Thing é um item de secret | countsecret | ||||||
| NOTSINGLE | 4 | 0x0010 | 4 | 0x0010 | Thing não aparece no single player | |||
| NOTDEATHMATCH | 5 | 0x0020 | Thing não aparece no deathmatch single | |||||
| NOTCOOPERATIVE | 6 | 0x0040 | Thing não aparece no cooperativo | |||||
| FRIEND | 6 | 0x0040 | Thing é um monstro amigável usando a lógica MBF (remapeado para FRIENDLY) | friend | ||||
| BADEDITORCHECK | 8 | 0x0100 | Thing foi colocada em um editor de mapas que define flags indefinidas | |||||
| Thing é spawnada na habilidade #1 | skill1 | |||||||
| Thing é spawnada na habilidade #2 | skill2 | |||||||
| Thing é spawnada na habilidade #4 | skill4 | |||||||
| Thing é spawnada na habilidade #5 | skill5 | |||||||
| Thing é spawnada na habilidade #6 | skill6 | |||||||
| Thing é spawnada na habilidade #7 | skill7 | |||||||
| Thing é spawnada na habilidade #8 | skill8 | |||||||
| Thing é spawnada na habilidade #9 | skill9 | |||||||
| Thing é spawnada na habilidade #10 | skill10 | |||||||
| Thing é spawnada na habilidade #11 | skill11 | |||||||
| Thing é spawnada na habilidade #12 | skill12 | |||||||
| Thing é spawnada na habilidade #13 | skill13 | |||||||
| Thing é spawnada na habilidade #14 | skill14 | |||||||
| Thing é spawnada na habilidade #15 | skill15 | |||||||
| Thing é spawnada na habilidade #16 | skill16 | |||||||
| Thing é spawnada quando a classe de jogador #4 está presente | class4 | |||||||
| Thing é spawnada quando a classe de jogador #5 está presente | class5 | |||||||
| Thing é spawnada quando a classe de jogador #6 está presente | class6 | |||||||
| Thing é spawnada quando a classe de jogador #7 está presente | class7 | |||||||
| Thing é spawnada quando a classe de jogador #8 está presente | class8 | |||||||
| Thing é spawnada quando a classe de jogador #9 está presente | class9 | |||||||
| Thing é spawnada quando a classe de jogador #10 está presente | class10 | |||||||
| Thing é spawnada quando a classe de jogador #11 está presente | class11 | |||||||
| Thing é spawnada quando a classe de jogador #12 está presente | class12 | |||||||
| Thing é spawnada quando a classe de jogador #13 está presente | class13 | |||||||
| Thing é spawnada quando a classe de jogador #14 está presente | class14 | |||||||
| Thing é spawnada quando a classe de jogador #15 está presente | class15 | |||||||
| Thing é spawnada quando a classe de jogador #16 está presente | class16 |
Propriedades UDMF
Além das flags de spawn exclusivas de UDMF acima, as seguintes propriedades só podem ser usadas em uma thing no modo UDMF. A menos que especificado de outra forma, os valores padrão para inteiros e float são 0, e false para booleanos. Elas incluem:
| Nome | Tipo | Descrição |
|---|---|---|
| alpha | float | Define a translucência do ator. Ela só se aplica aos estilos de renderização Translucent, Add, Subtract e TranslucentStencil. O padrão é 1.0. |
| arg0str | string | Atribui um valor string ao primeiro argumento. Isso é usado para named scripts e Hexen breakable items. |
| arg1str | string | Atribui um valor string ao segundo argumento. Isso é usado por certos specials de spawn de thing. |
| conversation | integer | Atribui um ID de conversa à thing. Isso corresponde à propriedade id de uma conversa, permitindo árvores de diálogo específicas para uma determinada thing, em vez de para uma classe de ator inteira. |
| fillcolor | integer | Define o fillcolor do ator, que é usado pelos estilos de renderização Stencil e TranslucentStencil, como valor RRGGBB. |
| floatbobphase | integer | Define o floatbobphase do ator. Valores de fase válidos estão no intervalo 0-63. Definir isso como -1 fará com que seja usado o próprio valor da propriedade do ator. O padrão é -1. |
| friendlyseeblocks | integer | Define o friendlyseeblocks do ator. Se isso for definido como 0 ou menos, o padrão do ator para essa propriedade, conforme definido na sua definição de ator, é usado no lugar. O padrão é -1. |
| gravity | float | Define a gravidade do ator. Valores positivos são multiplicados pelo valor da propriedade gravity da classe; valores negativos são usados pelo seu valor absoluto. O padrão é 1.0. |
| health | float | Define a vida do ator. Valores positivos são multiplicados pela propriedade Health da classe e valores negativos são usados pelo seu valor absoluto. Se o valor for definido como 0, o ator nasce morto (útil para cadáveres de monstros ressuscitáveis). O padrão é 1.0. |
| pitch | integer | Define o pitch do ator em graus (útil para models). |
| renderstyle | string | Define o estilo de renderização do ator, substituindo o padrão da classe. Os valores possíveis podem ser:
O valor padrão é uma string vazia para não alterar. |
| roll | integer | Define o roll do ator em graus (útil para models). |
| scale | float | Define a escala vertical e horizontal do ator. |
| scalex | float | Define a escala vertical do ator. |
| scaley | float | Define a escala horizontal do ator. |
| score | integer | Define o score do ator, substituindo o padrão da classe. |
