Saltar para o conteúdo principal

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​

CampoTipoDescrição
uuidstringUUID da entidade.
entity_typestringTipo de entidade do Bukkit em minúsculas.
is_validboolValor de validade em tempo real.
is_deadboolEstado de morte em tempo real.
current_locationtable/nilLocalização {x, y, z, yaw, pitch, world} em tempo real.
worldstring/nilNome do mundo em tempo real.
is_playerboolSe a entidade é um jogador.
is_hostileboolSe a entidade implementa Monster do Bukkit.
is_passiveboolSe a entidade implementa Animals do Bukkit.
is_on_groundboolEstado de contacto com o solo em tempo real.
is_flyingboolEstado de voo do jogador em tempo real; false para outros tipos.
in_blockboolApenas setas: estado atual de inserção num bloco.
attachment_locationtable/nilCentro do bloco que contém a posição atual de uma seta presa; nil quando não está num bloco.
attachment_blocktable/nilCentro 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étodoArgumentosRetornaDescrição
teleport(location)tablenilTeletransporta para uma tabela de localização.
remove()—nilRemove a entidade se esta ainda for válida.
set_silent(enabled)boolnilDefine o estado silencioso.
set_invulnerable(enabled)boolnilDefine o estado de invulnerabilidade.
set_gravity(enabled)boolnilDefine o estado de gravidade.
set_glowing(enabled)boolnilDefine o estado de brilho.
set_velocity(x, y, z)number, number, numbernilSubstitui a velocidade; os componentes devem ser finitos.
set_fall_distance(distance)numbernilDefine uma distância de queda finita e não negativa.
set_shooter(uuid)stringboolApenas projéteis: atribui uma entidade resolvida que implemente ProjectileSource do Bukkit.
set_direction(x, y, z)number, number, numbernilApenas bolas de fogo: define uma direção de voo finita e não nula.
set_pickup(status)stringnilApenas setas: ALLOWED, DISALLOWED ou CREATIVE_ONLY.
can_receive_hostile_effect(actor_uuid)stringboolVerifica 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)tableboolVerifica 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)tablestringDevolve 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​

CampoTipoDescrição
is_eliteboolSe o EliteMobs acompanhava a entidade ao construir a tabela.
is_custom_bossboolSe o elite acompanhado é um custom boss.
is_significant_bossboolSe é um custom boss com um multiplicador de vida superior a 1.
elitetable/nilDados aninhados do EliteMobs, presentes apenas para um elite resolvido.
elite.levelintInstantâneo do nível do elite.
elite.namestring/nilInstantâneo do nome apresentado do elite.
elite.healthnumberVida em tempo real.
elite.max_healthnumberVida máxima em tempo real.
elite.is_custom_bossboolSe o elite é um custom boss.
elite.health_multipliernumberInstantâneo do multiplicador de vida configurado.
elite.damage_multipliernumberInstantâneo do multiplicador de dano configurado.
elite_playertable/nilTabela exclusiva de jogador, resolvida a pedido quando existem dados de jogador do EliteMobs.
elite_player.tiernumberNível de combate calculado a partir de XP de competências sem atualizar consultas de encantamentos.

Métodos​

MétodoArgumentosRetornaDescrição
elite.remove()—nilRemove 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​

CampoTipoDescrição
is_modeledboolSe o FreeMinecraftModels resolve uma entidade com modelo.
is_propboolSe a entidade é um prop do FreeMinecraftModels assente num armor stand.
modeltable/nilDados de modelo aninhados, presentes apenas para uma entidade com modelo.
model.model_idstring/nilIdentificador do blueprint do modelo.
model.is_dynamicboolSe a entidade com modelo é dinâmica.
is_opboolEstado de operador do servidor, apenas para jogadores.

Métodos​

MétodoArgumentosRetornaDescrição
model.play_animation(name, blend?=false, loop?=false)string, bool?=false, bool?=falseboolDevolve se a reprodução foi aceite, incluindo pedidos de ataque enfileirados ou suprimidos; um estado terminal de morte rejeita-a.
model.stop_animations()—nilLimpa a reprodução enfileirada e retoma idle quando disponível; preserva o estado terminal de morte.
model.remove()—nilRemove a entidade com modelo.
has_permission(node)stringboolVerificaçã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​

CampoTipoDescrição
healthnumberVida em tempo real.
maximum_healthnumberVida máxima em tempo real.
namestring/nilNome Bukkit da entidade em tempo real.
is_aliveboolInverso em tempo real do estado de morte do Bukkit.

Métodos​

MétodoArgumentosRetornaDescrição
damage(amount)numbernilAplica dano do Bukkit.
push(x, y, z)number, number, numbernilAdiciona imediatamente um vetor à velocidade atual.
set_facing(x, y, z)number, number, numbernilOrienta pelo vetor através de um teletransporte com direção alterada.
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilAdiciona um efeito de poção quando o tipo é resolvido.
remove_potion_effect(type)string (PotionEffectType)nilRemove um efeito de poção quando o tipo é resolvido.
get_scale()—numberDevolve a escala efetiva, incluindo modificadores, ou 1.0 quando indisponível.
set_scale(value)numbernilDefine o valor base da escala quando o servidor o suporta.
set_ai(enabled)boolnilAtiva ou desativa a IA da entidade viva.
set_owner(player_uuid)stringboolDomestica 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)stringboolTesta 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​

CampoTipoDescrição
game_modestringInstantâneo do modo de jogo do Bukkit em minúsculas.

Métodos​

MétodoArgumentosRetornaDescrição
send_message(text)stringnilEnvia texto processado pelo interpretador de cores do MagmaCore.
chat(text)stringnilFaz o jogador enviar chat Bukkit, incluindo executar como ele comandos iniciados por barra. Processa cores.
get_held_item()—table/nilDevolve 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?=1nilAgenda 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?=1boolTesta se o inventário contém a quantidade pedida.
get_target_entity(range?=50)number?=50table/nilTraç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()—tableDevolve a localização dos olhos.
get_look_direction()—tableDevolve uma direção unitária {x, y, z}.
send_block_change(x, y, z, material, ticks?=-1)int, int, int, string (Material), int?=-1boolAgenda 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, intboolAgenda a reposição do bloco real para este jogador.
sleep(x, y, z)number, number, numbernilAgenda 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()—nilAgenda o acordar do jogador quando este está a dormir.
show_boss_bar(text, color?=WHITE, progress, ticks?=-1)string, string (BarColor)?=WHITE, number, int?=-1nilSubstitui 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()—nilRemove a barra de chefe Lua ativa do jogador.
show_action_bar(text, ticks?=-1)string, int?=-1nilEnvia 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, intnilMostra 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​

CampoTipoDescrição
namestringInstantâneo do nome do mundo.

Métodos​

MétodoArgumentosRetornaDescrição
get_block_at(x, y, z)int, int, intstringDevolve 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)boolAgenda 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, intintDevolve 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?=0nilGera 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?=1nilReproduz um som registado ou uma chave de som de resource pack com namespace em minúsculas.
strike_lightning(x, y, z)number, number, numbernilInvoca um relâmpago.
get_time()—intDevolve o tempo do mundo em ticks.
set_time(ticks)intnilDefine o tempo do mundo.
get_nearby_entities(x, y, z, radius)number, number, number, numbertableDevolve tabelas Entity ou Living Entity próximas.
get_nearby_players(x, y, z, radius)number, number, number, numbertableDevolve tabelas Player próximas.
spawn_entity(type, x, y, z)string (EntityType), number, number, numbertable/nilGera 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/nilDevolve 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?=falseboolColoca 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?=1table/nilLarga 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?=1nilAgenda 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)tablenilInvoca 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?=1nilReproduz 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?=0nilGera através do mundo desta tabela; use uma localização do mesmo mundo.
get_block_at_location(location)tablestringDevolve 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)boolAgenda 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?=falseboolColoca um bloco temporário no mundo da tabela de localização.
get_highest_block_y_at_location(location)tableint/nilDevolve o Y do bloco mais alto, ou nil para uma localização inválida.
terrain_impact_at_location(location, options?)table, table?table/nilMostra 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/nilMostra o mesmo impacto visual nas coordenadas deste mundo.
impact.is_active()—boolVerifica se o impacto está ativo; impact.id é o seu identificador de texto.
impact.remove()—boolRemove um impacto ativo; false se já estiver inativo ou a remoção falhar.
get_entity(uuid)stringtable/nilResolve 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, intbool/nilDevolve a passabilidade, ou nil para chunks descarregados ou coordenadas fora dos limites de altura.
location_is_protected(location)tableboolConsulta os fornecedores de proteção registados; um mundo omitido usa este mundo.
spawn_dust(location, count, red, green, blue)table, int, int, int, intnilGera 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étodoArgumentosRetornaDescrição
lightning_effect_at_location(location)tablenilMostra um relâmpago sem dano normal, usando o bypass de relâmpagos do EliteMobs.
spawn_npc_at_location(file, location)string, tabletable/nilGera um NPC configurado e devolve um handle com remove(), ou nil se inválido.
spawn_boss_at_location(file, location, level)string, table, inttable/nilGera 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étodoArgumentosRetornaDescrição
start_elitemobs_transport(player, route_id)player, stringboolInicia 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?boolLarga 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?boolSorteia 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?boolLarga 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.

CampoTipoDescrição
location.xnumberCoordenada X devolvida por em.create_location.
location.ynumberCoordenada Y devolvida por em.create_location.
location.znumberCoordenada Z devolvida por em.create_location.
location.worldstring/nilNome do mundo quando fornecido a em.create_location.
location.yawnumber/nilYaw quando fornecido a em.create_location.
location.pitchnumber/nilPitch quando fornecido a em.create_location.
vector.xnumberComponente X devolvida por em.create_vector.
vector.ynumberComponente Y devolvida por em.create_vector.
vector.znumberComponente Z devolvida por em.create_vector.
zone.kindstringsphere, dome, cylinder, cuboid, cone, static_ray, rotating_ray ou translating_ray.
zone.radiusnumber/nilRaio de esfera, cúpula, cilindro ou cone.
zone.heightnumber/nilAltura do cilindro.
zone.xnumber/nilTamanho X do cuboide.
zone.ynumber/nilTamanho Y do cuboide.
zone.znumber/nilTamanho Z do cuboide.
zone.lengthnumber/nilComprimento do cone ou do raio.
zone.thicknessnumber/nilEspessura do raio estático.
zone.point_radiusnumber/nilRaio do ponto do raio rotativo ou de translação.
zone.animation_durationnumber/nilDuração da animação do raio rotativo ou de translação.
zone.origintable/nilLocalização definida por set_center ou set_origin.
zone.destinationtable/nilLocalização definida por set_destination.

Métodos​

MétodoArgumentosRetornaDescrição
em.create_location(x, y, z, world?, yaw?, pitch?)number, number, number, string?, number?, number?tableDevolve uma tabela de localização.
em.create_vector(x, y, z)number, number, numbertableDevolve uma tabela de vetor {x, y, z}.
location.add(dx?=0, dy?=0, dz?=0)number?=0, number?=0, number?=0tableSoma no local e devolve a mesma tabela de localização.
em.zone.create_sphere_zone(radius)numbertableDevolve uma definição de esfera com set_center(location).
em.zone.create_dome_zone(radius)numbertableDevolve uma definição de cúpula com set_center(location).
em.zone.create_cylinder_zone(radius, height)number, numbertableDevolve uma definição de cilindro com set_center(location).
em.zone.create_cuboid_zone(x, y, z)number, number, numbertableDevolve uma definição de cuboide com set_center(location).
em.zone.create_cone_zone(length, radius)number, numbertableDevolve uma definição de cone com set_origin(location) e set_destination(location).
em.zone.create_static_ray_zone(length, thickness)number, numbertableDevolve 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, numbertableDevolve 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, numbertableDevolve uma definição de raio de translação com setters de origem e destino.
zone.set_center(location)tabletableDefine o centro como zone.origin e devolve a mesma tabela de zona.
zone.set_origin(location)tabletableDefine a origem e devolve a mesma tabela de zona.
zone.set_destination(location)tabletableDefine o destino e devolve a mesma tabela de zona.
em.location.is_in_dungeon(location)tableboolTesta as regiões de dungeon registadas e os proprietários que reportam o tipo dungeon.
em.location.is_protected(location)tableboolTesta os adaptadores WorldGuard/GriefPrevention integrados e os proprietários de proteção registados por plugins.
em.location.owned_by(location, namespace)table, stringboolTesta a propriedade por um namespace de plugin.
em.location.owners(location)tabletableDevolve um array de strings de namespace de proprietários.
em.location.kinds_at(location)tabletableDevolve um array de strings com os tipos de propriedade.
em.location.has_kind(location, kind)table, stringboolTesta 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.

CampoTipoDescrição
tick, generationnumberTick atual do jogo e geração do runtime.
entitytableTabela partilhada de entidade viva do ator.
memory, perception, actuator, actionstableServiços abaixo, válidos para o callback atual.
MétodoArgumentosDevolveDescrição
memory.get(key)stringvalue/nilLê uma chave de memória declarada.
memory.set(key, value, ttl_ticks?)string, value, int?nilDefine uma memória declarada com o tipo configurado e um prazo de validade opcional.
memory.forget(key)stringnilRemove uma memória declarada.
memory.contains(key)stringboolVerifica se existe um valor de memória declarado.
perception.current_target()—table/nilDevolve o alvo atual como tabela partilhada de entidade viva.
perception.nearest_player(radius)numbertable/nilDevolve o jogador mais próximo dentro do alcance.
perception.can_see(entity_or_uuid)table/stringboolVerifica a linha de visão para uma entidade viva.
perception.navigation()—tableDevolve 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?=1boolSolicita 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()—nilPara a navegação.
actuator.look_at(location)tablenilOlha para uma posição.
actuator.jump()—nilSolicita um salto.
actuator.set_target(entity_or_uuid)table/stringboolDefine uma entidade viva como alvo; false se não for possível resolvê-la.
actuator.clear_target()—nilLimpa o alvo.
actuator.attack(entity_or_uuid)table/stringboolSolicita um ataque; false se não for possível resolver o alvo.
actuator.stop_all()—nilPara o movimento, o alvo e o ataque abrangidos pelos controlos que este comportamento detém.
actions.request(identifier, payload?)string, table?stringSolicita 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.

CampoTipoDescrição
ai.controls.move, look, jump, target, attack, use_item, actionstringNomes de controlos para o array controls de um comportamento; use_item não tem método de atuador em Lua.
MétodoArgumentosDevolveDescrição
ai.program(definition)tabletableMarca uma definição de programa com id, revision e, opcionalmente, modules, memories, sensors, behaviors, budget e runaway.
ai.module(definition)tabletableMarca uma definição de módulo com id, revision e, opcionalmente, dependencies, memories, sensors e behaviors.
ai.sensor(definition)tabletableMarca um sensor com id, interval?=1 e sense(c).
ai.behavior(definition)tabletableMarca 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.

CampoTipoDescrição
keystringIdentificador da ação semântica com namespace.
payloadtableCó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, generationnumberTick 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étodoArgumentosRetornaDescrição
info(message)stringnilRegista uma mensagem informativa com o prefixo Lua partilhado.
warn(message)stringnilRegista um aviso.
error(message)stringnilRegista através do canal de avisos partilhado.

Métodos dos poderes de chefe do EliteMobs​

MétodoArgumentosRetornaDescrição
info(message)stringnilRegista uma mensagem informativa de poder de chefe.
warn(message)stringnilRegista um aviso.
debug(message)stringnilRegista 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étodoArgumentosRetornaDescrição
run_later(ticks, callback)int, functionintCorre uma vez após o atraso e devolve o ID da tarefa Bukkit.
run_repeating(delay, interval, callback)int, int, functionintCorre repetidamente após um atraso inicial e devolve o ID da tarefa.
cancel(task_id)intnilCancela uma tarefa própria.
run_after(ticks, callback)int, functionintAlias de run_later.
run_every(interval, callback)int, functionintCorre repetidamente sem atraso inicial e devolve o ID da tarefa.
cancel_task(task_id)intnilAlias 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étodoArgumentosRetornaDescrição
local_ready(key?)string?boolTesta se o cooldown local com essa chave está pronto.
local_remaining(key?)string?intDevolve os ticks restantes, ou 0 quando está pronto.
check_local(key, duration)string/nil, intboolSe estiver pronto, inicia o cooldown e devolve true. Passe nil para usar a chave predefinida.
set_local(duration, key?)int, string?nilDefine ou limpa o cooldown local; uma duração não positiva limpa-o.
global_ready()—boolTesta se o cooldown global do proprietário está pronto.
set_global(duration)intnilDefine 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étodoArgumentosRetornaDescrição
create_sphere(x, y, z, radius)number, number, number, numberint/nilRegista 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, numberint/nilRegista 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, numberint/nilRegista 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/nilAtiva 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)intnilPara 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étodoTipoDescrição
is_cancelledboolEstado de cancelamento capturado ao resolver a subtabela de evento pela primeira vez; chamar cancel() ou uncancel() não o atualiza.
cancel()métodoCancela o evento atual. Presente apenas quando este implementa Cancellable do Bukkit.
uncancel()métodoAnula o cancelamento do evento atual. Presente apenas quando este implementa Cancellable do Bukkit.
playertableLiving 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étodoArgumentosRetornaDescrição
get_durability()—table/nilDurabilidade restante {current, max}; nil para itens indisponíveis ou sem durabilidade.
get_durability_percentage()—number/nilDurabilidade 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?boolAltera 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?boolAplica ceil(max_durability * fraction) de dano com a mesma política de quebra.
consume(amount)positive intboolConsome 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​

CampoTipoDescrição
model_idstring/nilNome do blueprint do modelo, ou nil quando não existe blueprint.
current_locationtable/nilLocalização do prop em tempo real.

Métodos​

MétodoArgumentosRetornaDescrição
play_animation(name, blend?=true, loop?=true)string, bool?=true, bool?=trueboolReproduz a animação com esse nome.
stop_animation()—nilLimpa a reprodução enfileirada e regressa a idle quando disponível; preserva o estado terminal de morte.
hurt_visual()—nilReproduz o efeito visual vermelho de dano sem causar dano.
pickup()—nilAgenda a remoção permanente e larga um item de colocação.
has_mount_points()—boolTesta se o prop tem ossos de ponto de montagem.
mount(player)tableboolAgenda a montagem de um jogador resolvido no primeiro assento disponível.
dismount(player)tableboolAgenda a desmontagem de um jogador resolvido deste prop.
get_passengers()—tableDevolve as Entity Tables dos jogadores montados.
spawn_elitemobs_boss(file, x, y, z)string, number, number, numbertable/nilGera um custom boss do EliteMobs quando o EliteMobs está ativo.
open_inventory(player, title, rows?=3)table, string, int?=3boolAgenda a abertura do armazenamento persistente com as linhas limitadas entre 1 e 6.
place_book(player)tableboolAgenda o armazenamento de um livro escrito ou por escrever que esteja na mão, quando o prop não tem nenhum.
read_book(player)tableboolAgenda a abertura de um livro escrito guardado.
take_book(player)tableboolAgenda a devolução do livro guardado ao jogador.
has_book()—boolTesta se o prop guarda um livro.
drop_inventory()—boolAgenda a limpeza do armazenamento persistente e larga os seus itens.
drop_book()—boolAgenda a limpeza e a largada do livro guardado.
is_viewing_inventory(player)tableboolTesta se o jogador está a ver o inventário acompanhado deste prop.
set_persistent_data(key, value)string, stringboolGuarda uma string sob a chave fmm_lua_ com âmbito do prop.
get_persistent_data(key)stringstring/nilDevolve 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​

CampoTipoDescrição
namestringNome apresentado do NPC configurado.
filenamestringNome do ficheiro de configuração do NPC.
uuidstringUUID do NPC em tempo de execução.
activation_radiusnumberRaio de ativação configurado.
current_locationtableInstantâneo da localização, presente apenas enquanto existir a entidade viva de suporte.
entity_typestringTipo de entidade do Bukkit em maiúsculas, presente apenas enquanto existir a entidade viva de suporte.

Métodos​

MétodoArgumentosRetornaDescrição
is_valid()—boolTesta se o NPC é válido.
remove()—nilRemove o NPC através do ciclo de vida que o gere.
get_location()—tableDevolve a localização atual do NPC, recorrendo à sua localização de spawn. A tabela inclui também um vetor direction.
get_eye_location()—tableDevolve a localização atual dos olhos, recorrendo à localização de spawn. A tabela inclui também um vetor direction.
get_activation_radius()—numberDevolve o raio de ativação configurado atualmente.
get_nearby_players(radius)numbertableDevolve 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)tablenilOrienta para um vetor ou posição no mesmo mundo; ignorado durante movimento ativo de patrulha.
say_greeting(player?)table/string?nilEnvia 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?nilEnvia o diálogo configurado com a mesma resolução de jogador.
say_farewell(player?)table/string?nilEnvia a despedida configurada com a mesma resolução de jogador.
play_model_animation(name)stringnilReproduz uma animação de modelo quando existe um modelo personalizado.
patrol_pause()—boolPausa a patrulha configurada.
patrol_resume()—boolRetoma a patrulha após uma espera ou caminhada de script.
walk_to(x, y, z)number, number, numberboolCaminha até um deslocamento da origem e retoma a patrulha.
hold(x, y, z)number, number, numberboolCaminha até um deslocamento e permanece ali.
teleport(x, y, z)number, number, numberboolTeleporta 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​

CampoTipoDescrição
x, y, znumberCoordenadas.
yaw, pitchnumberRotação.
worldstring/nilNome do mundo, quando a localização tem um mundo.
directiontableVetor unitário {x, y, z} da direção para onde olha.

Métodos​

MétodoArgumentosRetornaDescrição
add(dx?=0, dy?=0, dz?=0)number?=0, number?=0, number?=0tableSoma à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​

CampoTipoDescrição
namestringInstantâneo do nome da entidade.
uuidstringUUID da entidade.
entity_typestringInstantâneo do tipo de entidade do Bukkit em maiúsculas.
is_playerboolSempre false.
is_eliteboolSempre false.
is_mountboolFalse, exceto quando um chefe marca como true uma tabela de montada devolvida.
current_locationtableInstantâneo da localização.

Métodos​

MétodoArgumentosRetornaDescrição
is_valid()—boolTesta a validade em tempo real.
get_location()—tableDevolve a localização em tempo real.
get_velocity()—tableDevolve a velocidade em tempo real.
is_on_ground()—boolTesta o estado de contacto com o solo em tempo real.
teleport_to_location(location)tablenilTeletransporta quando a localização é resolvida.
set_velocity_vector(vector)tablenilDefine a velocidade quando o vetor é resolvido.
set_direction_vector(vector)tablenilDefine a direção de uma bola de fogo quando aplicável.
set_yield(amount)numbernilDefine a potência da bola de fogo quando aplicável.
set_gravity(enabled)boolnilDefine a gravidade.
detonate()—nilDetona quando a entidade é um fogo de artifício.
remove()—nilRemove a entidade.
unregister(reason?=OTHER)string?=OTHERnilCancela 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()—boolTesta se a entidade está a montar um veículo.
has_vehicle()—boolTesta se existe um veículo.
get_vehicle()—table/nilDevolve a referência do veículo atual.
set_vehicle(vehicle)tableboolFaz esta entidade montar o veículo resolvido.
leave_vehicle()—boolSai do veículo atual.
has_passengers()—boolTesta se existem passageiros.
get_passenger_count()—intDevolve o número de passageiros.
get_passengers()—tableDevolve as referências dos passageiros.
add_passenger(passenger)tableboolAdiciona o passageiro resolvido.
remove_passenger(passenger)tableboolRemove o passageiro resolvido.
eject_passengers()—boolEjeta 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​

CampoTipoDescrição
namestringInstantâneo do nome da entidade.
uuidstringUUID da entidade.
entity_typestringInstantâneo do tipo de entidade do Bukkit em maiúsculas.
is_playerboolSe a entidade é um jogador.
is_monsterboolSe a entidade implementa Monster do Bukkit.
is_eliteboolSe o EliteMobs acompanha a entidade.
is_mountboolSe o custom boss acompanhado é uma montada.
is_validboolInstantâneo da validade.
healthnumberInstantâneo da vida.
maximum_healthnumberInstantâneo da vida máxima.
current_locationtableInstantâneo da localização.

Métodos​

MétodoArgumentosRetornaDescrição
is_alive()—boolTesta a validade em tempo real e o estado de morte.
is_ai_enabled()—boolDevolve o estado da IA em tempo real.
is_frozen()—boolDevolve a definição de congelamento do custom boss do EliteMobs, ou false.
get_location()—tableDevolve a localização em tempo real.
get_eye_location()—tableDevolve a localização dos olhos em tempo real.
get_height()—numberDevolve a altura da entidade no Bukkit.
get_health()—numberDevolve a vida em tempo real.
get_maximum_health()—numberDevolve a vida máxima em tempo real.
get_velocity()—tableDevolve a velocidade em tempo real.
deal_damage(amount)numbernilAplica dano genérico do Bukkit.
deal_custom_damage(amount)numbernilSubmete 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)numbernilAplica dano do Bukkit atribuído ao chefe do poder.
restore_health(amount)numbernilCura 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?=1nilReproduz 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?=1nilAlias que reproduz na entidade. O segundo argumento pode em alternativa ser {volume, pitch}.
spawn_particle_at_self(particle, count?=1)string (Particle)/table, int?=1nilGera 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?=0nilGera uma partícula numa localização.
teleport_to_location(location)tablenilTeletransporta quando a localização é resolvida.
set_velocity_vector(vector)tablenilDefine a velocidade quando o vetor é resolvido.
set_gravity(enabled)boolnilDefine a gravidade.
is_on_ground()—boolTesta o estado de contacto com o solo em tempo real.
apply_push_vector(vector, additive?=false, delay?=1)table, bool?=false, int?=1nilAplica velocidade após um atraso, opcionalmente somando à velocidade atual.
set_custom_name(name)stringnilDefine um nome personalizado processado para cor.
reset_custom_name()—nilRepõe o nome do EliteMobs quando a entidade é acompanhada, caso contrário o nome do Bukkit.
set_custom_name_visible(visible)boolnilDefine a visibilidade do nome personalizado.
set_ai_enabled(enabled, duration?=0)bool, int?=0nilDefine 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?=0nilDefine 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)tablenilVira-se para um vetor ou para uma localização no mesmo mundo.
play_model_animation(name)stringnilReproduz uma animação de modelo personalizado quando disponível.
set_scale(scale, duration?=0)number, int?=0nilDefine a escala base como alteração própria; ticks positivos repõem o valor substituído.
set_invulnerable(enabled, duration?=0)bool, int?=0nilDefine a invulnerabilidade como alteração própria; ticks positivos repõem o valor substituído.
remove_elite()—nilRemove um elite acompanhado através do processo de remoção do EliteMobs.
is_healing()—boolTesta o estado de cura do elite acompanhado.
set_healing(enabled)boolniltrue 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?=0nilFaz um custom boss acompanhado navegar.
add_tag(tag, duration?=0)string, int?=0nilAdiciona uma tag e remove-a após ticks positivos.
remove_tag(tag)stringnilRemove uma tag.
has_tag(tag)stringboolTesta 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?=0nilSubstitui 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?boolTesta a caixa delimitadora da entidade contra a caixa pedida.
is_inside_vehicle()—boolTesta se a entidade está a montar um veículo.
has_vehicle()—boolTesta se existe um veículo.
get_vehicle()—table/nilDevolve a referência do veículo atual.
set_vehicle(vehicle)tableboolFaz esta entidade montar o veículo resolvido.
leave_vehicle()—boolSai do veículo atual.
has_passengers()—boolTesta se existem passageiros.
get_passenger_count()—intDevolve o número de passageiros.
get_passengers()—tableDevolve as referências dos passageiros.
add_passenger(passenger)tableboolAdiciona o passageiro resolvido.
remove_passenger(passenger)tableboolRemove o passageiro resolvido.
eject_passengers()—boolEjeta todos os passageiros.
apply_potion_effect(type, duration, amplifier?=0)string (PotionEffectType), int, int?=0nilResolve 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?nilDefine o equipamento; as opções suportam entradas unbreakable e enchantments com type e level.
damage_equipment(slot, amount)string, intintSolicita 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)intnilDefine ticks de fogo quando as regras de instância permitem.
add_visual_freeze_ticks(ticks?=1)int?=1nilAcrescenta 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?=falsenilColoca 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​

CampoTipoDescrição
game_modestringInstantâneo do modo de jogo do Bukkit em maiúsculas.

Métodos​

MétodoArgumentosRetornaDescrição
send_message(text)stringnilEnvia texto de chat processado para cor.
show_action_bar(text)stringnilEnvia 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?=10nilMostra um título processado para cor.
show_boss_bar(title, color?=WHITE, style?=SOLID, duration?=40)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilMostra uma barra de chefe e remove-a após ticks positivos.
run_command(command)stringnilExecuta 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​

CampoTipoDescrição
namestringInstantâneo do nome apresentado do elite ou do nome do ficheiro do script.
uuidstringUUID do elite.
healthnumberInstantâneo da vida do elite.
maximum_healthnumberInstantâneo da vida máxima do elite.
current_locationtableInstantâneo da localização do elite.
levelintInstantâneo do nível do elite.
damager_countintInstantâneo do número de atacantes.
is_in_combatboolInstantâneo do estado de combate.
existsboolInstantâneo da existência do elite.

Métodos​

MétodoArgumentosRetornaDescrição
is_alive()—boolTesta a entidade viva e o estado de existência no EliteMobs.
get_health()—numberDevolve a vida do elite em tempo real.
get_maximum_health()—numberDevolve a vida máxima do elite em tempo real.
get_location()—tableDevolve a localização do elite em tempo real.
restore_health(amount)numbernilCura através da entidade do EliteMobs.
add_tag(tag, duration?=0)string, int?=0nilAdiciona uma tag de elite e remove-a após ticks positivos.
remove_tag(tag)stringnilRemove uma tag de elite.
has_tag(tag)stringboolTesta uma tag de elite.
reset_custom_name()—nilRepõe o nome apresentado do elite.
play_sound_at_self(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilReproduz 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?=1nilAlias 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?=1nilGera uma partícula na localização do elite.
play_model_animation(name)stringnilReproduz 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?=0nilFaz um custom boss navegar.
get_damager_count()—intDevolve o número de atacantes em tempo real.
despawn()—nilRemove o elite com o motivo OTHER.
remove()—nilAlias de despawn().
patrol_pause()—boolPausa a patrulha configurada.
patrol_resume()—boolRetoma a patrulha após uma espera ou caminhada de script.
walk_to(x, y, z)number, number, numberboolCaminha até um deslocamento da origem e retoma a patrulha.
hold(x, y, z)number, number, numberboolCaminha até um deslocamento e permanece ali.
teleport(x, y, z)number, number, numberboolTeleporta para um deslocamento que processa entidades.
get_ender_dragon_phase()—string/nilDevolve o nome da EnderDragon.Phase, ou nil.
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilDefine uma fase válida do ender dragon.
has_mount()—boolTesta se o chefe tem um veículo de montada ativo.
get_mount()—table/nilDevolve a referência da montada marcada com is_mount = true.
set_mount(mount)tableboolFaz o chefe montar a entidade resolvida.
clear_mount()—boolSai do veículo atual.
dismount()—boolAlias de clear_mount().
start_tracking_fireball_system(speed?=0.5)number?=0.5nilNum 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)nilExecuta o tratamento de dano do Spirit Walk.
shield_wall_is_active()—boolTesta o estado do shield wall.
initialize_shield_wall(openingDirection?=1)int?=1nilInicializa 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, numberboolSubtrai 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()—nilPara 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, stringnilInicia 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?=20nilEnvia texto processado para cor aos jogadores dentro do alcance.
get_nearby_players(range)numbertableDevolve as tabelas de jogador dos poderes do EliteMobs que estejam próximas.
get_nearby_elites(radius)numbertableDevolve 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/nilDevolve o alvo atual do mob quando este é um jogador.
get_nearby_players_in_zone(zone)tabletableDevolve 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?=1nilAmostra 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?=1nilAmostra a orla da zona e gera partículas.
get_particles_from_self_toward_zone(zone, particle, speed?=0.1)table, string (Particle), number?=0.1tableConstró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), numbertableConstró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)tablenilGera um array de especificações de partículas direcionais.
summon_reinforcement(file, zone_or_location?, duration?=0)string, table?, int?=0table/nilInvoca 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/nilGera 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étodoArgumentosRetornaDescrição
current_target()—table/nilDevolve 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)numbertableDevolve as Player Tables dentro do raio a partir do chefe.
all_players_in_world()—tableDevolve 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étodoArgumentosRetornaDescrição
get_nearby_entities(radius, filter?="living")number, string?tableOs 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?tableDevolve entidades vivas cuja posição dos pés esteja na caixa, incluindo a fronteira.
get_all_entities(filter?="living")string?tableDevolve as entidades vivas correspondentes no mundo do chefe.
get_direct_target_entity()—table/nilDevolve o alvo direto fornecido pelo hook atual.
get_boss_spawn_location()—tableDevolve a localização de spawn original do chefe.

context.vectors: poderes de chefe do EliteMobs​

MétodoArgumentosRetornaDescrição
get_vector_between_locations(source, destination, options?)table, table, table?tableDevolve 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?=0tableDevolve o vetor rodado por pitch e yaw em graus.
normalize_vector(vector)tabletableDevolve 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étodoArgumentosRetornaDescrição
get_entities_in_zone(zone, options?)table, table?tableDevolve as entidades vivas correspondentes. As opções suportam filter e mode = "full" ou "border".
get_locations_in_zone(zone, options?)table, table?tableDevolve localizações amostradas. As opções suportam coverage e mode = "full" ou "border".
zone_contains(zone, location, mode?="full")table, table, string?boolTesta se a localização está na forma completa ou na orla.
watch_zone(zone, callbacks, options?)table, table, table?nilObserva 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étodoArgumentosRetornaDescrição
target(spec)tabletarget handleCria um handle de alvo.
zone(spec)tablezone handleCria um handle de zona.
relative_vector(spec, location?, zone?)table, table?, zone handle?vector handleCria 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?=1nilSubmete 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?=falsenilApó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 handlenilVira as entidades-alvo resolvidas ao longo do vetor.
spawn_particles(target, particles)target handle, table/stringnilGera 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étodoArgumentosRetornaDescrição
entities()—tableResolve e devolve Entity Tables.
locations()—tableResolve e devolve tabelas de localização.
first_entity()—table/nilDevolve a primeira entidade resolvida.
first_location()—table/nilDevolve a primeira localização resolvida.

Métodos do zone handle​

MétodoArgumentosRetornaDescrição
full_target(coverage?)number?target handleCria um handle de alvo para o interior da forma.
border_target(coverage?)number?target handleCria um handle de alvo para a orla.
full_locations(coverage?)number?tableResolve as localizações interiores amostradas.
border_locations(coverage?)number?tableResolve as localizações amostradas na orla.
full_entities()—tableResolve as entidades dentro da forma.
border_entities()—tableResolve as entidades na orla.
contains(location, mode?="full")table, string?boolTesta a pertença à forma completa ou à orla.
watch(callbacks, mode?="full")table, string?intInicia uma observação própria {on_enter, on_leave} e devolve o ID da sua tarefa.

Métodos do handle de vetor relativo​

MétodoArgumentosRetornaDescrição
resolve()—tableResolve 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​

CampoTipoDescrição
damage_amountnumber/nilInstantâneo do valor de dano do evento de dano.
damage_causestring/nilNome do DamageCause quando o evento de dano expõe um.
damagertable/nilReferência bruta à entidade causadora do dano; num acerto de projétil é o projétil, não quem o disparou.
projectiletable/nilReferência ao projétil quando o causador do dano é um projétil.
spawn_reasonstring/nilMotivo de spawn do elite.
entitytable/nilReforço atingido ou entidade de morte/zona, conforme o hook.
is_damage_transferbool/nilApenas dano de jogador para elite: indica se o hook processa um acerto explicitamente transferido.

Métodos​

MétodoArgumentosRetornaDescrição
cancel_event()—nilCancela um EliteDamageEvent ou outro evento cancelável.
set_damage_amount(amount)numbernilSubstitui o dano do EliteDamageEvent; exige context.event.set_damage_amount(...), com ponto.
multiply_damage_amount(multiplier)numbernilMultiplica o dano do EliteDamageEvent; exige context.event.multiply_damage_amount(...), com ponto.
get_damage_amount()—numberDevolve o dano atual do EliteDamageEvent após alterações.
transfer_damage(target, amount)entity reference, numberboolApenas 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étodoArgumentosRetornaDescrição
play_sound_at_location(location, sound, volume?=1, pitch?=1)table, string (Sound), number?=1, number?=1nilSubstituiçã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?=1nilSubstituiçã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?=falsenilSubstituiçã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?=falsenilSubstituição que usa a colocação de blocos temporários do EliteMobs.
get_block_type_at_location(location)tablestring/nilDevolve um nome de Material em maiúsculas, ou nil para uma localização inválida.
get_highest_block_y_at_location(location)tableint/nilSubstituição que devolve o Y do bloco mais alto, ou nil.
get_blast_resistance_at_location(location)tablenumberDevolve a resistência a explosões do bloco, com 0 por omissão para uma localização inválida.
is_air_at_location(location)tableboolTesta se o bloco-alvo é ar.
is_passable_at_location(location)tableboolTesta a passabilidade segundo o Bukkit.
is_passthrough_at_location(location)tableboolTesta se o material não é sólido.
is_on_floor_at_location(location)tableboolTesta se há um alvo não sólido com um bloco sólido por baixo.
is_standing_on_material(location, material)table, string (Material)boolTesta o bloco por baixo.
strike_lightning_at_location(location)tablenilSubstituição que ativa o bypass de relâmpago do EliteMobs antes de o invocar.
run_empowered_lightning_task_at_location(location)tablenilEmite 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?nilDefine 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?=6000nilDefine CLEAR, PRECIPITATION, RAIN ou THUNDER.
run_console_command(command)stringnilExecuta um comando como consola.
spawn_boss_at_location(file, location?, level?)string, table?, int?table/nilGera 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/nilGera 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/nilGera 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/nilGera 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/nilInvoca 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, tabletable/nilGera 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, tabletable/nilGera 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?nilRemove 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?=falsetable/nilGera um projétil falso de pepita de ouro.
run_fake_gold_nugget_damage(projectiles)tablenilExecuta a passagem de dano dos projéteis falsos.
generate_player_loot(times?=1)int?=1nilGera loot de jogador para os atacantes elegíveis.
drop_bonus_coins(multiplier?=2)number?=2nilLarga 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étodoArgumentosRetornaDescrição
get_location()—tableDevolve a localização do projétil falso.
set_gravity(enabled)boolnilDefine a gravidade do projétil falso.
remove()—nilRemove o projétil falso.
is_removed()—boolTesta 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étodoArgumentosRetornaDescrição
warning_visual_effects_enabled()—boolDevolve a definição atual de efeitos visuais de aviso.