Pular para o conteúdo principal

Scripting Lua: Enums e valores

webapp_banner.jpg

Esta página contém links para os Javadocs do Spigot para cada tipo de enum usado pelos métodos Lua do EliteMobs. Use o nome exato da constante enum (ex. "FLAME", "ZOMBIE", "STONE") como string no seu código Lua.

  • A ortografia deve corresponder exatamente ao nome da constante enum
  • As maiúsculas/minúsculas são normalmente normalizadas internamente, mas siga a ortografia do Javadoc por segurança
  • O tratamento de valores inválidos depende do método: alguns registam um aviso, outros devolvem nil ou não fazem nada, e as APIs com validação podem gerar um erro de Lua

Enum Reference

EnumUsado paraJavadoc
BarColorCor da boss barBarColor
BarStyleEstilo da boss barBarStyle
DamageCauseFiltragem por causa de danoEntityDamageEvent.DamageCause
EnderDragon.PhaseControlo de fase do ender dragonEnderDragon.Phase
EntityEffectEfeitos visuais de entidadesEntityEffect
EntityTypeSpawn de entidadesEntityType
EquipmentSlotSlots de equipamento das entidadesEquipmentSlot
FireworkEffect.TypeForma do fogo de artifícioFireworkEffect.Type
MaterialBlocos e itensMaterial
ParticleEfeitos de partículasParticle -- ver também a lista de partículas válidas para as conversões de nomes antigos
PotionEffectTypeEfeitos de poçãoPotionEffectType
SoundReprodução de sonsSound
Os sons aceitam dois formatos

Todos os auxiliares de som em Lua (boss:play_sound_at_self, entity:play_sound_at_entity, world:play_sound_at_location) resolvem a string em dois passos: primeiro tentam o nome do enum Sound do Spigot (convertido para maiúsculas, pelo que "entity_blaze_shoot" funciona) e, se isso falhar, tratam a string como uma chave de som com namespace (convertida para minúsculas, pelo que tanto "entity.blaze.shoot" como a tua própria chave de resource pack "mypack:boss.roar" funcionam).

Isto significa que já não tens de escolher um formato -- mas um erro de escrita em qualquer uma das formas é silenciosamente ignorado, porque o caminho alternativo não consegue distinguir um nome de enum inválido de um som de pack personalizado que simplesmente não está instalado.

Valores fora do Spigot

Estes valores são específicos do EliteMobs e não constam dos Javadocs do Spigot:

Formas de zona

Usadas pelas definições nativas de zona (campo kind) e pelas especificações de zona do utilitário de scripts (campo shape).

Nativo (kind)Utilitário de script (shape)
sphereSPHERE
domeDOME
cylinderCYLINDER
cuboidCUBOID
coneCONE
static_raySTATIC_RAY
rotating_rayROTATING_RAY
translating_rayTRANSLATING_RAY

Filtros de entidades

Usados pelas opções de consulta de context.zones e context.entities. Não distinguem maiúsculas de minúsculas, e cada um tem um alias no plural.

FiltroCorresponde a
player / playersApenas jogadores
elite / elitesApenas elite mobs
mob / mobsEntidades vivas que não são jogadores (inclui elites)
livingTodas as entidades vivas, jogadores incluídos (predefinição)
all / entitiesTodas as entidades, incluindo as não-vivas. Só reconhecido por context.entities:get_nearby_entities

Qualquer coisa que não seja uma destas strings recai no comportamento living em vez de dar erro, pelo que um erro de escrita como "playr" devolve silenciosamente todas as entidades vivas.

O context.script:zone({...}) usa um conjunto de filtros diferente, em maiúsculas (PLAYER, ELITE, LIVING), porque corre o motor do EliteScript.

Valores de meteorologia

Usados por context.world:set_world_weather(weather).

ValorEfeito
CLEARCéu limpo
PRECIPITATION / RAINChuva
THUNDERTrovoada

Tipos de alvo

Usados pelas especificações de context.script:target().

ValorResolve para
SELFA entidade do boss
SELF_SPAWNA localização de spawn do boss
DIRECT_TARGETA entidade envolvida no evento atual
NEARBY_PLAYERSJogadores dentro do range do boss
NEARBY_MOBSMobs não-jogadores dentro do range
NEARBY_ELITESElite mobs dentro do range
ALL_PLAYERSTodos os jogadores online
WORLD_PLAYERSTodos os jogadores no mundo do boss
ZONE_FULLEntidades/localizações dentro do volume de uma zona
ZONE_BORDEREntidades/localizações na fronteira de uma zona
LOCATIONUma localização específica, vinda do campo location da especificação
LOCATIONSVárias localizações específicas, vindas da lista locations da especificação
LANDING_LOCATIONO sítio onde um bloco em queda ou uma entidade invocada aterrou
ACTION_TARGETHerda os alvos da ação EliteScript envolvente
INHERIT_SCRIPT_TARGETHerda o alvo do EliteScript que chamou
INHERIT_SCRIPT_ZONE_FULLDentro da zona do EliteScript que chamou
INHERIT_SCRIPT_ZONE_BORDERNa fronteira da zona do EliteScript que chamou

Os últimos quatro só resolvem quando existe um EliteScript envolvente do qual herdar, pelo que a partir de Lua têm pouca utilidade prática. Consulte Alvos do EliteScript para a semântica completa -- o context.script usa exatamente essa implementação.


Próximos Passos