Referência da API Lua
Esta referência descreve as tabelas Lua e os contextos de execução do MagmaCore, FreeMinecraftModels e EliteMobs. As tabelas partilhadas e as dos poderes de chefe têm contratos diferentes; consulte a secção correspondente ao script que está a escrever.
A maioria dos métodos aceita table.method(...) e table:method(...). As funções globais em.create_*, em.zone.create_* e em.location.* exigem ponto, tal como os setters de dano de eventos de chefe identificados abaixo. Os campos partilhados em tempo real são resolvidos a pedido: leia-os novamente para atualizar o valor e não lhes atribua valores, pois isso oculta a consulta. Uma localização ou outro instantâneo guardado numa variável Lua não se atualiza sozinho.
Os métodos descritos como processando cores usam a sintaxe de códigos de cor partilhada, incluindo chat, títulos, barras, nomes personalizados e títulos de inventários de props.
Tabela de entidade
A tabela de entidade do MagmaCore é a base para os valores genéricos de entidade; as tabelas Living Entity, Player e Prop do FreeMinecraftModels herdam-na.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
uuid | string | UUID da entidade. |
entity_type | string | Tipo de entidade do Bukkit em minúsculas. |
is_valid | bool | Valor de validade em tempo real. |
is_dead | bool | Estado de morte em tempo real. |
current_location | table/nil | Localização {x, y, z, yaw, pitch, world} em tempo real. |
world | string/nil | Nome do mundo em tempo real. |
is_player | bool | Se a entidade é um jogador. |
is_hostile | bool | Se a entidade implementa Monster do Bukkit. |
is_passive | bool | Se a entidade implementa Animals do Bukkit. |
is_on_ground | bool | Estado de contacto com o solo em tempo real. |
is_flying | bool | Estado de voo do jogador em tempo real; false para outros tipos. |
in_block | bool | Apenas setas: estado atual de inserção num bloco. |
attachment_location | table/nil | Centro do bloco que contém a posição atual de uma seta presa; nil quando não está num bloco. |
attachment_block | table/nil | Centro do bloco efetivamente atingido por uma seta pertencente a uma ação de encantamento ativa. Devolve nil sem um impacto cravado válido registado, ou depois de a seta se afastar, mudar de mundo ou a sua ação terminar. Identifica o bloco atingido; não fornece um destino de movimento seguro contra colisões. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
teleport(location) | table | nil | Teletransporta para uma tabela de localização. |
remove() | — | nil | Remove a entidade se esta ainda for válida. |
set_silent(enabled) | bool | nil | Define o estado silencioso. |
set_invulnerable(enabled) | bool | nil | Define o estado de invulnerabilidade. |
set_gravity(enabled) | bool | nil | Define o estado de gravidade. |
set_glowing(enabled) | bool | nil | Define o estado de brilho. |
set_velocity(x, y, z) | number, number, number | nil | Substitui a velocidade; os componentes devem ser finitos. |
set_fall_distance(distance) | number | nil | Define uma distância de queda finita e não negativa. |
set_shooter(uuid) | string | bool | Apenas projéteis: atribui uma entidade resolvida que implemente ProjectileSource do Bukkit. |
set_direction(x, y, z) | number, number, number | nil | Apenas bolas de fogo: define uma direção de voo finita e não nula. |
set_pickup(status) | string | nil | Apenas setas: ALLOWED, DISALLOWED ou CREATIVE_ONLY. |
can_receive_hostile_effect(actor_uuid) | string | bool | Verifica se o alvo pode receber um efeito hostil do jogador online. Os fornecedores podem aplicar restrições de combate próprias. |
has_clear_movement_path(location) | table | bool | Verifica antecipadamente uma deslocação no mesmo mundo contra colisões, limites do mundo e chunks carregados. Entidades que não sejam jogadores também rejeitam regiões protegidas. Não move a entidade. |
movement_path_status(location) | table | string | Devolve clear, blocked, protected ou unavailable; protected aplica-se a entidades que não sejam jogadores. A colisão verifica conservadoramente o volume percorrido pela caixa delimitadora da entidade. |
Um trajeto livre para um jogador não autoriza a entrada nem o combate. O movimento real continua sujeito aos listeners de movimento, incluindo restrições de entrada em regiões; a proteção de construção por si só não impede a deslocação dos jogadores.
As localizações partilhadas exigem x, y e z. Um mundo omitido ou não resolvido usa o mundo da entidade. As consultas em.location.* exigem um mundo carregado e usam zero para coordenadas omitidas. Nem a verificação de movimento nem can_receive_hostile_effect são aplicadas automaticamente a chamadas diretas de teletransporte, velocidade ou dano.
can_receive_hostile_effect exige um jogador online válido e um alvo vivo, válido, não jogador e do mesmo mundo. Rejeita armor stands, entidades invulneráveis, entidades com tag de NPC e animais domesticados. O EliteMobs pode acrescentar restrições de autorização de combate. UUIDs inválidos em set_shooter e set_owner, ou nomes inválidos do enum de recolha, podem provocar erros.
Tabela de entidade: enriquecimento do EliteMobs
O enriquecedor do EliteMobs acrescenta estes valores às tabelas partilhadas. Os indicadores de acompanhamento e a presença de elite são determinados na construção; apenas os campos indicados como em tempo real são atualizados ao aceder. O adaptador opcional do EliteMobs no FreeMinecraftModels acrescenta dados de elite, mas não elite_player.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
is_elite | bool | Se o EliteMobs acompanhava a entidade ao construir a tabela. |
is_custom_boss | bool | Se o elite acompanhado é um custom boss. |
is_significant_boss | bool | Se é um custom boss com um multiplicador de vida superior a 1. |
elite | table/nil | Dados aninhados do EliteMobs, presentes apenas para um elite resolvido. |
elite.level | int | Instantâneo do nível do elite. |
elite.name | string/nil | Instantâneo do nome apresentado do elite. |
elite.health | number | Vida em tempo real. |
elite.max_health | number | Vida máxima em tempo real. |
elite.is_custom_boss | bool | Se o elite é um custom boss. |
elite.health_multiplier | number | Instantâneo do multiplicador de vida configurado. |
elite.damage_multiplier | number | Instantâneo do multiplicador de dano configurado. |
elite_player | table/nil | Tabela exclusiva de jogador, resolvida a pedido quando existem dados de jogador do EliteMobs. |
elite_player.tier | number | Nível de combate calculado a partir de XP de competências sem atualizar consultas de encantamentos. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
elite.remove() | — | nil | Remove o elite através do processo de remoção do EliteMobs. |
Tabela de entidade: enriquecimento do FreeMinecraftModels
O enriquecedor do FreeMinecraftModels acrescenta estes instantâneos; model só existe se is_modeled for verdadeiro ao construir a tabela. Os valores exclusivos de jogador só aparecem em tabelas de jogador. Os métodos de modelo e permissão consultam os objetos subjacentes quando chamados. Nos scripts do EliteMobs, o adaptador opcional do EliteMobs para o FreeMinecraftModels acrescenta is_modeled, is_prop e model, mas não is_op nem has_permission.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
is_modeled | bool | Se o FreeMinecraftModels resolve uma entidade com modelo. |
is_prop | bool | Se a entidade é um prop do FreeMinecraftModels assente num armor stand. |
model | table/nil | Dados de modelo aninhados, presentes apenas para uma entidade com modelo. |
model.model_id | string/nil | Identificador do blueprint do modelo. |
model.is_dynamic | bool | Se a entidade com modelo é dinâmica. |
is_op | bool | Estado de operador do servidor, apenas para jogadores. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
model.play_animation(name, blend?=false, loop?=false) | string, bool?=false, bool?=false | bool | Devolve se a reprodução foi aceite, incluindo pedidos de ataque enfileirados ou suprimidos; um estado terminal de morte rejeita-a. |
model.stop_animations() | — | nil | Limpa a reprodução enfileirada e retoma idle quando disponível; preserva o estado terminal de morte. |
model.remove() | — | nil | Remove a entidade com modelo. |
has_permission(node) | string | bool | Verificação de permissão, apenas para jogadores. |
Tabela de entidade viva
A tabela de entidade viva do MagmaCore herda todas as propriedades e métodos da Entity Table.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
health | number | Vida em tempo real. |
maximum_health | number | Vida máxima em tempo real. |
name | string/nil | Nome Bukkit da entidade em tempo real. |
is_alive | bool | Inverso em tempo real do estado de morte do Bukkit. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
damage(amount) | number | nil | Aplica dano do Bukkit. |
push(x, y, z) | number, number, number | nil | Adiciona imediatamente um vetor à velocidade atual. |
set_facing(x, y, z) | number, number, number | nil | Orienta pelo vetor através de um teletransporte com direção alterada. |
add_potion_effect(type, duration, amplifier) | string (PotionEffectType), int, int | nil | Adiciona um efeito de poção quando o tipo é resolvido. |
remove_potion_effect(type) | string (PotionEffectType) | nil | Remove um efeito de poção quando o tipo é resolvido. |
get_scale() | — | number | Devolve a escala efetiva, incluindo modificadores, ou 1.0 quando indisponível. |
set_scale(value) | number | nil | Define o valor base da escala quando o servidor o suporta. |
set_ai(enabled) | bool | nil | Ativa ou desativa a IA da entidade viva. |
set_owner(player_uuid) | string | bool | Domestica uma entidade compatível para um jogador online e limpa a agressividade dos lobos. False para entidades não suportadas ou jogadores indisponíveis. |
has_potion_effect(type) | string | bool | Testa um nome de efeito Bukkit; false se não for resolvido. |
Tabela de jogador
A tabela de jogador do MagmaCore herda todas as propriedades e métodos da Living Entity Table.
O FreeMinecraftModels acrescenta is_holding_elitemobs_item(filename). Passe o nome completo do ficheiro EliteMobs, incluindo .yml, por exemplo shroomwhispers_shears.yml. Verifica a tag EliteMobs do item da mão principal, não o nome apresentado. Uma mão vazia, outro item ou uma integração EliteMobs indisponível devolve false.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
game_mode | string | Instantâneo do modo de jogo do Bukkit em minúsculas. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
send_message(text) | string | nil | Envia texto processado pelo interpretador de cores do MagmaCore. |
chat(text) | string | nil | Faz o jogador enviar chat Bukkit, incluindo executar como ele comandos iniciados por barra. Processa cores. |
get_held_item() | — | table/nil | Devolve um instantâneo {type, amount, display_name} da mão principal, ou nil se vazia. type usa maiúsculas; sem nome apresentado usa o nome do material. |
consume_held_item(amount?=1) | int?=1 | nil | Agenda a redução da pilha que estiver na mão principal ao executar. Não confirma um pagamento nem preserva o item verificado. Use quantidades positivas: valores negativos não são validados e podem aumentar a pilha. |
has_item(material, amount?=1) | string (Material), int?=1 | bool | Testa se o inventário contém a quantidade pedida. |
get_target_entity(range?=50) | number?=50 | table/nil | Traça desde os olhos contra blocos e entidades, ignorando fluidos, blocos passáveis e o próprio jogador, com raio de entidade 0.5. |
get_eye_location() | — | table | Devolve a localização dos olhos. |
get_look_direction() | — | table | Devolve uma direção unitária {x, y, z}. |
send_block_change(x, y, z, material, ticks?=-1) | int, int, int, string (Material), int?=-1 | bool | Agenda um bloco visível apenas no cliente e reposição opcional após ticks positivos. True confirma o agendamento; materiais inválidos ou não colocáveis devolvem false. |
reset_block(x, y, z) | int, int, int | bool | Agenda a reposição do bloco real para este jogador. |
sleep(x, y, z) | number, number, number | nil | Agenda um WHITE_BED real e uma tentativa de sono forçado. Repõe apenas os BlockData originais ao acordar ou desligar, sem preservar conteúdo de block entities; primeira verificação após 20 ticks, depois a cada 10. |
wake_up() | — | nil | Agenda o acordar do jogador quando este está a dormir. |
show_boss_bar(text, color?=WHITE, progress, ticks?=-1) | string, string (BarColor)?=WHITE, number, int?=-1 | nil | Substitui a barra sólida ativa e esconde-a após ticks positivos. Limita progresso a 0..1; cor inválida usa WHITE. Progresso continua no terceiro argumento: passe nil para a cor predefinida. |
hide_boss_bar() | — | nil | Remove a barra de chefe Lua ativa do jogador. |
show_action_bar(text, ticks?=-1) | string, int?=-1 | nil | Envia uma vez, ou repete a cada 40 ticks até terminar uma duração positiva. |
show_title(title, subtitle?="", fade_in, stay, fade_out) | string, string?="", int, int, int | nil | Mostra um título com texto de título e subtítulo processados para cor. |
Os auxiliares de UI agendam trabalho Bukkit e partilham barras por jogador dentro da cópia MagmaCore incorporada no plugin anfitrião, não por script: um novo show_boss_bar substitui a barra atual do jogador, e um novo show_action_bar cancela a action bar repetida atual. Um temporizador de expiração só remove a barra ou action bar que o iniciou, pelo que uma expiração antiga já não limpa uma mais recente. Estes temporizadores não pertencem ao scheduler do script. Alterações de bloco usam o mundo do jogador ao executar; uma reposição posterior lê o mundo então atual. Não conte com reposição no mundo original após mudar de mundo.
Tabela de mundo
A tabela de mundo do MagmaCore é exposta como context.world e retém o mundo capturado ao ser construída; os poderes de chefe herdam-na e aplicam as substituições abaixo. As consultas de proximidade partilhadas usam caixas alinhadas aos eixos com radius como meia extensão, não esferas. Os arrays começam em 1 e não excluem automaticamente o proprietário nem modos de jogo.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Instantâneo do nome do mundo. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
get_block_at(x, y, z) | int, int, int | string | Devolve um nome de Material em minúsculas, ou air sem carregar um chunk descarregado. |
set_block_at(x, y, z, material) | int, int, int, string (Material) | bool | Agenda a colocação do bloco; materiais inválidos devolvem false e os chunks descarregados são ignorados pela tarefa agendada. |
get_highest_block_y(x, z) | int, int | int | Devolve o Y do bloco mais alto. |
spawn_particle(particle, x, y, z, count?=1, dx?=0, dy?=0, dz?=0, speed?=0) | string (Particle), number, number, number, int?=1, number?=0, number?=0, number?=0, number?=0 | nil | Gera uma partícula; nomes inválidos não fazem nada. |
play_sound(sound, x, y, z, volume?=1, pitch?=1) | string (Sound), number, number, number, number?=1, number?=1 | nil | Reproduz um som registado ou uma chave de som de resource pack com namespace em minúsculas. |
strike_lightning(x, y, z) | number, number, number | nil | Invoca um relâmpago. |
get_time() | — | int | Devolve o tempo do mundo em ticks. |
set_time(ticks) | int | nil | Define o tempo do mundo. |
get_nearby_entities(x, y, z, radius) | number, number, number, number | table | Devolve tabelas Entity ou Living Entity próximas. |
get_nearby_players(x, y, z, radius) | number, number, number, number | table | Devolve tabelas Player próximas. |
spawn_entity(type, x, y, z) | string (EntityType), number, number, number | table/nil | Gera uma entidade vanilla; nomes de enum desconhecidos devolvem nil, mas tipos válidos não geráveis podem provocar erros. |
raycast(from_x, from_y, from_z, dir_x, dir_y, dir_z, max_distance?=50, fluid_mode?=NEVER, blocks_only?=false, loaded_only?=false) | seis números, number?, string?, bool?, bool? | table/nil | Devolve hit_entity, hit_location e hit_block; modos de fluido: NEVER, SOURCE_ONLY, ALWAYS. loaded_only rejeita chunks descarregados no retângulo envolvente do raio e devolve nil. |
place_temporary_block(x, y, z, material, ticks?=0, require_air?=false) | int, int, int, string (Material), int?=0, bool?=false | bool | Coloca um bloco temporário; materiais inválidos ou chunks descarregados devolvem false. |
drop_item(x, y, z, material, amount?=1) | number, number, number, string (Material), int?=1 | table/nil | Larga um item naturalmente e devolve a sua Entity Table; materiais inválidos devolvem nil. |
spawn_firework(x, y, z, colors, type?=BALL, power?=1) | number, number, number, table, string (FireworkEffect.Type)?=BALL, int?=1 | nil | Agenda um fogo de artifício usando nomes de constantes Color do Bukkit, ficando branco por omissão quando nenhum é resolvido. |
strike_lightning_at_location(location) | table | nil | Invoca um relâmpago no mundo da tabela de localização. |
play_sound_at_location(location, sound, volume?=1, pitch?=1) | table, string (Sound), number?=1, number?=1 | nil | Reproduz um som registado ou uma chave de som de resource pack com namespace em minúsculas. |
spawn_particle_at_location(location, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0) | table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0 | nil | Gera através do mundo desta tabela; use uma localização do mesmo mundo. |
get_block_at_location(location) | table | string | Devolve um nome de material em minúsculas, ou air para uma localização inválida ou um chunk descarregado. |
set_block_at_location(location, material) | table, string (Material) | bool | Agenda a colocação do bloco no mundo da tabela de localização. |
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false) | table, string (Material), int?=0, bool?=false | bool | Coloca um bloco temporário no mundo da tabela de localização. |
get_highest_block_y_at_location(location) | table | int/nil | Devolve o Y do bloco mais alto, ou nil para uma localização inválida. |
terrain_impact_at_location(location, options?) | table, table? | table/nil | Mostra um impacto visual temporário no terreno. Opções: radius=4.5 (0.5–6), intensity=1 (0–1), duration_ticks=35 (1–200), view_range=48 (1–96), seed. Devolve um objeto de controlo ou nil. |
terrain_impact(x, y, z, options?) | number, number, number, table? | table/nil | Mostra o mesmo impacto visual nas coordenadas deste mundo. |
impact.is_active() | — | bool | Verifica se o impacto está ativo; impact.id é o seu identificador de texto. |
impact.remove() | — | bool | Remove um impacto ativo; false se já estiver inativo ou a remoção falhar. |
get_entity(uuid) | string | table/nil | Resolve uma entidade válida no registo de entidades carregadas deste mundo. Use uma string UUID válida. |
block_is_passable(x, y, z) | int, int, int | bool/nil | Devolve a passabilidade, ou nil para chunks descarregados ou coordenadas fora dos limites de altura. |
location_is_protected(location) | table | bool | Consulta os fornecedores de proteção registados; um mundo omitido usa este mundo. |
spawn_dust(location, count, red, green, blue) | table, int, int, int, int | nil | Gera DUST de tamanho fixo com RGB de 0 a 255 e dispersão 0.1 por eixo; ignora chunks descarregados. Use uma localização deste mundo. |
Um raycast sem acertos devolve uma tabela vazia com campos de acerto nil. hit_block contém {x, y, z, material} com material em minúsculas. O traçado combinado usa raio de entidade 0.5 sem filtro. loaded_only=true verifica todo o retângulo envolvente e pode rejeitar um chunk fora do trajeto exato. Nomes de fluido inválidos provocam erros.
Os nomes de partículas partilhadas são convertidos para maiúsculas. Estes métodos posicionais não recebem dados de partículas, pelo que partículas que os exijam podem provocar erros; use spawn_dust para poeira RGB. Consultas do bloco mais alto e métodos de geração não têm uma proteção geral contra carregar chunks. A colocação de blocos não verifica automaticamente proteção de regiões. True não prova que a alteração agendada ou a condição require_air tenha tido sucesso.
Blocos temporários com ticks positivos guardam os BlockData originais e repõem-nos quando o temporizador termina, quando o chunk ou o mundo é descarregado, ou quando o plugin encerra. A reposição só acontece enquanto o bloco ainda contiver o bloco temporário, pelo que uma edição posterior não é sobrescrita. Colocar novamente um bloco temporário sobre um bloco que ainda contém um reinicia o seu temporizador e mantém o primeiro original guardado. Blocos com block entities, como baús e placas, chunks não carregados e blocos já detidos por outro dono de blocos temporários são ignorados. Partir um bloco temporário não larga nada e termina o registo sem repor; colocar um bloco nesse sítio também termina o registo. Ticks não positivos colocam o bloco de forma permanente, sem registo. Não se trata de uma reversão geral das alterações do script.
Adições de mundo partilhadas do EliteMobs
O EliteMobs regista estes auxiliares nas suas tabelas partilhadas, incluindo scripts de NPC. Exigem um chunk de destino carregado. A assinatura partilhada de spawn_boss_at_location exige localização e nível; os poderes de chefe substituem-na pela forma de argumentos opcionais abaixo.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
lightning_effect_at_location(location) | table | nil | Mostra um relâmpago sem dano normal, usando o bypass de relâmpagos do EliteMobs. |
spawn_npc_at_location(file, location) | string, table | table/nil | Gera um NPC configurado e devolve um handle com remove(), ou nil se inválido. |
spawn_boss_at_location(file, location, level) | string, table, int | table/nil | Gera um custom boss configurado e devolve uma Living Entity Table partilhada, ou nil se indisponível. |
context.world: adições do FreeMinecraftModels
O FreeMinecraftModels regista estes métodos na sua própria tabela de mundo MagmaCore, acessível em context.world nos scripts de prop. Todos devolvem false se o EliteMobs não estiver ativo ou o jogador não for resolvido. Os auxiliares de loot recorrem à posição do jogador se a localização estiver em falta ou não for utilizável.
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
start_elitemobs_transport(player, route_id) | player, string | bool | Inicia uma rota EliteMobs guardada para um jogador do mesmo mundo; false se o jogador ou a integração estiver indisponível. |
drop_elitemobs_procedural_loot(player, level, location?) | table/string, int, table? | bool | Larga um item do EliteMobs gerado proceduralmente para o jogador; devolve false quando os drops de itens procedurais estão desativados. |
drop_elitemobs_random_loot(player, level, location?) | table/string, int, table? | bool | Sorteia as tabelas de loot do EliteMobs para o jogador no nível indicado. |
drop_elitemobs_custom_loot(player, file, level, location?) | table/string, string, int, table? | bool | Larga um ficheiro de item personalizado específico do EliteMobs para o jogador; devolve false quando o ficheiro não é resolvido. |
O argumento player aceita uma tabela de jogador, uma string de UUID ou um nome exato de jogador. O argumento location aceita uma tabela de localização ou uma tabela de entidade que inclua current_location. O loot procedural segue a definição de entrega direta no inventário do EliteMobs, largando o excedente no jogador; nem sempre é largado na posição pedida.
Tabela auxiliar em
O MagmaCore expõe esta tabela globalmente antes de qualquer hook correr. Os construtores apenas criam dados: não registam observações, carregam mundos nem validam formas completas. Use ponto nas funções globais. Os métodos das localizações e zonas devolvidas também aceitam dois pontos, modificam a tabela e devolvem a mesma tabela. Os setters de zona retêm a localização fornecida por referência.
Propriedades
Os construtores auxiliares devolvem as tabelas de dados compactas indicadas abaixo.
| Campo | Tipo | Descrição |
|---|---|---|
location.x | number | Coordenada X devolvida por em.create_location. |
location.y | number | Coordenada Y devolvida por em.create_location. |
location.z | number | Coordenada Z devolvida por em.create_location. |
location.world | string/nil | Nome do mundo quando fornecido a em.create_location. |
location.yaw | number/nil | Yaw quando fornecido a em.create_location. |
location.pitch | number/nil | Pitch quando fornecido a em.create_location. |
vector.x | number | Componente X devolvida por em.create_vector. |
vector.y | number | Componente Y devolvida por em.create_vector. |
vector.z | number | Componente Z devolvida por em.create_vector. |
zone.kind | string | sphere, dome, cylinder, cuboid, cone, static_ray, rotating_ray ou translating_ray. |
zone.radius | number/nil | Raio de esfera, cúpula, cilindro ou cone. |
zone.height | number/nil | Altura do cilindro. |
zone.x | number/nil | Tamanho X do cuboide. |
zone.y | number/nil | Tamanho Y do cuboide. |
zone.z | number/nil | Tamanho Z do cuboide. |
zone.length | number/nil | Comprimento do cone ou do raio. |
zone.thickness | number/nil | Espessura do raio estático. |
zone.point_radius | number/nil | Raio do ponto do raio rotativo ou de translação. |
zone.animation_duration | number/nil | Duração da animação do raio rotativo ou de translação. |
zone.origin | table/nil | Localização definida por set_center ou set_origin. |
zone.destination | table/nil | Localização definida por set_destination. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
em.create_location(x, y, z, world?, yaw?, pitch?) | number, number, number, string?, number?, number? | table | Devolve uma tabela de localização. |
em.create_vector(x, y, z) | number, number, number | table | Devolve uma tabela de vetor {x, y, z}. |
location.add(dx?=0, dy?=0, dz?=0) | number?=0, number?=0, number?=0 | table | Soma no local e devolve a mesma tabela de localização. |
em.zone.create_sphere_zone(radius) | number | table | Devolve uma definição de esfera com set_center(location). |
em.zone.create_dome_zone(radius) | number | table | Devolve uma definição de cúpula com set_center(location). |
em.zone.create_cylinder_zone(radius, height) | number, number | table | Devolve uma definição de cilindro com set_center(location). |
em.zone.create_cuboid_zone(x, y, z) | number, number, number | table | Devolve uma definição de cuboide com set_center(location). |
em.zone.create_cone_zone(length, radius) | number, number | table | Devolve uma definição de cone com set_origin(location) e set_destination(location). |
em.zone.create_static_ray_zone(length, thickness) | number, number | table | Devolve uma definição de raio estático com setters de origem e destino. |
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration) | number, number, number | table | Devolve uma definição de raio rotativo com setters de origem e destino. |
em.zone.create_translating_ray_zone(length, point_radius, animation_duration) | number, number, number | table | Devolve uma definição de raio de translação com setters de origem e destino. |
zone.set_center(location) | table | table | Define o centro como zone.origin e devolve a mesma tabela de zona. |
zone.set_origin(location) | table | table | Define a origem e devolve a mesma tabela de zona. |
zone.set_destination(location) | table | table | Define o destino e devolve a mesma tabela de zona. |
em.location.is_in_dungeon(location) | table | bool | Testa as regiões de dungeon registadas e os proprietários que reportam o tipo dungeon. |
em.location.is_protected(location) | table | bool | Testa os adaptadores WorldGuard/GriefPrevention integrados e os proprietários de proteção registados por plugins. |
em.location.owned_by(location, namespace) | table, string | bool | Testa a propriedade por um namespace de plugin. |
em.location.owners(location) | table | table | Devolve um array de strings de namespace de proprietários. |
em.location.kinds_at(location) | table | table | Devolve um array de strings com os tipos de propriedade. |
em.location.has_kind(location, kind) | table, string | bool | Testa um tipo de propriedade. |
em.location.* exige um mundo carregado, indicado pelo nome ou por {name = ...}, sem recorrer ao mundo do proprietário. Sem mundo resolvido, devolve false ou arrays vazios; coordenadas omitidas usam zero. Os namespaces distinguem maiúsculas, os tipos não. Propriedade por si só não significa dungeon nem proteção. As consultas abrangem fornecedores registados, não automaticamente todos os plugins; falhas de um adaptador de regiões consultado são tratadas como proteção. A ordem dos arrays não é garantida.
Contexto de um programa Mind
Os callbacks nativos do Mind usam este contexto em vez do contexto habitual de poderes ou NPCs. Programas de comportamento em ficheiros também são carregados de plugins/EliteMobs/behaviors/; consulte a configuração de comportamento de bosses. As integrações do EliteMobs registam definições ai.program e ai.module através do EliteMindService; colocá-las no diretório habitual powers não regista um programa Mind.
| Campo | Tipo | Descrição |
|---|---|---|
tick, generation | number | Tick atual do jogo e geração do runtime. |
entity | table | Tabela partilhada de entidade viva do ator. |
memory, perception, actuator, actions | table | Serviços abaixo, válidos para o callback atual. |
| Método | Argumentos | Devolve | Descrição |
|---|---|---|---|
memory.get(key) | string | value/nil | Lê uma chave de memória declarada. |
memory.set(key, value, ttl_ticks?) | string, value, int? | nil | Define uma memória declarada com o tipo configurado e um prazo de validade opcional. |
memory.forget(key) | string | nil | Remove uma memória declarada. |
memory.contains(key) | string | bool | Verifica se existe um valor de memória declarado. |
perception.current_target() | — | table/nil | Devolve o alvo atual como tabela partilhada de entidade viva. |
perception.nearest_player(radius) | number | table/nil | Devolve o jogador mais próximo dentro do alcance. |
perception.can_see(entity_or_uuid) | table/string | bool | Verifica a linha de visão para uma entidade viva. |
perception.navigation() | — | table | Devolve destination_active, navigation_in_progress, consecutive_stuck_ticks, o campo opcional destination e o campo opcional last_progress com tick e position. |
actuator.move_to(location, speed?=1) | table, number?=1 | bool | Solicita a navegação para uma posição no mesmo mundo, com uma velocidade finita e positiva; false quando a procura de caminho não começou. |
actuator.stop_moving() | — | nil | Para a navegação. |
actuator.look_at(location) | table | nil | Olha para uma posição. |
actuator.jump() | — | nil | Solicita um salto. |
actuator.set_target(entity_or_uuid) | table/string | bool | Define uma entidade viva como alvo; false se não for possível resolvê-la. |
actuator.clear_target() | — | nil | Limpa o alvo. |
actuator.attack(entity_or_uuid) | table/string | bool | Solicita um ataque; false se não for possível resolver o alvo. |
actuator.stop_all() | — | nil | Para o movimento, o alvo e o ataque abrangidos pelos controlos que este comportamento detém. |
actions.request(identifier, payload?) | string, table? | string | Solicita uma ação semântica e devolve o resultado em minúsculas; os dados aceitam valores escalares, tabelas de UUID de entidades e tabelas de posição world/x/y/z. |
As tabelas de serviço são construídas ao primeiro acesso e reutilizadas dentro do callback. Chaves de memória não declaradas provocam erros. True num atuador confirma o encaminhamento do pedido, não a conclusão da navegação ou ataque. Os dados de ação aceitam as formas descritas, não tabelas Lua arbitrariamente aninhadas. Os identificadores de ação têm de ser chaves com namespace em minúsculas, com no máximo 128 caracteres; os dados contêm no máximo 16 entradas com chaves em minúsculas de no máximo 64 caracteres, e os valores de texto estão limitados a 256 caracteres. Todos os métodos do atuador exceto stop_all, bem como actions.request, geram um erro a menos que o comportamento que os chama detenha o controlo correspondente. Os sensores não podem usar o atuador nem as ações. Os programas de comportamento escritos em Lua estão descritos em Programas de Comportamento.
Global ai
O MagmaCore instala este global em todos os ambientes Lua. Os construtores apenas marcam a tabela que recebem; o EliteMobs compila as tabelas marcadas a partir dos ficheiros de programas de comportamento.
| Campo | Tipo | Descrição |
|---|---|---|
ai.controls.move, look, jump, target, attack, use_item, action | string | Nomes de controlos para o array controls de um comportamento; use_item não tem método de atuador em Lua. |
| Método | Argumentos | Devolve | Descrição |
|---|---|---|---|
ai.program(definition) | table | table | Marca uma definição de programa com id, revision e, opcionalmente, modules, memories, sensors, behaviors, budget e runaway. |
ai.module(definition) | table | table | Marca uma definição de módulo com id, revision e, opcionalmente, dependencies, memories, sensors e behaviors. |
ai.sensor(definition) | table | table | Marca um sensor com id, interval?=1 e sense(c). |
ai.behavior(definition) | table | table | Marca um comportamento com id, priority?=0, controls, can_start, can_continue, start, tick e stop(c, reason). |
context.mind_action: hook de poderes do EliteMobs
Disponível durante on_mind_action(context). O hook devolve "accepted", "deferred" ou "rejected"; os poderes associados são percorridos pela ordem de associação até um aceitar.
| Campo | Tipo | Descrição |
|---|---|---|
key | string | Identificador da ação semântica com namespace. |
payload | table | Cópia Lua mutável do pedido Java imutável; UUIDs de entidades são strings e posições são tabelas. Editar a cópia não altera o pedido original. |
game_tick, generation | number | Tick da ação e geração do runtime. |
context.state
Cada instância de script do MagmaCore recebe uma tabela Lua simples que persiste durante o tempo de vida dessa instância. Use-a para contadores, flags, IDs de tarefas e valores partilhados entre hooks.
context.state.counter = (context.state.counter or 0) + 1
context.log
Métodos do MagmaCore, do FreeMinecraftModels e dos NPC do EliteMobs
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
info(message) | string | nil | Regista uma mensagem informativa com o prefixo Lua partilhado. |
warn(message) | string | nil | Regista um aviso. |
error(message) | string | nil | Regista através do canal de avisos partilhado. |
Métodos dos poderes de chefe do EliteMobs
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
info(message) | string | nil | Regista uma mensagem informativa de poder de chefe. |
warn(message) | string | nil | Regista um aviso. |
debug(message) | string | nil | Regista uma mensagem informativa com o prefixo de depuração dos poderes Lua. |
context.scheduler
As tarefas agendadas pertencem à instância do script e são canceladas quando esta termina. Ambas as famílias de nomes abaixo estão disponíveis nas superfícies partilhadas do MagmaCore e nos poderes de chefe do EliteMobs.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
run_later(ticks, callback) | int, function | int | Corre uma vez após o atraso e devolve o ID da tarefa Bukkit. |
run_repeating(delay, interval, callback) | int, int, function | int | Corre repetidamente após um atraso inicial e devolve o ID da tarefa. |
cancel(task_id) | int | nil | Cancela uma tarefa própria. |
run_after(ticks, callback) | int, function | int | Alias de run_later. |
run_every(interval, callback) | int, function | int | Corre repetidamente sem atraso inicial e devolve o ID da tarefa. |
cancel_task(task_id) | int | nil | Alias de cancel. |
Os callbacks recebem um contexto novo, normalmente sem evento nem jogador. Capture os valores ou UUIDs necessários em vez de guardar um contexto antigo com campos resolvidos a pedido. Tarefas únicas vencidas aguardam durante pausas; tarefas repetidas saltam ticks pausados sem os repetir depois. Erros de callback encerram a instância. Cancelar tarefas próprias não desfaz alterações arbitrárias no mundo ou entidades nem temporizadores de UI independentes.
context.cooldowns
O armazenamento local pertence ao adaptador ScriptableEntity. O FreeMinecraftModels cria um adaptador por script de prop; um NPC do EliteMobs partilha um adaptador por todos os seus scripts, pelo que chaves locais nomeadas podem colidir. O armazenamento global é partilhado pelo prop ou NPC. Sem chave local usa-se __lua: seguido do ficheiro; chaves nomeadas são exatas. Os poderes de chefe partilham o armazenamento local do chefe e o seu cooldown global integrado.
Cooldowns partilhados locais/globais e cooldowns locais de chefe medem tempo real decorrido, com 50 ms por tick solicitado, mesmo durante pausas ou TPS baixo. Os globais de chefe contam ticks do servidor e mantêm a expiração mais tardia: um set_global mais curto nunca encurta um cooldown global ativo, e uma duração não positiva não faz nada. As verificações locais não verificam automaticamente o global.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
local_ready(key?) | string? | bool | Testa se o cooldown local com essa chave está pronto. |
local_remaining(key?) | string? | int | Devolve os ticks restantes, ou 0 quando está pronto. |
check_local(key, duration) | string/nil, int | bool | Se estiver pronto, inicia o cooldown e devolve true. Passe nil para usar a chave predefinida. |
set_local(duration, key?) | int, string? | nil | Define ou limpa o cooldown local; uma duração não positiva limpa-o. |
global_ready() | — | bool | Testa se o cooldown global do proprietário está pronto. |
set_global(duration) | int | nil | Define o cooldown global em ticks. Nas superfícies partilhadas do MagmaCore, uma duração não positiva limpa-o. |
context.zones: superfície partilhada do MagmaCore
Os scripts do FreeMinecraftModels, os scripts de NPC do EliteMobs e outros consumidores predefinidos do MagmaCore recebem handles de zona inteiros no mundo do proprietário atual do script.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
create_sphere(x, y, z, radius) | number, number, number, number | int/nil | Regista uma esfera e devolve o seu handle, ou nil quando o proprietário não tem mundo. |
create_cylinder(x, y, z, radius, height) | number, number, number, number, number | int/nil | Regista um cilindro e devolve o seu handle, ou nil quando o proprietário não tem mundo. |
create_cuboid(x, y, z, x_size, y_size, z_size) | number, number, number, number, number, number | int/nil | Regista um cuboide e devolve o seu handle, ou nil quando o proprietário não tem mundo. |
watch(handle, on_enter?, on_leave?) | int, function?, function? | bool/nil | Ativa o acompanhamento de fronteiras para um handle conhecido. A presença de uma função ativa o hook on_zone_enter ou on_zone_leave correspondente; o corpo da função fornecida não é chamado diretamente. |
unwatch(handle) | int | nil | Para o acompanhamento e remove o handle. |
As observações genéricas testam pontos de posição dos jogadores. As dimensões de cuboides são meias extensões neste caminho (Z zero usa X não zero), não necessariamente o mesmo volume das consultas EliteMobs de sobreposição ou amostragem. As zonas conservam as coordenadas e o mundo de criação, enquanto cada tick examina jogadores no mundo atual do proprietário. Os hooks expõem o jogador que atravessa a fronteira em context.player e context.event.player.
A criação inicia imediatamente o acompanhamento, antes de watch instalar os dispatchers. Instalar a observação mais tarde não gera entrada para um jogador já registado dentro da zona. Omitir um callback num segundo watch não limpa o dispatcher anterior. Desligar ou chamar unwatch não garante saída. As zonas são verificadas antes de on_game_tick.
context.event: superfície partilhada do MagmaCore
Esta tabela existe enquanto um hook partilhado tiver um evento Bukkit atual ou um ator. Está ausente nos callbacks agendados e nos hooks sem qualquer um desses valores.
| Campo ou método | Tipo | Descrição |
|---|---|---|
is_cancelled | bool | Estado de cancelamento capturado ao resolver a subtabela de evento pela primeira vez; chamar cancel() ou uncancel() não o atualiza. |
cancel() | método | Cancela o evento atual. Presente apenas quando este implementa Cancellable do Bukkit. |
uncancel() | método | Anula o cancelamento do evento atual. Presente apenas quando este implementa Cancellable do Bukkit. |
player | table | Living Entity Table do ator atual, quando existe um. |
Os hooks genéricos de zona fornecem um ator mas nenhum evento Bukkit cancelável, pelo que expõem is_cancelled = false e player sem cancel() nem uncancel().
context.item
Os scripts de ação de encantamentos expõem esta tabela quando a origem capturada tem um slot e um item. Visa esse slot e compara material/metadados do item atual com o instantâneo, ignorando dano e quantidade. Não procura no inventário nem acompanha uma identidade única: um substituto equivalente no mesmo slot também corresponde. Pode ser nil para munição já consumida. É independente do runtime descontinuado de itens equipados do FreeMinecraftModels.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
get_durability() | — | table/nil | Durabilidade restante {current, max}; nil para itens indisponíveis ou sem durabilidade. |
get_durability_percentage() | — | number/nil | Durabilidade restante dividida pelo máximo do material; normalmente 0..1, mas dano externo excessivo pode sair desse intervalo. |
use_durability(amount, can_break?=false) | int, bool? | bool | Altera o dano; valores negativos reparam. Por omissão mantém pelo menos uma unidade; can_break=true pode consumir a pilha. |
use_durability_percentage(fraction, can_break?=false) | number, bool? | bool | Aplica ceil(max_durability * fraction) de dano com a mesma política de quebra. |
consume(amount) | positive int | bool | Consome da pilha capturada apenas se restarem itens suficientes. |
A durabilidade usa o máximo do material, não um componente personalizado de dano máximo. Estas alterações diretas não aplicam desgaste vanilla, Unbreaking, verificações de inquebrável nem eventos de dano ao item do jogador. Frações devem ser finitas e produzir um resultado no intervalo de inteiros; frações negativas reparam. Partir consome toda a pilha capturada. Consulte o ciclo de vida e contexto em encantamentos personalizados.
context.prop
Os scripts de prop do FreeMinecraftModels recebem esta tabela, que herda a Entity Table do MagmaCore quando existe uma entidade de suporte.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
model_id | string/nil | Nome do blueprint do modelo, ou nil quando não existe blueprint. |
current_location | table/nil | Localização do prop em tempo real. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
play_animation(name, blend?=true, loop?=true) | string, bool?=true, bool?=true | bool | Reproduz a animação com esse nome. |
stop_animation() | — | nil | Limpa a reprodução enfileirada e regressa a idle quando disponível; preserva o estado terminal de morte. |
hurt_visual() | — | nil | Reproduz o efeito visual vermelho de dano sem causar dano. |
pickup() | — | nil | Agenda a remoção permanente e larga um item de colocação. |
has_mount_points() | — | bool | Testa se o prop tem ossos de ponto de montagem. |
mount(player) | table | bool | Agenda a montagem de um jogador resolvido no primeiro assento disponível. |
dismount(player) | table | bool | Agenda a desmontagem de um jogador resolvido deste prop. |
get_passengers() | — | table | Devolve as Entity Tables dos jogadores montados. |
spawn_elitemobs_boss(file, x, y, z) | string, number, number, number | table/nil | Gera um custom boss do EliteMobs quando o EliteMobs está ativo. |
open_inventory(player, title, rows?=3) | table, string, int?=3 | bool | Agenda a abertura do armazenamento persistente com as linhas limitadas entre 1 e 6. |
place_book(player) | table | bool | Agenda o armazenamento de um livro escrito ou por escrever que esteja na mão, quando o prop não tem nenhum. |
read_book(player) | table | bool | Agenda a abertura de um livro escrito guardado. |
take_book(player) | table | bool | Agenda a devolução do livro guardado ao jogador. |
has_book() | — | bool | Testa se o prop guarda um livro. |
drop_inventory() | — | bool | Agenda a limpeza do armazenamento persistente e larga os seus itens. |
drop_book() | — | bool | Agenda a limpeza e a largada do livro guardado. |
is_viewing_inventory(player) | table | bool | Testa se o jogador está a ver o inventário acompanhado deste prop. |
set_persistent_data(key, value) | string, string | bool | Guarda uma string sob a chave fmm_lua_ com âmbito do prop. |
get_persistent_data(key) | string | string/nil | Devolve a string guardada, ou nil. |
Nas operações de prop agendadas, true confirma as verificações iniciais de jogador/entidade, não um assento disponível, um livro guardado ou uma interface aberta. take_book remove o armazenamento antes de inserir e não larga excedentes do inventário. Todos os espectadores de um prop partilham um único inventário ativo, guardado quando o último o fecha; enquanto estiver aberto, as chamadas seguintes reutilizam o seu título e tamanho. Conteúdos guardados maiores do que as linhas pedidas abrem no tamanho guardado, pelo que nenhum slot é perdido. Os dados ficam no armor stand de suporte; um novo item de colocação não garante a conservação desses dados ao recolher o prop.
Em on_projectile_hit, os scripts de prop também recebem context.projectile, uma tabela de entidade partilhada para o projétil. O hook não dispara quando outro plugin já cancelou o impacto. context.event envolve o evento de impacto cancelável do FreeMinecraftModels, e context.event.player é o atirador quando este é uma entidade viva, incluindo mobs; context.player só é definido quando foi um jogador a disparar o projétil.
context.npc
Os scripts de NPC do EliteMobs herdam os contextos partilhados do MagmaCore e acrescentam esta tabela específica de NPC.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome apresentado do NPC configurado. |
filename | string | Nome do ficheiro de configuração do NPC. |
uuid | string | UUID do NPC em tempo de execução. |
activation_radius | number | Raio de ativação configurado. |
current_location | table | Instantâneo da localização, presente apenas enquanto existir a entidade viva de suporte. |
entity_type | string | Tipo de entidade do Bukkit em maiúsculas, presente apenas enquanto existir a entidade viva de suporte. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
is_valid() | — | bool | Testa se o NPC é válido. |
remove() | — | nil | Remove o NPC através do ciclo de vida que o gere. |
get_location() | — | table | Devolve a localização atual do NPC, recorrendo à sua localização de spawn. A tabela inclui também um vetor direction. |
get_eye_location() | — | table | Devolve a localização atual dos olhos, recorrendo à localização de spawn. A tabela inclui também um vetor direction. |
get_activation_radius() | — | number | Devolve o raio de ativação configurado atualmente. |
get_nearby_players(radius) | number | table | Devolve jogadores do mesmo mundo num raio 3D a partir dos pés do NPC, sem filtro de modo de jogo. |
face_direction_or_location(target) | table | nil | Orienta para um vetor ou posição no mesmo mundo; ignorado durante movimento ativo de patrulha. |
say_greeting(player?) | table/string? | nil | Envia a saudação configurada, usando por omissão o jogador que desencadeou a ação quando disponível. Aceita uma tabela de jogador, um UUID ou um nome. |
say_dialog(player?) | table/string? | nil | Envia o diálogo configurado com a mesma resolução de jogador. |
say_farewell(player?) | table/string? | nil | Envia a despedida configurada com a mesma resolução de jogador. |
play_model_animation(name) | string | nil | Reproduz uma animação de modelo quando existe um modelo personalizado. |
patrol_pause() | — | bool | Pausa a patrulha configurada. |
patrol_resume() | — | bool | Retoma a patrulha após uma espera ou caminhada de script. |
walk_to(x, y, z) | number, number, number | bool | Caminha até um deslocamento da origem e retoma a patrulha. |
hold(x, y, z) | number, number, number | bool | Caminha até um deslocamento e permanece ali. |
teleport(x, y, z) | number, number, number | bool | Teleporta para um deslocamento que processa entidades. |
Tabela de localização dos poderes do EliteMobs
As tabelas dos poderes de chefe do EliteMobs devolvem esta forma de localização a partir de get_location(), get_eye_location(), current_location e outros resultados de localização. Uma localização em falta devolve uma tabela vazia.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
x, y, z | number | Coordenadas. |
yaw, pitch | number | Rotação. |
world | string/nil | Nome do mundo, quando a localização tem um mundo. |
direction | table | Vetor unitário {x, y, z} da direção para onde olha. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
add(dx?=0, dy?=0, dz?=0) | number?=0, number?=0, number?=0 | table | Soma às coordenadas na própria tabela e devolve a mesma tabela; direction não é atualizado. |
Tabela de referência de entidade dos poderes do EliteMobs
Os métodos dos poderes de chefe do EliteMobs devolvem esta tabela leve para entidades não vivas, como projéteis, fogos de artifício e blocos em queda.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Instantâneo do nome da entidade. |
uuid | string | UUID da entidade. |
entity_type | string | Instantâneo do tipo de entidade do Bukkit em maiúsculas. |
is_player | bool | Sempre false. |
is_elite | bool | Sempre false. |
is_mount | bool | False, exceto quando um chefe marca como true uma tabela de montada devolvida. |
current_location | table | Instantâneo da localização. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
is_valid() | — | bool | Testa a validade em tempo real. |
get_location() | — | table | Devolve a localização em tempo real. |
get_velocity() | — | table | Devolve a velocidade em tempo real. |
is_on_ground() | — | bool | Testa o estado de contacto com o solo em tempo real. |
teleport_to_location(location) | table | nil | Teletransporta quando a localização é resolvida. |
set_velocity_vector(vector) | table | nil | Define a velocidade quando o vetor é resolvido. |
set_direction_vector(vector) | table | nil | Define a direção de uma bola de fogo quando aplicável. |
set_yield(amount) | number | nil | Define a potência da bola de fogo quando aplicável. |
set_gravity(enabled) | bool | nil | Define a gravidade. |
detonate() | — | nil | Detona quando a entidade é um fogo de artifício. |
remove() | — | nil | Remove a entidade. |
unregister(reason?=OTHER) | string?=OTHER | nil | Cancela o registo usando DEATH, PHASE_BOSS_RESET, PHASE_BOSS_PHASE_END, CHUNK_UNLOAD, WORLD_UNLOAD, SHUTDOWN, EFFECT_TIMEOUT, BOSS_TIMEOUT, NPC_TIMEOUT, OTHER, UNSPECIFIED_WATCHDOG_REMOVAL, REMOVE_COMMAND, KILL_COMMAND, REINFORCEMENT_CULL, ENTITY_REPLACEMENT ou ARENA_RESET. |
is_inside_vehicle() | — | bool | Testa se a entidade está a montar um veículo. |
has_vehicle() | — | bool | Testa se existe um veículo. |
get_vehicle() | — | table/nil | Devolve a referência do veículo atual. |
set_vehicle(vehicle) | table | bool | Faz esta entidade montar o veículo resolvido. |
leave_vehicle() | — | bool | Sai do veículo atual. |
has_passengers() | — | bool | Testa se existem passageiros. |
get_passenger_count() | — | int | Devolve o número de passageiros. |
get_passengers() | — | table | Devolve as referências dos passageiros. |
add_passenger(passenger) | table | bool | Adiciona o passageiro resolvido. |
remove_passenger(passenger) | table | bool | Remove o passageiro resolvido. |
eject_passengers() | — | bool | Ejeta todos os passageiros. |
Tabela de entidade viva dos poderes do EliteMobs
Os valores de entidade viva dos poderes de chefe do EliteMobs usam esta tabela separada; as tabelas Boss e de jogador dos poderes do EliteMobs herdam-na.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Instantâneo do nome da entidade. |
uuid | string | UUID da entidade. |
entity_type | string | Instantâneo do tipo de entidade do Bukkit em maiúsculas. |
is_player | bool | Se a entidade é um jogador. |
is_monster | bool | Se a entidade implementa Monster do Bukkit. |
is_elite | bool | Se o EliteMobs acompanha a entidade. |
is_mount | bool | Se o custom boss acompanhado é uma montada. |
is_valid | bool | Instantâneo da validade. |
health | number | Instantâneo da vida. |
maximum_health | number | Instantâneo da vida máxima. |
current_location | table | Instantâneo da localização. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
is_alive() | — | bool | Testa a validade em tempo real e o estado de morte. |
is_ai_enabled() | — | bool | Devolve o estado da IA em tempo real. |
is_frozen() | — | bool | Devolve a definição de congelamento do custom boss do EliteMobs, ou false. |
get_location() | — | table | Devolve a localização em tempo real. |
get_eye_location() | — | table | Devolve a localização dos olhos em tempo real. |
get_height() | — | number | Devolve a altura da entidade no Bukkit. |
get_health() | — | number | Devolve a vida em tempo real. |
get_maximum_health() | — | number | Devolve a vida máxima em tempo real. |
get_velocity() | — | table | Devolve a velocidade em tempo real. |
deal_damage(amount) | number | nil | Aplica dano genérico do Bukkit. |
deal_custom_damage(amount) | number | nil | Submete dano personalizado bruto do chefe a um alvo vivo; ignora o próprio chefe, alvos invulneráveis ou mortos e jogadores fora de Survival/Adventure. Sujeito às regras de instância e ao cancelamento do evento de dano. |
deal_damage_from_boss(amount) | number | nil | Aplica dano do Bukkit atribuído ao chefe do poder. |
restore_health(amount) | number | nil | Cura através do EliteMobs quando a entidade é acompanhada, caso contrário limita a vida do Bukkit ao máximo. |
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Reproduz um som registado ou personalizado com namespace na entidade. O segundo argumento pode em alternativa ser {volume, pitch}. |
play_sound_at_self(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Alias que reproduz na entidade. O segundo argumento pode em alternativa ser {volume, pitch}. |
spawn_particle_at_self(particle, count?=1) | string (Particle)/table, int?=1 | nil | Gera uma string de partícula ou uma tabela de especificação de partícula na entidade. |
spawn_particles_at_location(location, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0) | table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0 | nil | Gera uma partícula numa localização. |
teleport_to_location(location) | table | nil | Teletransporta quando a localização é resolvida. |
set_velocity_vector(vector) | table | nil | Define a velocidade quando o vetor é resolvido. |
set_gravity(enabled) | bool | nil | Define a gravidade. |
is_on_ground() | — | bool | Testa o estado de contacto com o solo em tempo real. |
apply_push_vector(vector, additive?=false, delay?=1) | table, bool?=false, int?=1 | nil | Aplica velocidade após um atraso, opcionalmente somando à velocidade atual. |
set_custom_name(name) | string | nil | Define um nome personalizado processado para cor. |
reset_custom_name() | — | nil | Repõe o nome do EliteMobs quando a entidade é acompanhada, caso contrário o nome do Bukkit. |
set_custom_name_visible(visible) | bool | nil | Define a visibilidade do nome personalizado. |
set_ai_enabled(enabled, duration?=0) | bool, int?=0 | nil | Define a IA como alteração própria; ticks positivos repõem o valor substituído. true termina a alteração de IA ativa deste poder, se existir, em vez de aplicar um novo valor. |
set_awareness_enabled(enabled, duration?=0) | bool, int?=0 | nil | Define a perceção do mob como alteração própria; ticks positivos repõem o valor substituído. true termina a alteração de perceção ativa deste poder, se existir, em vez de aplicar um novo valor. |
face_direction_or_location(target) | table | nil | Vira-se para um vetor ou para uma localização no mesmo mundo. |
play_model_animation(name) | string | nil | Reproduz uma animação de modelo personalizado quando disponível. |
set_scale(scale, duration?=0) | number, int?=0 | nil | Define a escala base como alteração própria; ticks positivos repõem o valor substituído. |
set_invulnerable(enabled, duration?=0) | bool, int?=0 | nil | Define a invulnerabilidade como alteração própria; ticks positivos repõem o valor substituído. |
remove_elite() | — | nil | Remove um elite acompanhado através do processo de remoção do EliteMobs. |
is_healing() | — | bool | Testa o estado de cura do elite acompanhado. |
set_healing(enabled) | bool | nil | true marca um elite acompanhado como em cura quando ainda não o está; false limpa apenas a cura definida por este poder. O encerramento do poder limpa a cura que ainda lhe pertence. |
navigate_to_location(location, speed?=1, force?=false, timeout?=0) | table, number?=1, bool?=false, int?=0 | nil | Faz um custom boss acompanhado navegar. |
add_tag(tag, duration?=0) | string, int?=0 | nil | Adiciona uma tag e remove-a após ticks positivos. |
remove_tag(tag) | string | nil | Remove uma tag. |
has_tag(tag) | string | bool | Testa uma tag de entidade, de elite ou de jogador. |
push_relative_to(location, force?=1, extra_x?=0, extra_y?=0, extra_z?=0) | table, number?=1, number?=0, number?=0, number?=0 | nil | Substitui imediatamente a velocidade pelo vetor normalizado para longe da origem vezes a força, mais deslocamentos nos eixos do mundo. Use uma origem do mesmo mundo. |
overlaps_box_at_location(center, half_x?=0.5, half_y?=half_x, half_z?=half_x) | table, number?=0.5, number?, number? | bool | Testa a caixa delimitadora da entidade contra a caixa pedida. |
is_inside_vehicle() | — | bool | Testa se a entidade está a montar um veículo. |
has_vehicle() | — | bool | Testa se existe um veículo. |
get_vehicle() | — | table/nil | Devolve a referência do veículo atual. |
set_vehicle(vehicle) | table | bool | Faz esta entidade montar o veículo resolvido. |
leave_vehicle() | — | bool | Sai do veículo atual. |
has_passengers() | — | bool | Testa se existem passageiros. |
get_passenger_count() | — | int | Devolve o número de passageiros. |
get_passengers() | — | table | Devolve as referências dos passageiros. |
add_passenger(passenger) | table | bool | Adiciona o passageiro resolvido. |
remove_passenger(passenger) | table | bool | Remove o passageiro resolvido. |
eject_passengers() | — | bool | Ejeta todos os passageiros. |
apply_potion_effect(type, duration, amplifier?=0) | string (PotionEffectType), int, int?=0 | nil | Resolve um nome de poção Bukkit em maiúsculas e aplica-o quando as regras de instância permitem. Amplificadores começam em zero. |
set_equipment(slot, material, options?) | string (EquipmentSlot), string (Material), table? | nil | Define o equipamento; as opções suportam entradas unbreakable e enchantments com type e level. |
damage_equipment(slot, amount) | string, int | int | Solicita 1–64 pontos de desgaste em HAND, OFF_HAND, HEAD, CHEST, LEGS ou FEET; devolve o desgaste efetivamente aplicado. Respeita o cancelamento do evento de dano ao item do jogador e os itens inquebráveis; pode partir o item. |
set_fire_ticks(ticks) | int | nil | Define ticks de fogo quando as regras de instância permitem. |
add_visual_freeze_ticks(ticks?=1) | int?=1 | nil | Acrescenta ticks de congelamento Minecraft quando permitido; pode causar dano de congelamento e não bloqueia IA ou movimento. |
place_temporary_block(material, ticks?=0, require_air?=false) | string (Material), int?=0, bool?=false | nil | Coloca um bloco temporário na entidade. |
As alterações de IA, perceção, escala e invulnerabilidade pertencem ao poder que as chama. Cada uma regista o valor que substituiu. Uma duração positiva repõe esse valor após os ticks indicados; uma duração de 0 mantém a alteração até o poder encerrar, o que também a repõe. Quando vários poderes alteram a mesma propriedade, terminar uma alteração repõe a alteração restante mais recente, ou o valor original quando já não resta nenhuma. Se outro plugin ou comando alterar a propriedade entretanto, o seu valor é mantido e nada é reposto. Pausar um poder não termina estas alterações. O apply_push_vector atrasado e os temporizadores de remoção de tags continuam independentes do scheduler do script. reset_custom_name repõe o nome do elite acompanhado; numa entidade Bukkit comum usa o nome atual, não um original guardado.
Tabela de jogador dos poderes do EliteMobs
Os valores de jogador dos poderes de chefe do EliteMobs herdam todas as propriedades e métodos da tabela de entidade viva dos poderes do EliteMobs.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
game_mode | string | Instantâneo do modo de jogo do Bukkit em maiúsculas. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
send_message(text) | string | nil | Envia texto de chat processado para cor. |
show_action_bar(text) | string | nil | Envia uma action bar processada para cor. |
show_title(title, subtitle?="", fade_in?=10, stay?=40, fade_out?=10) | string, string?="", int?=10, int?=40, int?=10 | nil | Mostra um título processado para cor. |
show_boss_bar(title, color?=WHITE, style?=SOLID, duration?=40) | string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40 | nil | Mostra uma barra de chefe e remove-a após ticks positivos. |
run_command(command) | string | nil | Executa um comando como o jogador. |
context.boss
Os poderes de chefe do EliteMobs recebem esta tabela, que herda todas as propriedades e métodos da tabela de entidade viva dos poderes do EliteMobs e substitui as linhas aqui listadas por semântica de nível de elite.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Instantâneo do nome apresentado do elite ou do nome do ficheiro do script. |
uuid | string | UUID do elite. |
health | number | Instantâneo da vida do elite. |
maximum_health | number | Instantâneo da vida máxima do elite. |
current_location | table | Instantâneo da localização do elite. |
level | int | Instantâneo do nível do elite. |
damager_count | int | Instantâneo do número de atacantes. |
is_in_combat | bool | Instantâneo do estado de combate. |
exists | bool | Instantâneo da existência do elite. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
is_alive() | — | bool | Testa a entidade viva e o estado de existência no EliteMobs. |
get_health() | — | number | Devolve a vida do elite em tempo real. |
get_maximum_health() | — | number | Devolve a vida máxima do elite em tempo real. |
get_location() | — | table | Devolve a localização do elite em tempo real. |
restore_health(amount) | number | nil | Cura através da entidade do EliteMobs. |
add_tag(tag, duration?=0) | string, int?=0 | nil | Adiciona uma tag de elite e remove-a após ticks positivos. |
remove_tag(tag) | string | nil | Remove uma tag de elite. |
has_tag(tag) | string | bool | Testa uma tag de elite. |
reset_custom_name() | — | nil | Repõe o nome apresentado do elite. |
play_sound_at_self(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Reproduz um som registado ou personalizado com namespace na localização do elite. O segundo argumento pode em alternativa ser {volume, pitch}. |
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1) | string (Sound), number/table?=1, number?=1 | nil | Alias que reproduz na localização do elite. O segundo argumento pode em alternativa ser {volume, pitch}. |
spawn_particle_at_self(particle, count?=1) | string (Particle)/table, int?=1 | nil | Gera uma partícula na localização do elite. |
play_model_animation(name) | string | nil | Reproduz a animação do modelo do custom boss quando disponível. |
navigate_to_location(location, speed?=1, force?=false, timeout?=0) | table, number?=1, bool?=false, int?=0 | nil | Faz um custom boss navegar. |
get_damager_count() | — | int | Devolve o número de atacantes em tempo real. |
despawn() | — | nil | Remove o elite com o motivo OTHER. |
remove() | — | nil | Alias de despawn(). |
patrol_pause() | — | bool | Pausa a patrulha configurada. |
patrol_resume() | — | bool | Retoma a patrulha após uma espera ou caminhada de script. |
walk_to(x, y, z) | number, number, number | bool | Caminha até um deslocamento da origem e retoma a patrulha. |
hold(x, y, z) | number, number, number | bool | Caminha até um deslocamento e permanece ali. |
teleport(x, y, z) | number, number, number | bool | Teleporta para um deslocamento que processa entidades. |
get_ender_dragon_phase() | — | string/nil | Devolve o nome da EnderDragon.Phase, ou nil. |
set_ender_dragon_phase(phase) | string (EnderDragon.Phase) | nil | Define uma fase válida do ender dragon. |
has_mount() | — | bool | Testa se o chefe tem um veículo de montada ativo. |
get_mount() | — | table/nil | Devolve a referência da montada marcada com is_mount = true. |
set_mount(mount) | table | bool | Faz o chefe montar a entidade resolvida. |
clear_mount() | — | bool | Sai do veículo atual. |
dismount() | — | bool | Alias de clear_mount(). |
start_tracking_fireball_system(speed?=0.5) | number?=0.5 | nil | Num chefe do tipo monstro, dispara bolas de fogo perseguidoras contra jogadores Survival/Adventure a 20 blocos ou menos em cada eixo, no tick seguinte e a cada 160 ticks enquanto tiver um alvo. A tarefa pertence ao poder: pausá-lo pausa-a, e perder o alvo ou encerrar termina-a. A velocidade tem de ser finita e positiva. |
handle_spirit_walk_damage(cause) | string (DamageCause) | nil | Executa o tratamento de dano do Spirit Walk. |
shield_wall_is_active() | — | bool | Testa o estado do shield wall. |
initialize_shield_wall(openingDirection?=1) | int?=1 | nil | Inicializa reservas por direção iguais ao nível do boss. Abertura: 1 norte, 2 este, 3 sul, 4 oeste; outros inteiros protegem todos os lados. Um muro já ativo não é alterado. |
shield_wall_absorb_damage(player, damage) | table, number | bool | Subtrai dano da reserva do lado do atacante se esta era positiva; true indica que o script deve cancelar o evento de dano. Não o cancela automaticamente. |
deactivate_shield_wall() | — | nil | Para a tarefa independente do muro e remove o seu estado e efeitos. Fechar Lua por si só não o desativa. |
start_zombie_necronomicon(target, chant) | table, string | nil | Inicia o controlador independente para um alvo vivo. A string é texto apresentado, não um ficheiro; invoca os ficheiros fixos de zombie/esqueleto do necronomicon ao nível do invocador. |
send_message(text, range?=20) | string, number?=20 | nil | Envia texto processado para cor aos jogadores dentro do alcance. |
get_nearby_players(range) | number | table | Devolve as tabelas de jogador dos poderes do EliteMobs que estejam próximas. |
get_nearby_elites(radius) | number | table | Devolve até 32 elites vivas registadas no mesmo mundo, excluindo o boss; ordenadas por distância e, em caso de empate, por UUID. O raio deve ser superior a 0 e no máximo 64. |
get_target_player() | — | table/nil | Devolve o alvo atual do mob quando este é um jogador. |
get_nearby_players_in_zone(zone) | table | table | Devolve os jogadores contidos na zona. |
spawn_particles_in_zone(zone, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0, coverage?=1) | table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0, number?=1 | nil | Amostra o interior da zona e gera partículas. |
spawn_particles_in_zone_border(zone, particle, count?=1, dx?=0, dy?=0, dz?=0, speed?=0, coverage?=1) | table, string (Particle), int?=1, number?=0, number?=0, number?=0, number?=0, number?=1 | nil | Amostra a orla da zona e gera partículas. |
get_particles_from_self_toward_zone(zone, particle, speed?=0.1) | table, string (Particle), number?=0.1 | table | Constrói especificações de partículas direcionais do chefe em direção a pontos amostrados da zona. |
get_particles_toward_self(zone, particle, speed) | table, string (Particle), number | table | Constrói especificações de partículas direcionais em direção ao chefe; o construtor atual lê a velocidade a partir do último argumento fornecido. |
spawn_particles_with_vector(particles) | table | nil | Gera um array de especificações de partículas direcionais. |
summon_reinforcement(file, zone_or_location?, duration?=0) | string, table?, int?=0 | table/nil | Invoca um reforço num ponto amostrado da zona, numa localização ou no chefe; uma duração positiva remove-o após esse número de ticks. |
summon_projectile(type, origin, destination, speed?=1, options?) | string (EntityType), table, table, number?=1, table? | table/nil | Gera um projétil; as opções suportam custom_damage, detonation_power, yield, incendiary, gravity, glowing, invulnerable, persistent, duration, effect de EntityEffect, spawn_at_origin, direction_only, track, on_land e max_ticks. |
context.players: poderes de chefe do EliteMobs
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
current_target() | — | table/nil | Devolve o ator do evento quando este é um jogador, caso contrário o alvo atual do mob do chefe quando este é um jogador. |
nearby_players(radius) | number | table | Devolve as Player Tables dentro do raio a partir do chefe. |
all_players_in_world() | — | table | Devolve todas as Player Tables no mundo atual do chefe. |
context.entities: poderes de chefe do EliteMobs
As consultas de coleções excluem o próprio chefe. Os filtros de entidades vivas aceitam player/players, elite/elites, mob/mobs, ou qualquer outro valor para todas as entidades vivas. Não impõem Survival/Adventure nem pertença à instância. A consulta direta devolve o alvo fornecido pelo hook independentemente desses filtros.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
get_nearby_entities(radius, filter?="living") | number, string? | table | Os filtros de entidades vivas usam um raio 3D a partir dos pés. all ou entities usa antes a caixa alinhada aos eixos do Bukkit e inclui entidades não vivas. |
get_entities_in_box(center, half_x, half_y, half_z, filter?="living") | table, number, number, number, string? | table | Devolve entidades vivas cuja posição dos pés esteja na caixa, incluindo a fronteira. |
get_all_entities(filter?="living") | string? | table | Devolve as entidades vivas correspondentes no mundo do chefe. |
get_direct_target_entity() | — | table/nil | Devolve o alvo direto fornecido pelo hook atual. |
get_boss_spawn_location() | — | table | Devolve a localização de spawn original do chefe. |
context.vectors: poderes de chefe do EliteMobs
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
get_vector_between_locations(source, destination, options?) | table, table, table? | table | Devolve o vetor entre localizações no mesmo mundo, ou {x=0,y=0,z=0} para entradas inválidas ou entre mundos diferentes. As opções suportam normalize, multiplier e o vetor offset. |
rotate_vector(vector, pitch?=0, yaw?=0) | table, number?=0, number?=0 | table | Devolve o vetor rodado por pitch e yaw em graus. |
normalize_vector(vector) | table | table | Devolve um vetor unitário; um vetor nulo continua nulo. |
context.zones: poderes de chefe do EliteMobs
Os poderes de chefe do EliteMobs substituem a superfície partilhada de zonas com handles inteiros por consultas de definição de zona do Elite Script.
A pertença de entidades, contenção de pontos e amostragem de partículas são operações distintas e podem diferir nas fronteiras. coverage altera pontos amostrados, não a seleção de entidades. watch_zone captura uma forma e chama os callbacks com uma tabela de entidade, não um contexto. Começa após um tick e comunica entradas para entidades já presentes. Parar a observação não emite saídas.
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
get_entities_in_zone(zone, options?) | table, table? | table | Devolve as entidades vivas correspondentes. As opções suportam filter e mode = "full" ou "border". |
get_locations_in_zone(zone, options?) | table, table? | table | Devolve localizações amostradas. As opções suportam coverage e mode = "full" ou "border". |
zone_contains(zone, location, mode?="full") | table, table, string? | bool | Testa se a localização está na forma completa ou na orla. |
watch_zone(zone, callbacks, options?) | table, table, table? | nil | Observa com callbacks {on_enter, on_leave}. As opções suportam filter e mode; a observação criada termina com o script. |
context.script: poderes de chefe do EliteMobs
Esta ponte aceita as mesmas chaves de tabela que a configuração YAML de alvo, zona e vetor relativo do Elite Script.
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
target(spec) | table | target handle | Cria um handle de alvo. |
zone(spec) | table | zone handle | Cria um handle de zona. |
relative_vector(spec, location?, zone?) | table, table?, zone handle? | vector handle | Cria um handle de vetor relativo, usando o chefe como localização de ação por omissão. |
damage(target, amount?=0, multiplier?=1) | target handle, number?=0, number?=1 | nil | Submete dano Bukkit atribuído ao chefe. Acertos em jogadores passam pela escala de combate EliteMobs com o multiplicador; acertos noutras entidades não o aplicam. |
push(target, vector, additive?=false) | target handle, table/vector handle, bool?=false | nil | Após um tick próprio, substitui ou soma velocidade nos alvos capturados; usa um só vetor resolvido para todos, e um vetor ausente/não finito torna-se zero. |
set_facing(target, vector) | target handle, table/vector handle | nil | Vira as entidades-alvo resolvidas ao longo do vetor. |
spawn_particles(target, particles) | target handle, table/string | nil | Gera a especificação de partículas nas localizações-alvo resolvidas. |
Estas chamadas não executam automaticamente listas de ações Elite Script, condições, cooldowns, avisos ou repetições. Os handles de alvo retêm o evento/alvo direto de origem; evite reutilizar handles dependentes de eventos noutros hooks. first_entity() significa o primeiro resultado do resolvedor, não necessariamente a entidade mais próxima.
Métodos do target handle
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
entities() | — | table | Resolve e devolve Entity Tables. |
locations() | — | table | Resolve e devolve tabelas de localização. |
first_entity() | — | table/nil | Devolve a primeira entidade resolvida. |
first_location() | — | table/nil | Devolve a primeira localização resolvida. |
Métodos do zone handle
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
full_target(coverage?) | number? | target handle | Cria um handle de alvo para o interior da forma. |
border_target(coverage?) | number? | target handle | Cria um handle de alvo para a orla. |
full_locations(coverage?) | number? | table | Resolve as localizações interiores amostradas. |
border_locations(coverage?) | number? | table | Resolve as localizações amostradas na orla. |
full_entities() | — | table | Resolve as entidades dentro da forma. |
border_entities() | — | table | Resolve as entidades na orla. |
contains(location, mode?="full") | table, string? | bool | Testa a pertença à forma completa ou à orla. |
watch(callbacks, mode?="full") | table, string? | int | Inicia uma observação própria {on_enter, on_leave} e devolve o ID da sua tarefa. |
Métodos do handle de vetor relativo
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
resolve() | — | table | Resolve o vetor para o contexto atual. |
Tabela de evento dos poderes do EliteMobs
Os valores de evento dos poderes de chefe do EliteMobs expõem campos e métodos de forma condicional, consoante o tipo de evento.
Propriedades
| Campo | Tipo | Descrição |
|---|---|---|
damage_amount | number/nil | Instantâneo do valor de dano do evento de dano. |
damage_cause | string/nil | Nome do DamageCause quando o evento de dano expõe um. |
damager | table/nil | Referência bruta à entidade causadora do dano; num acerto de projétil é o projétil, não quem o disparou. |
projectile | table/nil | Referência ao projétil quando o causador do dano é um projétil. |
spawn_reason | string/nil | Motivo de spawn do elite. |
entity | table/nil | Reforço atingido ou entidade de morte/zona, conforme o hook. |
is_damage_transfer | bool/nil | Apenas dano de jogador para elite: indica se o hook processa um acerto explicitamente transferido. |
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
cancel_event() | — | nil | Cancela um EliteDamageEvent ou outro evento cancelável. |
set_damage_amount(amount) | number | nil | Substitui o dano do EliteDamageEvent; exige context.event.set_damage_amount(...), com ponto. |
multiply_damage_amount(multiplier) | number | nil | Multiplica o dano do EliteDamageEvent; exige context.event.multiply_damage_amount(...), com ponto. |
get_damage_amount() | — | number | Devolve o dano atual do EliteDamageEvent após alterações. |
transfer_damage(target, amount) | entity reference, number | bool | Apenas dano de jogador para elite: submete dano finito não negativo para outro elite vivo permitido pelas regras de instância. Zero, entradas canceladas, transferências aninhadas e o alvo original devolvem false; um destinatário não elite é erro. True confirma submissão, não dano garantido. Não subtrai nem cancela o dano original. |
context.world: adições e substituições do EliteMobs
Os poderes de chefe herdam a tabela partilhada, incluindo os auxiliares EliteMobs de relâmpago visual e geração de NPCs, e acrescentam ou substituem os métodos abaixo. Métodos de coordenadas herdados mantêm o comportamento partilhado. Métodos de localização específicos usam o conversor do chefe: localizações ausentes ou não tabelas recorrem ao chefe, coordenadas omitidas usam zero e um mundo explicitamente indicado deve ser resolvido.
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
play_sound_at_location(location, sound, volume?=1, pitch?=1) | table, string (Sound), number?=1, number?=1 | nil | Substituição que aceita sons registados ou personalizados com namespace através do suporte do EliteMobs. |
spawn_particle_at_location(location, particle, count?=1) | table, string (Particle)/table, int?=1 | nil | Substituição que aceita uma tabela de especificação de partícula do EliteMobs. |
set_block_at_location(location, material, require_air?=false) | table, string (Material), bool?=false | nil | Substituição que coloca o bloco de forma permanente através do gestor de blocos temporários, sem temporizador nem registo. |
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false) | table, string (Material), int?=0, bool?=false | nil | Substituição que usa a colocação de blocos temporários do EliteMobs. |
get_block_type_at_location(location) | table | string/nil | Devolve um nome de Material em maiúsculas, ou nil para uma localização inválida. |
get_highest_block_y_at_location(location) | table | int/nil | Substituição que devolve o Y do bloco mais alto, ou nil. |
get_blast_resistance_at_location(location) | table | number | Devolve a resistência a explosões do bloco, com 0 por omissão para uma localização inválida. |
is_air_at_location(location) | table | bool | Testa se o bloco-alvo é ar. |
is_passable_at_location(location) | table | bool | Testa a passabilidade segundo o Bukkit. |
is_passthrough_at_location(location) | table | bool | Testa se o material não é sólido. |
is_on_floor_at_location(location) | table | bool | Testa se há um alvo não sólido com um bloco sólido por baixo. |
is_standing_on_material(location, material) | table, string (Material) | bool | Testa o bloco por baixo. |
strike_lightning_at_location(location) | table | nil | Substituição que ativa o bypass de relâmpago do EliteMobs antes de o invocar. |
run_empowered_lightning_task_at_location(location) | table | nil | Emite independentemente 60 iterações de aviso, depois um relâmpago real e uma bola de fogo descendente com potência 5. Causa dano; pausar ou fechar Lua não cancela a tarefa. |
set_world_time(time) / set_world_time(location, time) | int/table, int? | nil | Define o tempo do mundo do chefe ou o tempo do mundo da localização fornecida. |
set_world_weather(weather, duration?=6000) / set_world_weather(location, weather, duration?=6000) | string/table, string/int?, int?=6000 | nil | Define CLEAR, PRECIPITATION, RAIN ou THUNDER. |
run_console_command(command) | string | nil | Executa um comando como consola. |
spawn_boss_at_location(file, location?, level?) | string, table?, int? | table/nil | Gera um custom boss na localização fornecida ou atual e com o nível fornecido ou atual. |
spawn_custom_boss_at_location(file, location, options?) | string, table, table? | table/nil | Gera um custom boss; as opções suportam silent, level, add_as_reinforcement e velocity. |
spawn_entity_at_location(type, location, options?) | string (EntityType), table, table? | table/nil | Gera uma entidade vanilla; as opções suportam velocity, duration, effect de EntityEffect, on_land e max_ticks. |
spawn_falling_block_at_location(location, material, options?) | table, string (Material), table? | table/nil | Gera um bloco em queda; as opções suportam drop_item, hurt_entities, velocity e on_land. |
spawn_reinforcement_at_location(file, location, duration?=0, velocity?) | string, table, int?=0, table? | table/nil | Invoca um reforço associado ao chefe; uma duração positiva remove-o após esse número de ticks. |
spawn_fireworks_at_location(location, options) | table, table | table/nil | Gera um fogo de artifício; as opções suportam effects, type, flicker, trail, colors, fade_colors, power, velocity e shot_at_angle, com nomes de FireworkEffect.Type para type. |
spawn_splash_potion_at_location(location, options) | table, table | table/nil | Gera uma poção de arremesso; as entradas de effects aceitam type de PotionEffectType, duration, amplifier e overwrite, além de velocity ao nível superior. |
generate_fake_explosion(locations, source?) | table, table? | nil | Remove blocos reais e cria destroços que causam dano quando a regeneração de explosões está ativa. A restauração começa após 1200 ticks; fechar Lua não a desfaz. Use posições no mundo do boss. |
spawn_fake_gold_nugget_at_location(location, velocity, gravity?=false) | table, table, bool?=false | table/nil | Gera um projétil falso de pepita de ouro. |
run_fake_gold_nugget_damage(projectiles) | table | nil | Executa a passagem de dano dos projéteis falsos. |
generate_player_loot(times?=1) | int?=1 | nil | Gera loot de jogador para os atacantes elegíveis. |
drop_bonus_coins(multiplier?=2) | number?=2 | nil | Larga moedas bónus para os atacantes elegíveis. |
Tabela de projétil falso do EliteMobs
spawn_fake_gold_nugget_at_location devolve esta tabela quando a geração é bem-sucedida.
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
get_location() | — | table | Devolve a localização do projétil falso. |
set_gravity(enabled) | bool | nil | Define a gravidade do projétil falso. |
remove() | — | nil | Remove o projétil falso. |
is_removed() | — | bool | Testa se foi removido. |
context.settings
Os poderes de chefe do EliteMobs recebem esta tabela de definições a partir do mesmo construtor da tabela de mundo.
Métodos
| Método | Argumentos | Retorna | Descrição |
|---|---|---|---|
warning_visual_effects_enabled() | — | bool | Devolve a definição atual de efeitos visuais de aviso. |