Aller au contenu principal

Référence de l'API Lua

Cette référence décrit les constructeurs de tables et les contextes Lua de MagmaCore, FreeMinecraftModels et EliteMobs. Les tables partagées et celles des pouvoirs de boss EliteMobs ont des contrats différents ; utilisez la section correspondant à votre script.

La plupart des méthodes acceptent table.method(...) et table:method(...). Les fonctions globales em.create_*, em.zone.create_* et em.location.* exigent un point, comme les méthodes de modification des dégâts d'événement de boss indiquées plus bas. Les champs partagés indiqués comme actuels sont calculés à la demande : relisez-les pour actualiser leur valeur et évitez de leur affecter une valeur, car cela masque la consultation. Une position ou un autre instantané déjà conservé dans une variable Lua ne s'actualise pas seul.

Les méthodes qui traitent les couleurs utilisent la syntaxe partagée des codes couleur, notamment pour le chat, les titres, les barres, les noms personnalisés et les titres d'inventaire des props.

Table d'entité​

La table d'entité MagmaCore sert de base aux valeurs génériques d'entité ; les tables Living Entity, Player et Prop FreeMinecraftModels en héritent.

Propriétés​

ChampTypeDescription
uuidstringUUID de l'entité.
entity_typestringType d'entité Bukkit en minuscules.
is_validboolValidité en direct.
is_deadboolÉtat de mort en direct.
current_locationtable/nilPosition en direct {x, y, z, yaw, pitch, world}.
worldstring/nilNom du monde en direct.
is_playerboolIndique si l'entité est un joueur.
is_hostileboolIndique si l'entité implémente Monster de Bukkit.
is_passiveboolIndique si l'entité implémente Animals de Bukkit.
is_on_groundboolÉtat au sol actuel.
is_flyingboolÉtat de vol actuel du joueur ; false pour les autres types d'entité.
in_blockboolÉtat d'encastrement actuel, réservé aux flèches.
attachment_locationtable/nilCentre du bloc contenant la position actuelle d'une flèche encastrée ; nil si la flèche n'est pas dans un bloc.
attachment_blocktable/nilCentre du bloc réellement touché par une flèche appartenant à une action d'enchantement active. Renvoie nil sans impact encastré valide enregistré, ou après que la flèche s'est éloignée, a changé de monde ou que son action s'est terminée. Identifie le bloc touché ; ne fournit pas une destination de déplacement sans collision.

Méthodes​

MéthodeArgsRetourDescription
teleport(location)tablenilTéléporte vers une table de position.
remove()—nilSupprime l'entité si elle est encore valide.
set_silent(enabled)boolnilDéfinit l'état silencieux.
set_invulnerable(enabled)boolnilDéfinit l'état d'invulnérabilité.
set_gravity(enabled)boolnilDéfinit l'état de gravité.
set_glowing(enabled)boolnilDéfinit l'état de luminescence.
set_velocity(x, y, z)number, number, numbernilRemplace la vélocité ; les composantes doivent être finies.
set_fall_distance(distance)numbernilDéfinit une distance de chute finie et non négative.
set_shooter(uuid)stringboolMéthode réservée aux projectiles ; attribue une entité résolue implémentant ProjectileSource de Bukkit.
set_direction(x, y, z)number, number, numbernilMéthode réservée aux boules de feu ; définit une direction de vol finie et non nulle.
set_pickup(status)stringnilMéthode réservée aux flèches ; ALLOWED, DISALLOWED ou CREATIVE_ONLY.
can_receive_hostile_effect(actor_uuid)stringboolVérifie si la cible peut recevoir un effet hostile du joueur en ligne. Les fournisseurs peuvent appliquer leurs propres restrictions de combat.
has_clear_movement_path(location)tableboolVérifie avant une attraction dans le même monde les collisions, limites du monde et chunks chargés. Les entités autres que les joueurs refusent aussi les régions protégées. Ne déplace pas l'entité.
movement_path_status(location)tablestringRetourne clear, blocked, protected ou unavailable ; protected concerne les entités autres que les joueurs. Les vérifications de collision balaient prudemment la boîte englobante de l'entité.

Un trajet libre pour un joueur n'autorise ni l'entrée ni le combat. Le déplacement réel reste soumis aux listeners de mouvement, notamment aux restrictions d'entrée dans les régions ; la protection de construction seule n'empêche pas les joueurs de se déplacer.

Les positions des méthodes partagées exigent x, y et z. Si le monde est omis, celui de l'entité est utilisé ; un nom de monde non résolu conserve aussi ce monde de repli. Les requêtes distinctes em.location.* exigent un monde chargé et utilisent zéro pour les coordonnées omises. Ni la vérification du trajet ni can_receive_hostile_effect ne s'appliquent automatiquement aux appels directs de téléportation, vélocité ou dégâts.

can_receive_hostile_effect exige un joueur acteur valide et connecté, ainsi qu'une cible valide, vivante, du même monde et qui ne soit pas un joueur. Il refuse les porte-armures, les entités invulnérables, les entités marquées PNJ et les animaux apprivoisés. EliteMobs peut ajouter des restrictions d'autorisation de combat. Des UUID invalides peuvent provoquer des erreurs dans set_shooter et set_owner ; les noms invalides de l'enum de ramassage provoquent aussi des erreurs.

Table d'entité : enrichissement EliteMobs​

L'enrichisseur EliteMobs ajoute ces valeurs aux tables d'entité MagmaCore. Les indicateurs de suivi et la présence de elite sont déterminés à la construction ; seuls les champs indiqués comme actuels se rafraîchissent à la lecture. L'adaptateur EliteMobs facultatif de FreeMinecraftModels ajoute les informations d'élite, mais pas elite_player.

Propriétés​

ChampTypeDescription
is_eliteboolIndique si EliteMobs suivait l'entité lors de la construction de la table.
is_custom_bossboolIndique si l'élite suivie est un boss personnalisé.
is_significant_bossboolIndique s'il s'agit d'un boss personnalisé dont le multiplicateur de vie dépasse 1.
elitetable/nilDonnées EliteMobs imbriquées, présentes uniquement pour une élite résolue.
elite.levelintInstantané du niveau de l'élite.
elite.namestring/nilInstantané du nom d'affichage de l'élite.
elite.healthnumberVie en direct.
elite.max_healthnumberVie maximale en direct.
elite.is_custom_bossboolIndique si l'élite est un boss personnalisé.
elite.health_multipliernumberInstantané du multiplicateur de vie configuré.
elite.damage_multipliernumberInstantané du multiplicateur de dégâts configuré.
elite_playertable/nilTable réservée aux joueurs, résolue à la demande lorsque les données du joueur EliteMobs existent.
elite_player.tiernumberPalier de combat du joueur calculé à partir de l'XP de compétences sans actualiser les requêtes d'enchantements.

Méthodes​

MéthodeArgsRetourDescription
elite.remove()—nilSupprime l'élite via le pipeline de suppression d'EliteMobs.

Table d'entité : enrichissement FreeMinecraftModels​

L'enrichisseur FreeMinecraftModels ajoute ces instantanés ; model n'existe que si is_modeled vaut true à la construction. Les valeurs propres aux joueurs n'apparaissent que sur leurs tables. Les méthodes de modèle et de permissions consultent les objets sous-jacents lors de l'appel. Dans les scripts EliteMobs, l'adaptateur FreeMinecraftModels facultatif d'EliteMobs ajoute is_modeled, is_prop et model, mais pas is_op ni has_permission.

Propriétés​

ChampTypeDescription
is_modeledboolIndique si FreeMinecraftModels résout une entité modélisée.
is_propboolIndique si l'entité est un prop FreeMinecraftModels porté par un armor stand.
modeltable/nilDonnées de modèle imbriquées, présentes uniquement pour une entité modélisée.
model.model_idstring/nilIdentifiant du blueprint de modèle.
model.is_dynamicboolIndique si l'entité modélisée est dynamique.
is_opboolInstantané de l'état d'opérateur du serveur, réservé aux joueurs.

Méthodes​

MéthodeArgsRetourDescription
model.play_animation(name, blend?=false, loop?=false)string, bool?=false, bool?=falseboolRetourne si la lecture a été acceptée, y compris les demandes d'attaque mises en attente ou supprimées ; la mort terminale refuse la lecture.
model.stop_animations()—nilEfface les lectures en attente et revient à idle si disponible ; la mort terminale n'est pas affectée.
model.remove()—nilSupprime l'entité modélisée.
has_permission(node)stringboolVérification de permission réservée aux joueurs.

Table d'entité vivante​

La table d'entité vivante MagmaCore hérite de toutes les propriétés et méthodes de l'Entity Table.

Propriétés​

ChampTypeDescription
healthnumberVie en direct.
maximum_healthnumberVie maximale en direct.
namestring/nilNom d'entité Bukkit en direct.
is_aliveboolInverse en direct de l'état de mort de Bukkit.

Méthodes​

MéthodeArgsRetourDescription
damage(amount)numbernilInflige des dégâts Bukkit.
push(x, y, z)number, number, numbernilAjoute immédiatement un vecteur à la vélocité actuelle.
set_facing(x, y, z)number, number, numbernilTéléporte sur place avec l'orientation indiquée.
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilAjoute un effet de potion lorsque le type est résolu.
remove_potion_effect(type)string (PotionEffectType)nilRetire un effet de potion lorsque le type est résolu.
get_scale()—numberRenvoie l'échelle effective, modificateurs compris, ou 1.0 si l'attribut est indisponible.
set_scale(value)numbernilDéfinit la valeur de base de l'attribut d'échelle lorsque le serveur le prend en charge.
set_ai(enabled)boolnilActive ou désactive l'IA de l'entité vivante.
set_owner(player_uuid)stringboolApprivoise une entité apprivoisable pour un joueur en ligne ; apaise aussi les loups. False pour les entités non prises en charge ou les joueurs indisponibles.
has_potion_effect(type)stringboolVérifie un nom d'effet de potion Bukkit ; false si le nom n'est pas résolu.

Table de joueur​

La table de joueur MagmaCore hérite de toutes les propriétés et méthodes de la Living Entity Table.

Dans les scripts FMM, la table de joueur expose également is_holding_elitemobs_item(filename). Cette méthode vérifie l'étiquette de nom de fichier EliteMobs de l'objet en main principale, indépendamment de son nom affiché ou de sa traduction. Elle renvoie false si la main est vide, si l'objet diffère ou si l'intégration EliteMobs est indisponible. Incluez .yml dans le nom, par exemple player:is_holding_elitemobs_item("shroomwhispers_shears.yml").

Propriétés​

ChampTypeDescription
game_modestringInstantané du mode de jeu Bukkit en minuscules.

Méthodes​

MéthodeArgsRetourDescription
send_message(text)stringnilEnvoie un texte traité par l'analyseur de couleurs de MagmaCore.
chat(text)stringnilFait parler le joueur via Bukkit, y compris pour exécuter en son nom les commandes précédées d'une barre oblique. Le texte passe par l'analyseur de couleurs.
get_held_item()—table/nilRenvoie un instantané {type, amount, display_name} de l'objet en main principale, ou nil si elle est vide. type est en majuscules ; sans nom personnalisé, display_name utilise le nom du matériau.
consume_held_item(amount?=1)int?=1nilMet en attente la réduction de la pile présente en main principale à l'exécution ; ne retourne aucun résultat de paiement et ne conserve pas l'objet vérifié. Fournissez une quantité positive ; les valeurs négatives ne sont pas refusées.
has_item(material, amount?=1)string (Material), int?=1boolTeste si l'inventaire contient la quantité demandée.
get_target_entity(range?=50)number?=50table/nilTrace depuis les yeux contre les blocs et entités, sauf le joueur, avec une taille de rayon d'entité de 0.5 ; ignore les fluides et blocs traversables.
get_eye_location()—tableRenvoie la position des yeux.
get_look_direction()—tableRenvoie une direction unitaire {x, y, z}.
send_block_change(x, y, z, material, ticks?=-1)int, int, int, string (Material), int?=-1boolMet en file un bloc côté client et son éventuelle restauration après des ticks positifs ; les matériaux invalides ou non-blocs renvoient false. True signifie mis en file.
reset_block(x, y, z)int, int, intboolMet en file la restauration du bloc réel pour ce joueur.
sleep(x, y, z)number, number, numbernilMet en file un vrai lit blanc et tente de faire dormir le joueur ; au réveil ou à la déconnexion, restaure le BlockData d'origine. Le contenu des entités de bloc n'est pas restauré.
wake_up()—nilMet en file le réveil du joueur lorsqu'il dort.
show_boss_bar(text, color?=WHITE, progress, ticks?=-1)string, string (BarColor)?=WHITE, number, int?=-1nilRemplace la barre pleine active ; limite progress à 0..1, utilise le blanc si la couleur est invalide et peut masquer la barre après des ticks positifs. Passez nil pour la couleur afin de conserver progress en troisième position obligatoire.
hide_boss_bar()—nilRetire la barre de boss Lua active du joueur.
show_action_bar(text, ticks?=-1)string, int?=-1nilEnvoie une fois, ou répète tous les 40 ticks jusqu'à la fin d'une durée positive.
show_title(title, subtitle?="", fade_in, stay, fade_out)string, string?="", int, int, intnilAffiche un titre dont le titre et le sous-titre sont traités pour la couleur.

Les barres partagées appartiennent au joueur dans la copie de MagmaCore du plugin hôte. Elles ne sont pas isolées par script : un nouvel appel à show_boss_bar remplace la barre actuelle du joueur, et un nouvel appel à show_action_bar annule la barre d'action répétée en cours. Un temporisateur d'expiration ne retire que la barre ou la barre d'action qui l'a lancé : une ancienne expiration n'efface donc plus une barre plus récente. Ces temporisateurs et les changements de blocs en attente n'appartiennent pas à context.scheduler. Les changements et restaurations lisent le monde du joueur à l'exécution ; ne comptez pas sur eux pour restaurer le bloc voulu après un changement de monde. Le nettoyage du sommeil vérifie d'abord après 20 ticks, puis tous les 10 ticks.

Table de monde​

La table de monde MagmaCore est exposée sous context.world et capture son monde à la construction. Les pouvoirs de boss en héritent et appliquent les redéfinitions documentées plus bas. Les requêtes de proximité renvoient des tableaux indexés à partir de un et utilisent des boîtes alignées sur les axes, avec radius comme chaque demi-extension ; elles n'excluent pas le propriétaire du script et ne filtrent pas les modes de jeu.

Propriétés​

ChampTypeDescription
namestringInstantané du nom du monde.

Méthodes​

MéthodeArgsRetourDescription
get_block_at(x, y, z)int, int, intstringRenvoie un nom de Material en minuscules, ou air sans charger un chunk déchargé.
set_block_at(x, y, z, material)int, int, int, string (Material)boolMet en file le placement du bloc ; les matériaux invalides renvoient false et les chunks déchargés sont ignorés par la tâche mise en file.
get_highest_block_y(x, z)int, intintRenvoie le Y du bloc le plus haut.
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?=0nilFait apparaître une particule ; les noms invalides n'ont aucun effet.
play_sound(sound, x, y, z, volume?=1, pitch?=1)string (Sound), number, number, number, number?=1, number?=1nilJoue un son enregistré ou une clé de son de resource pack en minuscules avec espace de noms.
strike_lightning(x, y, z)number, number, numbernilFait tomber la foudre.
get_time()—intRenvoie l'heure du monde en ticks.
set_time(ticks)intnilDéfinit l'heure du monde.
get_nearby_entities(x, y, z, radius)number, number, number, numbertableRenvoie les tables Entity ou Living Entity proches.
get_nearby_players(x, y, z, radius)number, number, number, numbertableRenvoie les tables Player proches.
spawn_entity(type, x, y, z)string (EntityType), number, number, numbertable/nilFait apparaître une entité vanilla ; un nom d'enum inconnu renvoie nil, mais un type valide impossible à faire apparaître peut provoquer une erreur.
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)six nombres, number?, string?, bool?, bool?table/nilRetourne hit_entity, hit_location et hit_block ; les modes de fluide sont NEVER, SOURCE_ONLY, ALWAYS. Avec loaded_only, refuse les chunks non chargés dans le rectangle englobant le rayon et retourne nil.
place_temporary_block(x, y, z, material, ticks?=0, require_air?=false)int, int, int, string (Material), int?=0, bool?=falseboolPlace un bloc temporaire ; les matériaux invalides ou les chunks déchargés renvoient false.
drop_item(x, y, z, material, amount?=1)number, number, number, string (Material), int?=1table/nilFait tomber un item naturellement et renvoie son Entity Table ; les matériaux invalides renvoient nil.
spawn_firework(x, y, z, colors, type?=BALL, power?=1)number, number, number, table, string (FireworkEffect.Type)?=BALL, int?=1nilMet en file un feu d'artifice utilisant des noms de constantes Color de Bukkit, avec repli sur le blanc si aucune n'est résolue.
strike_lightning_at_location(location)tablenilFait tomber la foudre dans le monde de la table de position.
play_sound_at_location(location, sound, volume?=1, pitch?=1)table, string (Sound), number?=1, number?=1nilJoue un son enregistré ou une clé de son de resource pack en minuscules avec espace de noms.
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?=0nilFait apparaître via cette table de monde. Fournissez une position du même monde.
get_block_at_location(location)tablestringRenvoie un nom de matériau en minuscules, ou air pour une position invalide ou un chunk déchargé.
set_block_at_location(location, material)table, string (Material)boolMet en file le placement du bloc dans le monde de la table de position.
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false)table, string (Material), int?=0, bool?=falseboolPlace un bloc temporaire dans le monde de la table de position.
get_highest_block_y_at_location(location)tableint/nilRenvoie le Y du bloc le plus haut, ou nil pour une position invalide.
terrain_impact_at_location(location, options?)table, table?table/nilAffiche un impact visuel temporaire sur le terrain ; options : radius=4.5 (0.5–6), intensity=1 (0–1), duration_ticks=35 (1–200), view_range=48 (1–96), seed ; retourne un handle ou nil.
terrain_impact(x, y, z, options?)number, number, number, table?table/nilAffiche le même impact visuel aux coordonnées de ce monde.
impact.is_active()—boolVérifie si le handle d'impact est actif ; impact.id est son identifiant textuel.
impact.remove()—boolSupprime un impact actif ; false s'il est déjà inactif ou si la suppression échoue.
get_entity(uuid)stringtable/nilRésout une entité valide dans le registre des entités chargées de ce monde. Utilisez une chaîne UUID valide.
block_is_passable(x, y, z)int, int, intbool/nilRetourne si le bloc est traversable, ou nil pour les chunks non chargés ou les coordonnées hors des limites de hauteur.
location_is_protected(location)tableboolInterroge les fournisseurs de protection enregistrés ; utilise ce monde si le monde est omis.
spawn_dust(location, count, red, green, blue)table, int, int, int, intnilFait apparaître des particules DUST de taille fixe avec des composantes RVB de 0 à 255 et une dispersion de 0.1 par axe ; ignore les chunks non chargés. Utilisez une position dans ce monde.

Un raycast sans impact renvoie une table vide dont les champs d'impact valent nil. Un impact de bloc inclut hit_block = {x, y, z, material}, avec le matériau en minuscules. Le tracé combiné utilise une taille de rayon d'entité de 0.5 sans filtre d'entités. loaded_only=true vérifie tout le rectangle englobant et peut refuser le rayon même si le chunk non chargé n'est pas sur son trajet exact. Un nom de fluide invalide provoque une erreur.

Les noms de particules partagées sont convertis en majuscules avant recherche. Ces méthodes positionnelles n'ont pas d'argument de données : une particule qui en exige peut provoquer une erreur ; utilisez spawn_dust pour la poussière RVB partagée. Les requêtes du bloc le plus haut et les méthodes d'apparition ne vérifient pas généralement que les chunks sont chargés. Le placement de blocs ne vérifie pas automatiquement les protections de région. Un résultat true ne prouve pas la réussite d'une modification en attente ni d'une vérification require_air.

Les blocs temporaires à durée positive sauvegardent le BlockData d'origine et le restaurent à la fin du temporisateur, au déchargement du chunk ou du monde, ou à l'arrêt du plugin. La restauration n'a lieu que si l'emplacement contient toujours le bloc temporaire : une modification ultérieure n'est donc pas écrasée. Poser de nouveau un bloc temporaire sur un bloc qui en contient encore un relance son temporisateur et conserve l'original sauvegardé en premier. Les blocs dotés d'une entité de bloc, comme les coffres et les pancartes, les chunks déchargés et les blocs déjà détenus par un autre propriétaire de blocs temporaires sont ignorés. Casser un bloc temporaire ne lâche rien et met fin au suivi sans restauration ; poser un bloc à cet endroit met aussi fin au suivi. Une durée non positive place le bloc de façon permanente, sans suivi. Ces opérations ne constituent pas un système de restauration limité au script.

Ajouts de monde partagés d'EliteMobs​

EliteMobs enregistre ces fonctions sur ses tables de monde partagées, notamment pour les scripts de PNJ. Le chunk de destination doit être chargé. La signature partagée de spawn_boss_at_location exige une position et un niveau ; les pouvoirs de boss la remplacent par la forme à arguments facultatifs décrite plus bas.

MéthodeArgumentsRetourDescription
lightning_effect_at_location(location)tablenilAffiche la foudre sans ses dégâts normaux, avec le contournement d'apparition de foudre d'EliteMobs.
spawn_npc_at_location(file, location)string, tabletable/nilFait apparaître un PNJ configuré et renvoie un handle avec remove(), ou nil si l'apparition est invalide.
spawn_boss_at_location(file, location, level)string, table, inttable/nilFait apparaître un boss personnalisé configuré et renvoie une table partagée d'entité vivante, ou nil si indisponible.

context.world : ajouts FreeMinecraftModels​

FreeMinecraftModels enregistre ces méthodes sur sa propre table de monde MagmaCore ; elles apparaissent donc sur context.world dans les scripts de props FreeMinecraftModels. Chaque méthode retourne false si EliteMobs n'est pas activé ou si le joueur n'est pas résolu. Les méthodes de butin utilisent la position du joueur lorsque leur argument de position est absent ou inutilisable.

Méthodes​

MéthodeArgsRetourDescription
start_elitemobs_transport(player, route_id)player, stringboolLance un itinéraire de transport EliteMobs enregistré pour un joueur du même monde ; false si le joueur ou l'intégration est indisponible.
drop_elitemobs_procedural_loot(player, level, location?)table/string, int, table?boolFait tomber un item EliteMobs généré de façon procédurale pour le joueur ; renvoie false lorsque les butins d'items procéduraux sont désactivés.
drop_elitemobs_random_loot(player, level, location?)table/string, int, table?boolTire les tables de butin EliteMobs pour le joueur au niveau indiqué.
drop_elitemobs_custom_loot(player, file, level, location?)table/string, string, int, table?boolFait tomber un fichier d'item personnalisé EliteMobs précis pour le joueur ; renvoie false lorsque le fichier n'est pas résolu.

L'argument player accepte une table de joueur, une chaîne UUID ou un nom de joueur exact. L'argument location accepte une table de position ou une table d'entité portant current_location. Le butin procédural respecte le réglage EliteMobs de remise directe en inventaire, avec dépôt de l'excédent près du joueur ; il ne tombe donc pas toujours à la position demandée.

Table d'aide em​

MagmaCore expose cette table globalement avant tout hook. Ses constructeurs créent uniquement des données : ils n'enregistrent pas de surveillance, ne chargent pas de monde et ne valident pas une forme complète. Utilisez un point pour les fonctions globales. Les méthodes des positions et zones renvoyées acceptent aussi les deux-points, modifient leur table et renvoient cette même table. Les setters de zone conservent la table de position fournie par référence.

Propriétés​

Les constructeurs d'aide renvoient les tables de données compactes ci-dessous.

ChampTypeDescription
location.xnumberCoordonnée X renvoyée par em.create_location.
location.ynumberCoordonnée Y renvoyée par em.create_location.
location.znumberCoordonnée Z renvoyée par em.create_location.
location.worldstring/nilNom du monde lorsqu'il est fourni à em.create_location.
location.yawnumber/nilYaw lorsqu'il est fourni à em.create_location.
location.pitchnumber/nilPitch lorsqu'il est fourni à em.create_location.
vector.xnumberComposante X renvoyée par em.create_vector.
vector.ynumberComposante Y renvoyée par em.create_vector.
vector.znumberComposante Z renvoyée par em.create_vector.
zone.kindstringsphere, dome, cylinder, cuboid, cone, static_ray, rotating_ray ou translating_ray.
zone.radiusnumber/nilRayon de la sphère, du dôme, du cylindre ou du cône.
zone.heightnumber/nilHauteur du cylindre.
zone.xnumber/nilTaille X du cuboïde.
zone.ynumber/nilTaille Y du cuboïde.
zone.znumber/nilTaille Z du cuboïde.
zone.lengthnumber/nilLongueur du cône ou du rayon.
zone.thicknessnumber/nilÉpaisseur du rayon statique.
zone.point_radiusnumber/nilRayon de point du rayon rotatif ou translatif.
zone.animation_durationnumber/nilDurée d'animation du rayon rotatif ou translatif.
zone.origintable/nilPosition définie par set_center ou set_origin.
zone.destinationtable/nilPosition définie par set_destination.

Méthodes​

MéthodeArgsRetourDescription
em.create_location(x, y, z, world?, yaw?, pitch?)number, number, number, string?, number?, number?tableRenvoie une table de position.
em.create_vector(x, y, z)number, number, numbertableRenvoie une table de vecteur {x, y, z}.
location.add(dx?=0, dy?=0, dz?=0)number?=0, number?=0, number?=0tableAjoute sur place et renvoie la même table de position.
em.zone.create_sphere_zone(radius)numbertableRenvoie une définition de sphère dotée de set_center(location).
em.zone.create_dome_zone(radius)numbertableRenvoie une définition de dôme dotée de set_center(location).
em.zone.create_cylinder_zone(radius, height)number, numbertableRenvoie une définition de cylindre dotée de set_center(location).
em.zone.create_cuboid_zone(x, y, z)number, number, numbertableRenvoie une définition de cuboïde dotée de set_center(location).
em.zone.create_cone_zone(length, radius)number, numbertableRenvoie une définition de cône dotée de set_origin(location) et set_destination(location).
em.zone.create_static_ray_zone(length, thickness)number, numbertableRenvoie une définition de rayon statique dotée des setters d'origine et de destination.
em.zone.create_rotating_ray_zone(length, point_radius, animation_duration)number, number, numbertableRenvoie une définition de rayon rotatif dotée des setters d'origine et de destination.
em.zone.create_translating_ray_zone(length, point_radius, animation_duration)number, number, numbertableRenvoie une définition de rayon translatif dotée des setters d'origine et de destination.
zone.set_center(location)tabletableDéfinit le centre comme zone.origin et renvoie la même table de zone.
zone.set_origin(location)tabletableDéfinit l'origine et renvoie la même table de zone.
zone.set_destination(location)tabletableDéfinit la destination et renvoie la même table de zone.
em.location.is_in_dungeon(location)tableboolTeste les régions de donjon enregistrées et les propriétaires signalant le type dungeon.
em.location.is_protected(location)tableboolTeste les adaptateurs WorldGuard/GriefPrevention intégrés et les propriétaires de protection enregistrés par les plugins.
em.location.owned_by(location, namespace)table, stringboolTeste la propriété par un espace de noms de plugin.
em.location.owners(location)tabletableRenvoie un tableau de chaînes d'espaces de noms propriétaires.
em.location.kinds_at(location)tabletableRenvoie un tableau de chaînes de types de propriété.
em.location.has_kind(location, kind)table, stringboolTeste un type de propriété.

Pour em.location.*, world doit être un nom de monde chargé ou une table avec name ; il n'y a pas de repli sur le monde du propriétaire. Un monde absent ou non résolu renvoie false ou un tableau vide ; les coordonnées absentes valent zéro. Les espaces de noms de propriétaire sont sensibles à la casse, contrairement aux types. La propriété seule n'implique ni donjon ni protection. Les requêtes reflètent les fournisseurs enregistrés, pas tous les plugins de protection possibles ; un adaptateur de région enregistré qui échoue signale une protection. L'ordre des tableaux de propriétaires et de types n'est pas garanti.

Contexte d'un programme Mind​

Les callbacks natifs Mind utilisent ce contexte à la place du contexte habituel des pouvoirs ou des PNJ. Les programmes de comportement définis par fichier sont aussi chargés depuis plugins/EliteMobs/behaviors/ ; consultez la configuration du comportement des boss. Les intégrations EliteMobs enregistrent les définitions ai.program et ai.module via EliteMindService ; placer ces définitions dans le répertoire habituel powers n'enregistre pas de programme Mind.

ChampTypeDescription
tick, generationnumberTick actuel du jeu et génération du runtime.
entitytableTable partagée d'entité vivante de l'acteur.
memory, perception, actuator, actionstableServices ci-dessous, valables pour le callback courant.
MéthodeArgumentsRenvoieDescription
memory.get(key)stringvalue/nilLit une clé de mémoire déclarée.
memory.set(key, value, ttl_ticks?)string, value, int?nilDéfinit une mémoire déclarée selon son type configuré, avec une expiration facultative.
memory.forget(key)stringnilSupprime une mémoire déclarée.
memory.contains(key)stringboolVérifie la présence d'une valeur de mémoire déclarée.
perception.current_target()—table/nilRenvoie la cible actuelle sous forme de table partagée d'entité vivante.
perception.nearest_player(radius)numbertable/nilRenvoie le joueur le plus proche à portée.
perception.can_see(entity_or_uuid)table/stringboolVérifie la ligne de vue vers une entité vivante.
perception.navigation()—tableRenvoie destination_active, navigation_in_progress, consecutive_stuck_ticks, éventuellement destination et last_progress contenant tick et position.
actuator.move_to(location, speed?=1)table, number?=1boolDemande un déplacement vers une position du même monde, avec une vitesse finie et positive ; false si la recherche de chemin n'a pas démarré.
actuator.stop_moving()—nilArrête la navigation.
actuator.look_at(location)tablenilRegarde vers une position.
actuator.jump()—nilDemande un saut.
actuator.set_target(entity_or_uuid)table/stringboolDéfinit une cible vivante ; false si elle ne peut pas être résolue.
actuator.clear_target()—nilEfface la cible.
actuator.attack(entity_or_uuid)table/stringboolDemande une attaque ; false si la cible ne peut pas être résolue.
actuator.stop_all()—nilArrête le déplacement, la cible et l'attaque couverts par les contrôles que détient ce comportement.
actions.request(identifier, payload?)string, table?stringDemande une action sémantique et renvoie son résultat en minuscules ; les données acceptent les scalaires, les tables d'UUID d'entité et les tables de position world/x/y/z.

Chaque callback construit les sections de service au premier accès et les réutilise pendant ce callback. Les clés de mémoire doivent être déclarées ; une clé non déclarée provoque une erreur. Un retour positif de actuator.set_target ou actuator.attack signifie qu'une cible vivante a été résolue et la demande transmise, pas qu'un déplacement ou une attaque s'est achevé. Les données d'action acceptent les valeurs scalaires ou d'entité/position prévues, pas des tables Lua imbriquées arbitraires. Les identifiants d'action doivent être des clés en minuscules avec espace de noms, de 128 caractères au maximum ; les données contiennent au maximum 16 entrées, avec des clés en minuscules de 64 caractères au maximum, et les valeurs de type chaîne sont limitées à 256 caractères. Toutes les méthodes de l'actionneur sauf stop_all, ainsi que actions.request, lèvent une erreur si le comportement appelant ne détient pas le contrôle correspondant. Les capteurs ne peuvent utiliser ni l'actionneur ni les actions. Les programmes de comportement écrits en Lua sont décrits dans Programmes de comportement.

Global ai​

MagmaCore installe ce global dans chaque environnement Lua. Les constructeurs se contentent de marquer la table qu'ils reçoivent ; EliteMobs compile les tables marquées à partir des fichiers de programmes de comportement.

ChampTypeDescription
ai.controls.move, look, jump, target, attack, use_item, actionstringNoms des contrôles pour le tableau controls d'un comportement ; use_item n'a pas de méthode d'actionneur Lua.
MéthodeArgumentsRenvoieDescription
ai.program(definition)tabletableMarque une définition de programme avec id, revision et, facultativement, modules, memories, sensors, behaviors, budget et runaway.
ai.module(definition)tabletableMarque une définition de module avec id, revision et, facultativement, dependencies, memories, sensors et behaviors.
ai.sensor(definition)tabletableMarque un capteur avec id, interval?=1 et sense(c).
ai.behavior(definition)tabletableMarque un comportement avec id, priority?=0, controls, can_start, can_continue, start, tick et stop(c, reason).

context.mind_action : hook de pouvoir EliteMobs​

Disponible pendant on_mind_action(context). Le hook renvoie "accepted", "deferred" ou "rejected" ; les pouvoirs associés sont parcourus dans leur ordre d'association jusqu'à ce que l'un accepte.

ChampTypeDescription
keystringIdentifiant d'action sémantique avec espace de noms.
payloadtableCopie Lua des données d'action ; la modifier ne change pas la demande originale. Les UUID sont des chaînes et les positions des tables {world, x, y, z}.
game_tick, generationnumberTick de l'action et génération du runtime.

context.state​

Chaque instance de script MagmaCore reçoit une table Lua simple qui persiste pendant toute la durée de vie de cette instance. Utilisez-la pour les compteurs, les drapeaux, les identifiants de tâche et les valeurs partagées entre hooks.

context.state.counter = (context.state.counter or 0) + 1

context.log​

Méthodes MagmaCore, FreeMinecraftModels et PNJ EliteMobs​

MéthodeArgsRetourDescription
info(message)stringnilJournalise un message d'information avec le préfixe Lua partagé.
warn(message)stringnilJournalise un avertissement.
error(message)stringnilJournalise via le canal d'avertissement partagé.

Méthodes des pouvoirs de boss EliteMobs​

MéthodeArgsRetourDescription
info(message)stringnilJournalise un message d'information de pouvoir de boss.
warn(message)stringnilJournalise un avertissement.
debug(message)stringnilJournalise un message d'information avec le préfixe de débogage des pouvoirs Lua.

context.scheduler​

Les tâches planifiées appartiennent à l'instance de script et sont annulées à son arrêt. Les deux familles de noms ci-dessous sont disponibles sur les surfaces MagmaCore partagées et sur les pouvoirs de boss EliteMobs.

Les callbacks reçoivent un nouveau contexte, normalement sans event ni player déclencheur. Capturez les valeurs ou UUID nécessaires avant de planifier, puis résolvez l'entité actuelle. Conserver le contexte original ne conserve pas sûrement son événement résolu à la demande. Pendant une pause, les tâches uniques arrivées à échéance attendent et les tâches répétées sautent des exécutions sans les rattraper. Une erreur de callback ferme le script. L'arrêt annule les tâches et surveillances propres au script ; il n'annule pas les modifications arbitraires d'entités ou de monde ni tous les temporisateurs indépendants des fonctions auxiliaires.

MéthodeArgsRetourDescription
run_later(ticks, callback)int, functionintExécute une fois après le délai et renvoie l'identifiant de tâche Bukkit.
run_repeating(delay, interval, callback)int, int, functionintExécute de façon répétée après un délai initial et renvoie l'identifiant de tâche.
cancel(task_id)intnilAnnule une tâche possédée.
run_after(ticks, callback)int, functionintAlias de run_later.
run_every(interval, callback)int, functionintExécute de façon répétée sans délai initial et renvoie l'identifiant de tâche.
cancel_task(task_id)intnilAlias de cancel.

context.cooldowns​

Une clé locale omise utilise __lua: suivi du nom de fichier du script. Les clés explicites sont utilisées telles quelles. Les magasins locaux MagmaCore appartiennent à l'adaptateur propriétaire du script : FMM crée un adaptateur par script de prop, tandis que tous les scripts d'un PNJ EliteMobs partagent le même adaptateur et peuvent employer la même clé locale explicite. Les recharges globales FMM sont partagées par les scripts du même prop ; celles des PNJ sont partagées sur l'adaptateur du PNJ.

Les pouvoirs de boss utilisent le magasin partagé du boss pour les clés locales et sa recharge de pouvoir intégrée pour l'état global. Les temporisateurs locaux et les globaux partagés MagmaCore mesurent le temps réel à 50 ms par tick, pauses et faibles TPS compris. Les recharges globales de boss comptent les ticks du serveur et conservent l'expiration la plus tardive : un set_global plus court n'écourte jamais une recharge globale active, et une durée non positive n'a aucun effet. Vérifier ou définir une recharge locale ne vérifie ni ne définit automatiquement la globale.

MéthodeArgsRetourDescription
local_ready(key?)string?boolTeste si le temps de recharge local indexé est prêt.
local_remaining(key?)string?intRenvoie les ticks restants, ou 0 lorsqu'il est prêt.
check_local(key, duration)string/nil, intboolS'il est prêt, démarre le temps de recharge et renvoie true. Passez nil pour la clé par défaut.
set_local(duration, key?)int, string?nilDéfinit ou efface le temps de recharge local ; une durée non positive l'efface.
global_ready()—boolTeste si le temps de recharge global du propriétaire est prêt.
set_global(duration)intnilDéfinit le temps de recharge global en ticks. Sur les surfaces MagmaCore partagées, une durée non positive l'efface.

context.zones : interface MagmaCore partagée​

Les scripts FreeMinecraftModels, les scripts de PNJ EliteMobs et les autres consommateurs MagmaCore par défaut reçoivent des handles de zone entiers dans le monde du propriétaire de script actuel.

MéthodeArgsRetourDescription
create_sphere(x, y, z, radius)number, number, number, numberint/nilEnregistre une sphère et renvoie son handle, ou nil lorsque le propriétaire n'a pas de monde.
create_cylinder(x, y, z, radius, height)number, number, number, number, numberint/nilEnregistre un cylindre et renvoie son handle, ou nil lorsque le propriétaire n'a pas de monde.
create_cuboid(x, y, z, x_size, y_size, z_size)number, number, number, number, number, numberint/nilEnregistre un cuboïde et renvoie son handle, ou nil lorsque le propriétaire n'a pas de monde.
watch(handle, on_enter?, on_leave?)int, function?, function?bool/nilActive le suivi des franchissements pour un handle connu. La présence d'une fonction active le hook on_zone_enter ou on_zone_leave correspondant ; le corps de la fonction fournie n'est pas appelé directement.
unwatch(handle)intnilArrête le suivi et supprime le handle.

Les surveillances génériques testent les points de position des joueurs. Dans ce traitement, les dimensions des cuboïdes sont des demi-extensions ; un Z nul est remplacé par un X non nul. Cela ne définit pas le même volume que les requêtes de chevauchement d'entités ou de positions échantillonnées d'EliteMobs. Les zones conservent leurs coordonnées et monde de création, tandis que chaque tick examine les joueurs du monde actuel du propriétaire. Les hooks de zone génériques exposent le joueur qui franchit la limite via context.player et context.event.player.

La création commence immédiatement le suivi d'appartenance, avant que watch installe les déclencheurs de hooks. Installer la surveillance plus tard n'émet pas d'entrée pour un joueur déjà suivi à l'intérieur. Omettre un callback lors d'un second watch ne retire pas un déclencheur déjà installé. Les déconnexions et unwatch ne garantissent pas de hook de sortie. Les zones sont vérifiées avant on_game_tick.

context.event : interface MagmaCore partagée​

Cette table existe tant qu'un hook partagé dispose d'un événement Bukkit courant ou d'un acteur. Elle est absente des callbacks planifiés et des hooks dépourvus de l'une et l'autre valeur.

Champ ou méthodeTypeDescription
is_cancelledboolÉtat d'annulation capturé à la première résolution de la sous-table d'événement ; appeler cancel() ou uncancel() ne rafraîchit pas ce champ.
cancel()méthodeAnnule l'événement courant. Présente uniquement lorsqu'il implémente Cancellable de Bukkit.
uncancel()méthodeDésannule l'événement courant. Présente uniquement lorsqu'il implémente Cancellable de Bukkit.
playertableLiving Entity Table de l'acteur courant lorsqu'il y en a un.

Les hooks de zone génériques fournissent un acteur mais aucun événement Bukkit annulable : ils exposent donc is_cancelled = false et player sans cancel() ni uncancel().

context.item​

Les scripts d'action d'enchantement exposent cette table lorsque leur source capturée possède un emplacement d'inventaire et un objet. Elle vise cet emplacement exact et compare le matériau et les métadonnées de l'objet actuel à l'instantané, en ignorant les dégâts et la quantité de la pile. Elle ne recherche pas dans l'inventaire du joueur et ne suit pas une identité unique d'objet : un remplacement équivalent dans l'emplacement capturé correspond aussi. Elle peut être nil pour les munitions consommées. Cela se distingue de l'ancien moteur d'objets équipés FreeMinecraftModels.

MéthodeArgumentsRetourDescription
get_durability()—table/nilDurabilité restante {current, max} ; nil pour les objets indisponibles ou sans usure.
get_durability_percentage()—number/nilDurabilité restante divisée par le maximum du matériau ; normalement 0..1, mais des métadonnées excessivement endommagées par ailleurs peuvent sortir de cet intervalle.
use_durability(amount, can_break?=false)int, bool?boolModifie les dégâts ; les valeurs négatives réparent. Conserve par défaut au moins un point de durabilité ; can_break=true peut consommer la pile.
use_durability_percentage(fraction, can_break?=false)number, bool?boolApplique ceil(max_durability * fraction) dégâts avec la même règle de casse.
consume(amount)entier positifboolConsomme dans la pile capturée uniquement si elle contient assez d'objets.

La durabilité utilise le maximum du matériau, pas un composant personnalisé de dégâts maximaux. Ces modifications directes n'appliquent ni les calculs d'usure vanilla, ni Solidité, ni les vérifications d'objet incassable, ni les événements d'usure d'objet du joueur. Les pourcentages exigent des valeurs finies et un résultat dans l'intervalle des entiers ; les fractions négatives réparent. La casse consomme toute la pile capturée. Pour le cycle de vie des actions et le contexte complet, consultez les enchantements personnalisés.

context.prop​

Les scripts de prop FreeMinecraftModels reçoivent cette table, qui hérite de l'Entity Table MagmaCore lorsqu'une entité porteuse existe.

Propriétés​

ChampTypeDescription
model_idstring/nilNom du blueprint de modèle, ou nil lorsqu'aucun blueprint n'existe.
current_locationtable/nilPosition du prop en direct.

Méthodes​

MéthodeArgsRetourDescription
play_animation(name, blend?=true, loop?=true)string, bool?=true, bool?=trueboolJoue l'animation nommée.
stop_animation()—nilEfface les lectures en attente et revient à idle si disponible ; l'état de mort terminale n'est pas affecté.
hurt_visual()—nilJoue l'effet visuel rouge de blessure sans infliger de dégâts.
pickup()—nilMet en file la suppression définitive et fait tomber un item de placement.
has_mount_points()—boolTeste si le prop possède des os de points de monture.
mount(player)tableboolMet en file l'installation d'un joueur résolu sur le premier siège disponible.
dismount(player)tableboolMet en file la descente d'un joueur résolu de ce prop.
get_passengers()—tableRenvoie les Entity Tables des joueurs installés.
spawn_elitemobs_boss(file, x, y, z)string, number, number, numbertable/nilFait apparaître un boss personnalisé EliteMobs lorsque EliteMobs est activé.
open_inventory(player, title, rows?=3)table, string, int?=3boolMet en file l'ouverture du stockage persistant, le nombre de lignes étant plafonné entre 1 et 6.
place_book(player)tableboolMet en file le rangement d'un livre écrit ou vierge tenu en main lorsque le prop n'en contient aucun.
read_book(player)tableboolMet en file l'ouverture d'un livre écrit rangé.
take_book(player)tableboolMet en file la restitution du livre rangé au joueur.
has_book()—boolTeste si le prop contient un livre.
drop_inventory()—boolMet en file le vidage du stockage persistant et fait tomber son contenu.
drop_book()—boolMet en file le vidage et la chute du livre rangé.
is_viewing_inventory(player)tableboolTeste si le joueur consulte l'inventaire suivi de ce prop.
set_persistent_data(key, value)string, stringboolStocke une chaîne sous la clé fmm_lua_ propre au prop.
get_persistent_data(key)stringstring/nilRenvoie la chaîne stockée, ou nil.

Pour les opérations de prop mises en attente, true signifie que les vérifications initiales du joueur et de l'entité porteuse ont réussi, pas qu'un siège était libre, qu'un livre a été rangé ou qu'une interface s'est ouverte. take_book supprime le stockage avant d'insérer le livre et ne dépose pas le surplus d'inventaire. Tous les spectateurs d'un même prop partagent un seul inventaire actif, enregistré lorsque le dernier spectateur le ferme ; tant qu'il est ouvert, les appels suivants réutilisent son titre et sa taille. Un contenu stocké plus grand que le nombre de lignes demandé s'ouvre à sa taille stockée : aucun emplacement n'est perdu. Les données du prop sont stockées sur son porte-armure ; un nouvel objet de placement ne garantit pas leur conservation lors du ramassage.

Dans on_projectile_hit, les scripts de props reçoivent aussi context.projectile, une Table d'entité partagée pour le projectile. Le hook ne se déclenche pas si un autre plugin a déjà annulé l'impact. context.event enveloppe l'événement d'impact annulable de FreeMinecraftModels, et context.event.player est le tireur lorsqu'il s'agit d'une entité vivante, mobs compris ; context.player n'est défini que si c'est un joueur qui a tiré le projectile.

context.npc​

Les scripts de PNJ EliteMobs héritent des contextes MagmaCore partagés et ajoutent cette table spécifique aux PNJ.

Propriétés​

ChampTypeDescription
namestringNom d'affichage configuré du PNJ.
filenamestringNom du fichier de configuration du PNJ.
uuidstringUUID du PNJ à l'exécution.
activation_radiusnumberRayon d'activation configuré.
current_locationtableInstantané de la position, présent uniquement tant que l'entité vivante porteuse existe.
entity_typestringType d'entité Bukkit en majuscules, présent uniquement tant que l'entité vivante porteuse existe.

Méthodes​

MéthodeArgsRetourDescription
is_valid()—boolTeste si le PNJ est valide.
remove()—nilSupprime le PNJ via le cycle de vie qui le gère.
get_location()—tableRenvoie la position actuelle du PNJ, avec repli sur sa position d'apparition. La table inclut également un vecteur direction.
get_eye_location()—tableRenvoie la position actuelle des yeux, avec repli sur la position d'apparition. La table inclut également un vecteur direction.
get_activation_radius()—numberRenvoie le rayon d'activation configuré actuel.
get_nearby_players(radius)numbertableRenvoie les tables des joueurs du même monde dans un rayon 3D autour des pieds du PNJ, sans filtre de mode de jeu.
face_direction_or_location(target)tablenilOriente selon un vecteur ou vers une position du même monde ; ignoré pendant un déplacement actif de patrouille.
say_greeting(player?)table/string?nilEnvoie le message d'accueil configuré, par défaut au joueur déclencheur lorsqu'il est disponible. Une table de joueur, un UUID ou un nom sont acceptés.
say_dialog(player?)table/string?nilEnvoie le dialogue configuré avec la même résolution de joueur.
say_farewell(player?)table/string?nilEnvoie le message d'adieu configuré avec la même résolution de joueur.
play_model_animation(name)stringnilJoue une animation de modèle lorsqu'un modèle personnalisé existe.
patrol_pause()—boolMet en pause la patrouille configurée.
patrol_resume()—boolReprend la patrouille après une attente ou un déplacement de script.
walk_to(x, y, z)number, number, numberboolMarche jusqu'à un décalage de l'origine puis reprend la patrouille.
hold(x, y, z)number, number, numberboolMarche jusqu'à un décalage et y reste.
teleport(x, y, z)number, number, numberboolSe téléporte vers un décalage où les entités sont traitées.

Table de position des pouvoirs EliteMobs​

Les tables des pouvoirs de boss EliteMobs renvoient cette forme de position depuis get_location(), get_eye_location(), current_location et les autres résultats de position. Une position absente renvoie une table vide.

Propriétés​

ChampTypeDescription
x, y, znumberCoordonnées.
yaw, pitchnumberRotation.
worldstring/nilNom du monde lorsque la position en possède un.
directiontableVecteur d'orientation unitaire {x, y, z}.

Méthodes​

MéthodeArgumentsRenvoieDescription
add(dx?=0, dy?=0, dz?=0)number?=0, number?=0, number?=0tableAjoute aux coordonnées sur place et renvoie la même table ; direction n'est pas mis à jour.

Table de référence d'entité des pouvoirs EliteMobs​

Les méthodes de pouvoir de boss EliteMobs renvoient cette table allégée pour les entités non vivantes telles que les projectiles, les feux d'artifice et les blocs qui tombent.

Propriétés​

ChampTypeDescription
namestringInstantané du nom de l'entité.
uuidstringUUID de l'entité.
entity_typestringInstantané du type d'entité Bukkit en majuscules.
is_playerboolToujours false.
is_eliteboolToujours false.
is_mountboolFalse sauf si un boss marque une table de monture renvoyée comme true.
current_locationtableInstantané de la position.

Méthodes​

MéthodeArgsRetourDescription
is_valid()—boolTeste la validité en direct.
get_location()—tableRenvoie la position en direct.
get_velocity()—tableRenvoie la vélocité en direct.
is_on_ground()—boolTeste l'état au sol en direct.
teleport_to_location(location)tablenilTéléporte lorsque la position est résolue.
set_velocity_vector(vector)tablenilDéfinit la vélocité lorsque le vecteur est résolu.
set_direction_vector(vector)tablenilDéfinit la direction d'une boule de feu le cas échéant.
set_yield(amount)numbernilDéfinit la puissance d'une boule de feu le cas échéant.
set_gravity(enabled)boolnilDéfinit la gravité.
detonate()—nilFait détoner l'entité lorsqu'il s'agit d'un feu d'artifice.
remove()—nilSupprime l'entité.
unregister(reason?=OTHER)string?=OTHERnilDésenregistre avec 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()—boolTeste si l'entité est montée sur un véhicule.
has_vehicle()—boolTeste si un véhicule existe.
get_vehicle()—table/nilRenvoie la référence du véhicule actuel.
set_vehicle(vehicle)tableboolFait monter cette entité sur le véhicule résolu.
leave_vehicle()—boolQuitte le véhicule actuel.
has_passengers()—boolTeste s'il existe des passagers.
get_passenger_count()—intRenvoie le nombre de passagers.
get_passengers()—tableRenvoie les références des passagers.
add_passenger(passenger)tableboolAjoute le passager résolu.
remove_passenger(passenger)tableboolRetire le passager résolu.
eject_passengers()—boolÉjecte tous les passagers.

Table d'entité vivante des pouvoirs EliteMobs​

Les valeurs vivantes des pouvoirs de boss EliteMobs utilisent cette table distincte ; les tables Boss et Player des pouvoirs EliteMobs en héritent.

Propriétés​

ChampTypeDescription
namestringInstantané du nom de l'entité.
uuidstringUUID de l'entité.
entity_typestringInstantané du type d'entité Bukkit en majuscules.
is_playerboolIndique si l'entité est un joueur.
is_monsterboolIndique si l'entité implémente Monster de Bukkit.
is_eliteboolIndique si EliteMobs suit l'entité.
is_mountboolIndique si le boss personnalisé suivi est une monture.
is_validboolInstantané de la validité.
healthnumberInstantané de la vie.
maximum_healthnumberInstantané de la vie maximale.
current_locationtableInstantané de la position.

Méthodes​

MéthodeArgsRetourDescription
is_alive()—boolTeste la validité en direct et l'état de mort.
is_ai_enabled()—boolRenvoie l'état d'IA en direct.
is_frozen()—boolRenvoie le paramètre de gel du boss personnalisé EliteMobs, ou false.
get_location()—tableRenvoie la position en direct.
get_eye_location()—tableRenvoie la position des yeux en direct.
get_height()—numberRenvoie la hauteur de l'entité Bukkit.
get_health()—numberRenvoie la vie en direct.
get_maximum_health()—numberRenvoie la vie maximale en direct.
get_velocity()—tableRenvoie la vélocité en direct.
deal_damage(amount)numbernilInflige des dégâts Bukkit génériques.
deal_custom_damage(amount)numbernilSoumet des dégâts personnalisés bruts du boss à une cible vivante ; ignore le boss lui-même, les cibles invulnérables ou mortes et les joueurs hors Survie/Aventure. Sous réserve des règles d'instance et de l'annulation de l'événement de dégâts.
deal_damage_from_boss(amount)numbernilInflige des dégâts Bukkit attribués au boss du pouvoir.
restore_health(amount)numbernilSoigne via EliteMobs lorsque l'entité est suivie, sinon plafonne la vie Bukkit au maximum.
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilJoue un son enregistré ou personnalisé avec espace de noms au niveau de l'entité. Le deuxième argument peut aussi être {volume, pitch}.
play_sound_at_self(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilAlias qui joue le son au niveau de l'entité. Le deuxième argument peut aussi être {volume, pitch}.
spawn_particle_at_self(particle, count?=1)string (Particle)/table, int?=1nilFait apparaître une particule (chaîne ou table de spécification) au niveau de l'entité.
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?=0nilFait apparaître une particule à une position.
teleport_to_location(location)tablenilTéléporte lorsque la position est résolue.
set_velocity_vector(vector)tablenilDéfinit la vélocité lorsque le vecteur est résolu.
set_gravity(enabled)boolnilDéfinit la gravité.
is_on_ground()—boolTeste l'état au sol en direct.
apply_push_vector(vector, additive?=false, delay?=1)table, bool?=false, int?=1nilApplique une vélocité après un délai, en l'ajoutant éventuellement à la vélocité actuelle.
set_custom_name(name)stringnilDéfinit un nom personnalisé traité pour la couleur.
reset_custom_name()—nilRestaure le nom EliteMobs lorsque l'entité est suivie, sinon le nom Bukkit.
set_custom_name_visible(visible)boolnilDéfinit la visibilité du nom personnalisé.
set_ai_enabled(enabled, duration?=0)bool, int?=0nilDéfinit l'IA comme un changement détenu ; un nombre de ticks positif restaure la valeur remplacée. true met fin au changement d'IA actif de ce pouvoir, s'il y en a un, au lieu d'appliquer une nouvelle valeur.
set_awareness_enabled(enabled, duration?=0)bool, int?=0nilDéfinit la vigilance du mob comme un changement détenu ; un nombre de ticks positif restaure la valeur remplacée. true met fin au changement de vigilance actif de ce pouvoir, s'il y en a un, au lieu d'appliquer une nouvelle valeur.
face_direction_or_location(target)tablenilOriente vers un vecteur ou une position dans le même monde.
play_model_animation(name)stringnilJoue une animation de modèle personnalisé lorsqu'elle est disponible.
set_scale(scale, duration?=0)number, int?=0nilDéfinit l'échelle de base comme un changement détenu ; un nombre de ticks positif restaure la valeur remplacée.
set_invulnerable(enabled, duration?=0)bool, int?=0nilDéfinit l'invulnérabilité comme un changement détenu ; un nombre de ticks positif restaure la valeur remplacée.
remove_elite()—nilSupprime une élite suivie via le pipeline de suppression d'EliteMobs.
is_healing()—boolTeste l'état de soin de l'élite suivie.
set_healing(enabled)boolniltrue marque une élite suivie comme en soin si elle ne l'est pas déjà ; false n'efface que le soin défini par ce pouvoir. L'arrêt du pouvoir efface le soin qu'il détient encore.
navigate_to_location(location, speed?=1, force?=false, timeout?=0)table, number?=1, bool?=false, int?=0nilFait naviguer un boss personnalisé suivi.
add_tag(tag, duration?=0)string, int?=0nilAjoute un tag et le retire après un nombre de ticks positif.
remove_tag(tag)stringnilRetire un tag.
has_tag(tag)stringboolTeste un tag d'entité, d'élite ou de joueur.
push_relative_to(location, force?=1, extra_x?=0, extra_y?=0, extra_z?=0)table, number?=1, number?=0, number?=0, number?=0nilRemplace immédiatement la vélocité par un vecteur sortant normalisé multiplié par force, puis ajoute les décalages selon les axes du monde. Fournissez une source du même monde.
overlaps_box_at_location(center, half_x?=0.5, half_y?=half_x, half_z?=half_x)table, number?=0.5, number?, number?boolTeste la boîte englobante de l'entité contre la boîte demandée.
is_inside_vehicle()—boolTeste si l'entité est montée sur un véhicule.
has_vehicle()—boolTeste si un véhicule existe.
get_vehicle()—table/nilRenvoie la référence du véhicule actuel.
set_vehicle(vehicle)tableboolFait monter cette entité sur le véhicule résolu.
leave_vehicle()—boolQuitte le véhicule actuel.
has_passengers()—boolTeste s'il existe des passagers.
get_passenger_count()—intRenvoie le nombre de passagers.
get_passengers()—tableRenvoie les références des passagers.
add_passenger(passenger)tableboolAjoute le passager résolu.
remove_passenger(passenger)tableboolRetire le passager résolu.
eject_passengers()—boolÉjecte tous les passagers.
apply_potion_effect(type, duration, amplifier?=0)string (PotionEffectType), int, int?=0nilRésout un nom de potion Bukkit converti en majuscules et l'applique si les règles d'instance le permettent. Les amplificateurs commencent à zéro.
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), table?nilDéfinit l'équipement ; les options prennent en charge unbreakable et des entrées enchantments avec type et level.
damage_equipment(slot, amount)string, intintDemande 1–64 points d'usure sur HAND, OFF_HAND, HEAD, CHEST, LEGS ou FEET ; renvoie l'usure réellement appliquée. Respecte l'annulation de l'événement d'usure des objets du joueur et les objets incassables ; peut casser l'objet.
set_fire_ticks(ticks)intnilDéfinit les ticks de feu si les règles d'instance le permettent.
add_visual_freeze_ticks(ticks?=1)int?=1nilAjoute des ticks de gel Minecraft si les règles d'instance le permettent ; cela peut causer des dégâts de gel et ne bloque ni l'IA ni le mouvement.
place_temporary_block(material, ticks?=0, require_air?=false)string (Material), int?=0, bool?=falsenilPlace un bloc temporaire au niveau de l'entité.

Les changements d'IA, de vigilance, d'échelle et d'invulnérabilité appartiennent au pouvoir appelant. Chacun enregistre la valeur qu'il a remplacée. Une durée positive restaure cette valeur après le nombre de ticks indiqué ; une durée de 0 conserve le changement jusqu'à l'arrêt du pouvoir, qui le restaure également. Lorsque plusieurs pouvoirs modifient la même propriété, la fin d'un changement restaure le changement restant le plus récent, ou la valeur d'origine s'il n'en reste aucun. Si un autre plugin ou une commande modifie la propriété entre-temps, sa valeur est conservée et rien n'est restauré. Mettre un pouvoir en pause ne met pas fin à ces changements. apply_push_vector retardé et les temporisateurs de suppression de tags fonctionnent toujours indépendamment du planificateur propre au script. reset_custom_name restaure le nom d'une élite suivie ; pour une entité Bukkit ordinaire, il utilise son nom actuel, pas un nom original conservé.

Table de joueur des pouvoirs EliteMobs​

Les valeurs de joueur des pouvoirs de boss EliteMobs héritent de toutes les propriétés et méthodes de la table d'entité vivante des pouvoirs EliteMobs.

Propriétés​

ChampTypeDescription
game_modestringInstantané du mode de jeu Bukkit en majuscules.

Méthodes​

MéthodeArgsRetourDescription
send_message(text)stringnilEnvoie un texte de chat traité pour la couleur.
show_action_bar(text)stringnilEnvoie une barre d'action traitée pour la couleur.
show_title(title, subtitle?="", fade_in?=10, stay?=40, fade_out?=10)string, string?="", int?=10, int?=40, int?=10nilAffiche un titre traité pour la couleur.
show_boss_bar(title, color?=WHITE, style?=SOLID, duration?=40)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilAffiche une barre de boss et la retire après un nombre de ticks positif.
run_command(command)stringnilExécute une commande en tant que joueur.

context.boss​

Les pouvoirs de boss EliteMobs reçoivent cette table, qui hérite de toutes les propriétés et méthodes de la table d'entité vivante des pouvoirs EliteMobs et redéfinit les lignes listées ici avec une sémantique de niveau élite.

Propriétés​

ChampTypeDescription
namestringInstantané du nom d'affichage de l'élite ou du nom de fichier du script.
uuidstringUUID de l'élite.
healthnumberInstantané de la vie de l'élite.
maximum_healthnumberInstantané de la vie maximale de l'élite.
current_locationtableInstantané de la position de l'élite.
levelintInstantané du niveau de l'élite.
damager_countintInstantané du nombre d'assaillants.
is_in_combatboolInstantané de l'état de combat.
existsboolInstantané de l'existence de l'élite.

Méthodes​

MéthodeArgsRetourDescription
is_alive()—boolTeste l'état de l'entité vivante et l'existence côté EliteMobs.
get_health()—numberRenvoie la vie de l'élite en direct.
get_maximum_health()—numberRenvoie la vie maximale de l'élite en direct.
get_location()—tableRenvoie la position de l'élite en direct.
restore_health(amount)numbernilSoigne via l'entité EliteMobs.
add_tag(tag, duration?=0)string, int?=0nilAjoute un tag d'élite et le retire après un nombre de ticks positif.
remove_tag(tag)stringnilRetire un tag d'élite.
has_tag(tag)stringboolTeste un tag d'élite.
reset_custom_name()—nilRestaure le nom d'affichage de l'élite.
play_sound_at_self(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilJoue un son enregistré ou personnalisé avec espace de noms à la position de l'élite. Le deuxième argument peut aussi être {volume, pitch}.
play_sound_at_entity(sound, volume_or_options?=1, pitch?=1)string (Sound), number/table?=1, number?=1nilAlias qui joue le son à la position de l'élite. Le deuxième argument peut aussi être {volume, pitch}.
spawn_particle_at_self(particle, count?=1)string (Particle)/table, int?=1nilFait apparaître une particule à la position de l'élite.
play_model_animation(name)stringnilJoue l'animation du modèle du boss personnalisé lorsqu'elle est disponible.
navigate_to_location(location, speed?=1, force?=false, timeout?=0)table, number?=1, bool?=false, int?=0nilFait naviguer un boss personnalisé.
get_damager_count()—intRenvoie le nombre d'assaillants en direct.
despawn()—nilSupprime l'élite avec la raison OTHER.
remove()—nilAlias de despawn().
patrol_pause()—boolMet en pause la patrouille configurée.
patrol_resume()—boolReprend la patrouille après une attente ou un déplacement de script.
walk_to(x, y, z)number, number, numberboolMarche jusqu'à un décalage de l'origine puis reprend la patrouille.
hold(x, y, z)number, number, numberboolMarche jusqu'à un décalage et y reste.
teleport(x, y, z)number, number, numberboolSe téléporte vers un décalage où les entités sont traitées.
get_ender_dragon_phase()—string/nilRenvoie le nom de EnderDragon.Phase, ou nil.
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilDéfinit une phase d'ender dragon valide.
has_mount()—boolTeste si le boss dispose d'un véhicule de monture actif.
get_mount()—table/nilRenvoie la référence de monture marquée is_mount = true.
set_mount(mount)tableboolFait monter le boss sur l'entité résolue.
clear_mount()—boolQuitte le véhicule actuel.
dismount()—boolAlias de clear_mount().
start_tracking_fireball_system(speed?=0.5)number?=0.5nilPour un boss de type monstre, tire des boules de feu à tête chercheuse sur les joueurs Survie/Aventure situés à moins de 20 blocs sur chaque axe, au tick suivant puis toutes les 160 ticks tant qu'il a une cible. Le pouvoir détient cette tâche : la mise en pause la suspend, et la perte de la cible ou l'arrêt du pouvoir l'arrête. La vitesse doit être finie et positive.
handle_spirit_walk_damage(cause)string (DamageCause)nilExécute la gestion des dégâts de Spirit Walk.
shield_wall_is_active()—boolTeste l'état du mur de boucliers.
initialize_shield_wall(openingDirection?=1)int?=1nilInitialise des réserves par direction égales au niveau du boss. Ouverture : 1 nord, 2 est, 3 sud, 4 ouest ; les autres entiers protègent tous les côtés. Un mur déjà actif reste inchangé.
shield_wall_absorb_damage(player, damage)table, numberboolSoustrait les dégâts de la réserve du côté de l'attaquant si elle était positive ; true indique que le script doit annuler lui-même l'événement de dégâts. Aucune annulation automatique.
deactivate_shield_wall()—nilArrête la tâche indépendante du mur et retire son état et ses effets. La fermeture de Lua seule ne le désactive pas.
start_zombie_necronomicon(target, chant)table, stringnilDémarre le contrôleur indépendant pour une cible vivante. La chaîne est du texte affiché, pas un nom de fichier ; invoque les fichiers fixes de zombie/squelette du necronomicon au niveau du lanceur.
send_message(text, range?=20)string, number?=20nilEnvoie un texte traité pour la couleur aux joueurs à portée.
get_nearby_players(range)numbertableRenvoie les tables de joueur des pouvoirs EliteMobs à proximité.
get_nearby_elites(radius)numbertableRenvoie au plus 32 élites vivantes suivies dans le même monde, sans le boss ; triées par distance, puis par UUID en cas d'égalité. Rayon strictement supérieur à 0 et inférieur ou égal à 64.
get_target_player()—table/nilRenvoie la cible actuelle du mob lorsqu'il s'agit d'un joueur.
get_nearby_players_in_zone(zone)tabletableRenvoie les joueurs contenus dans la zone.
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?=1nilÉchantillonne l'intérieur de la zone et y fait apparaître des particules.
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?=1nilÉchantillonne le bord de la zone et y fait apparaître des particules.
get_particles_from_self_toward_zone(zone, particle, speed?=0.1)table, string (Particle), number?=0.1tableConstruit des spécifications de particules directionnelles allant du boss vers des points échantillonnés de la zone.
get_particles_toward_self(zone, particle, speed)table, string (Particle), numbertableConstruit des spécifications de particules directionnelles vers le boss ; le constructeur actuel lit la vitesse dans le dernier argument fourni.
spawn_particles_with_vector(particles)tablenilFait apparaître un tableau de spécifications de particules directionnelles.
summon_reinforcement(file, zone_or_location?, duration?=0)string, table?, int?=0table/nilInvoque un renfort à un point échantillonné de la zone, à une position ou sur le boss ; une durée positive le retire après ce nombre de ticks.
summon_projectile(type, origin, destination, speed?=1, options?)string (EntityType), table, table, number?=1, table?table/nilFait apparaître un projectile ; les options prennent en charge custom_damage, detonation_power, yield, incendiary, gravity, glowing, invulnerable, persistent, duration, l'effect EntityEffect, spawn_at_origin, direction_only, track, on_land et max_ticks.

context.players : pouvoirs de boss EliteMobs​

MéthodeArgsRetourDescription
current_target()—table/nilRenvoie l'acteur de l'événement lorsqu'il s'agit d'un joueur, sinon la cible actuelle du mob du boss lorsqu'il s'agit d'un joueur.
nearby_players(radius)numbertableRenvoie les Player Tables situées dans le rayon autour du boss.
all_players_in_world()—tableRenvoie toutes les Player Tables du monde actuel du boss.

context.entities : pouvoirs de boss EliteMobs​

Les requêtes de collections excluent le boss lui-même. Les filtres acceptent player/players, elite/elites, mob/mobs ou toute autre valeur pour toutes les entités vivantes. Elles ne filtrent pas par Survie/Aventure ni par appartenance à une instance de donjon. La requête de cible directe renvoie la cible fournie par le hook indépendamment de ces filtres de collection.

MéthodeArgsRetourDescription
get_nearby_entities(radius, filter?="living")number, string?tableLes filtres d'entités vivantes utilisent un rayon 3D à la position des pieds. all ou entities utilise plutôt la requête Bukkit de boîte alignée sur les axes et inclut les entités non vivantes.
get_entities_in_box(center, half_x, half_y, half_z, filter?="living")table, number, number, number, string?tableRenvoie les entités vivantes dont les pieds sont dans la boîte, limites comprises.
get_all_entities(filter?="living")string?tableRenvoie les entités vivantes correspondantes dans le monde du boss.
get_direct_target_entity()—table/nilRenvoie la cible directe fournie par le hook courant.
get_boss_spawn_location()—tableRenvoie la position d'apparition d'origine du boss.

context.vectors : pouvoirs de boss EliteMobs​

MéthodeArgsRetourDescription
get_vector_between_locations(source, destination, options?)table, table, table?tableRenvoie le vecteur entre deux positions du même monde, ou {x=0,y=0,z=0} pour une entrée invalide ou inter-mondes. Les options prennent en charge normalize, multiplier et un offset vectoriel.
rotate_vector(vector, pitch?=0, yaw?=0)table, number?=0, number?=0tableRenvoie le vecteur pivoté selon le pitch et le yaw, en degrés.
normalize_vector(vector)tabletableRenvoie un vecteur unitaire ; un vecteur nul reste nul.

context.zones : pouvoirs de boss EliteMobs​

Les pouvoirs de boss EliteMobs remplacent la surface de zone partagée à handles entiers par des requêtes sur les définitions de zone Elite Script.

L'appartenance des entités, la contenance des points et les positions échantillonnées pour les particules sont des opérations distinctes qui peuvent différer aux limites. coverage modifie les positions échantillonnées, pas la sélection d'entités. watch_zone capture une forme et appelle chaque callback avec une table d'entité, pas un contexte ; la vérification commence après un tick et signale les entités déjà présentes comme entrées. Arrêter une surveillance n'émet pas de callbacks de sortie.

MéthodeArgsRetourDescription
get_entities_in_zone(zone, options?)table, table?tableRenvoie les entités vivantes correspondantes. Les options prennent en charge filter et mode = "full" ou "border".
get_locations_in_zone(zone, options?)table, table?tableRenvoie des positions échantillonnées. Les options prennent en charge coverage et mode = "full" ou "border".
zone_contains(zone, location, mode?="full")table, table, string?boolTeste si la position se trouve dans la forme complète ou sur le bord.
watch_zone(zone, callbacks, options?)table, table, table?nilSurveille avec des callbacks {on_enter, on_leave}. Les options prennent en charge filter et mode ; la surveillance possédée s'arrête avec le script.

context.script : pouvoirs de boss EliteMobs​

Ce pont accepte les mêmes clés de table que la configuration YAML Elite Script des cibles, des zones et des vecteurs relatifs.

Méthodes​

MéthodeArgsRetourDescription
target(spec)tablehandle de cibleCrée un handle de cible.
zone(spec)tablehandle de zoneCrée un handle de zone.
relative_vector(spec, location?, zone?)table, table?, handle de zone?handle de vecteurCrée un handle de vecteur relatif, dont la position d'action est par défaut celle du boss.
damage(target, amount?=0, multiplier?=1)handle de cible, number?=0, number?=1nilSoumet des dégâts Bukkit attribués au boss. Les coups contre des joueurs passent par le calcul de combat EliteMobs avec le multiplicateur ; les autres cibles n'appliquent pas ce multiplicateur.
push(target, vector, additive?=false)handle de cible, table/handle de vecteur, bool?=falsenilAprès un tick via une tâche propre au script, remplace ou ajoute la vélocité des cibles capturées ; un même vecteur résolu est utilisé pour toutes, et un vecteur absent/non fini devient nul.
set_facing(target, vector)handle de cible, table/handle de vecteurnilOriente les entités cibles résolues le long du vecteur.
spawn_particles(target, particles)handle de cible, table/stringnilFait apparaître la spécification de particules aux positions cibles résolues.

Ces appels n'exécutent pas automatiquement une liste d'actions Elite Script, ses conditions, recharges, délais d'avertissement ou répétitions. Les handles de cible conservent le contexte d'événement et de cible directe d'origine ; évitez de réutiliser des handles dépendant d'un événement entre hooks indépendants. first_entity() désigne le premier résultat du résolveur, pas forcément l'entité la plus proche.

Méthodes du handle de cible​

MéthodeArgsRetourDescription
entities()—tableRésout et renvoie des Entity Tables.
locations()—tableRésout et renvoie des tables de position.
first_entity()—table/nilRenvoie la première entité résolue.
first_location()—table/nilRenvoie la première position résolue.

Méthodes du handle de zone​

MéthodeArgsRetourDescription
full_target(coverage?)number?handle de cibleCrée un handle de cible pour l'intérieur de la forme.
border_target(coverage?)number?handle de cibleCrée un handle de cible pour le bord.
full_locations(coverage?)number?tableRésout les positions échantillonnées à l'intérieur.
border_locations(coverage?)number?tableRésout les positions échantillonnées sur le bord.
full_entities()—tableRésout les entités situées à l'intérieur de la forme.
border_entities()—tableRésout les entités situées sur le bord.
contains(location, mode?="full")table, string?boolTeste l'appartenance à la forme complète ou au bord.
watch(callbacks, mode?="full")table, string?intDémarre une surveillance possédée {on_enter, on_leave} et renvoie son identifiant de tâche.

Méthodes du handle de vecteur relatif​

MéthodeArgsRetourDescription
resolve()—tableRésout le vecteur pour le contexte courant.

Table d'événement des pouvoirs EliteMobs​

Les valeurs d'événement des pouvoirs de boss EliteMobs exposent des champs et des méthodes de façon conditionnelle selon le type d'événement.

Propriétés​

ChampTypeDescription
damage_amountnumber/nilInstantané du montant d'un événement de dégâts.
damage_causestring/nilNom de DamageCause lorsque l'événement de dégâts en expose un.
damagertable/nilRéférence brute du responsable des dégâts par entité ; pour un projectile, il s'agit du projectile et non de son tireur.
projectiletable/nilRéférence du projectile lorsque l'assaillant est un projectile.
spawn_reasonstring/nilRaison d'apparition de l'élite.
entitytable/nilRenfort blessé, entité de l'événement de mort ou de zone, selon le hook.
is_damage_transferbool/nilDégâts de joueur à élite uniquement : indique si ce hook traite un coup explicitement transféré.

Méthodes​

MéthodeArgsRetourDescription
cancel_event()—nilAnnule un EliteDamageEvent ou un autre événement annulable.
set_damage_amount(amount)numbernilRemplace les dégâts d'un EliteDamageEvent ; exige l'appel avec un point : context.event.set_damage_amount(...).
multiply_damage_amount(multiplier)numbernilMultiplie les dégâts d'un EliteDamageEvent ; exige l'appel avec un point : context.event.multiply_damage_amount(...).
get_damage_amount()—numberRetourne le montant actuel d'EliteDamageEvent après modifications.
transfer_damage(target, amount)référence d'entité, numberboolDégâts de joueur à élite uniquement : soumet des dégâts finis et non négatifs à une autre élite vivante autorisée par l'instance. Zéro, entrées annulées, transferts imbriqués et cible originale retournent false ; un destinataire non élite provoque une erreur. True signifie soumis, pas dégâts garantis. Ne soustrait ni n'annule les dégâts originaux.

context.world : ajouts et redéfinitions EliteMobs​

Les pouvoirs de boss héritent de la table de monde partagée, notamment des fonctions EliteMobs partagées d'effet de foudre et d'apparition de PNJ, puis ajoutent ou redéfinissent les méthodes ci-dessous. Les méthodes de coordonnées héritées conservent leur comportement partagé. Les méthodes de position propres au boss utilisent son convertisseur : une valeur absente ou non-table utilise le boss, les coordonnées omises valent zéro et un monde explicitement nommé doit être résolu.

Méthodes​

MéthodeArgsRetourDescription
play_sound_at_location(location, sound, volume?=1, pitch?=1)table, string (Sound), number?=1, number?=1nilRedéfinition qui accepte les sons enregistrés ou personnalisés avec espace de noms via la prise en charge d'EliteMobs.
spawn_particle_at_location(location, particle, count?=1)table, string (Particle)/table, int?=1nilRedéfinition qui accepte une table de spécification de particules EliteMobs.
set_block_at_location(location, material, require_air?=false)table, string (Material), bool?=falsenilRedéfinition qui place le bloc de façon permanente via le gestionnaire de blocs temporaires, sans temporisateur ni suivi.
place_temporary_block_at_location(location, material, ticks?=0, require_air?=false)table, string (Material), int?=0, bool?=falsenilRedéfinition qui utilise le placement de bloc temporaire d'EliteMobs.
get_block_type_at_location(location)tablestring/nilRenvoie un nom de Material en majuscules, ou nil pour une position invalide.
get_highest_block_y_at_location(location)tableint/nilRedéfinition qui renvoie le Y du bloc le plus haut, ou nil.
get_blast_resistance_at_location(location)tablenumberRenvoie la résistance aux explosions du bloc, 0 par défaut pour une position invalide.
is_air_at_location(location)tableboolTeste si le bloc visé est de l'air.
is_passable_at_location(location)tableboolTeste la traversabilité au sens de Bukkit.
is_passthrough_at_location(location)tableboolTeste si le matériau n'est pas solide.
is_on_floor_at_location(location)tableboolTeste la présence d'une cible non solide avec un bloc solide en dessous.
is_standing_on_material(location, material)table, string (Material)boolTeste le bloc situé en dessous.
strike_lightning_at_location(location)tablenilRedéfinition qui active le contournement de foudre d'EliteMobs avant de frapper.
run_empowered_lightning_task_at_location(location)tablenilÉmet indépendamment 60 itérations d'avertissement, puis un véritable éclair et une boule de feu descendante de puissance 5. Inflige des dégâts ; la pause ou fermeture de Lua ne l'annule pas.
set_world_time(time) / set_world_time(location, time)int/table, int?nilDéfinit l'heure du monde du boss ou celle du monde de la position fournie.
set_world_weather(weather, duration?=6000) / set_world_weather(location, weather, duration?=6000)string/table, string/int?, int?=6000nilDéfinit CLEAR, PRECIPITATION, RAIN ou THUNDER.
run_console_command(command)stringnilExécute une commande en tant que console.
spawn_boss_at_location(file, location?, level?)string, table?, int?table/nilFait apparaître un boss personnalisé à la position fournie ou actuelle et au niveau fourni ou actuel.
spawn_custom_boss_at_location(file, location, options?)string, table, table?table/nilFait apparaître un boss personnalisé ; les options prennent en charge silent, level, add_as_reinforcement et velocity.
spawn_entity_at_location(type, location, options?)string (EntityType), table, table?table/nilFait apparaître une entité vanilla ; les options prennent en charge velocity, duration, l'effect EntityEffect, on_land et max_ticks.
spawn_falling_block_at_location(location, material, options?)table, string (Material), table?table/nilFait apparaître un bloc qui tombe ; les options prennent en charge drop_item, hurt_entities, velocity et on_land.
spawn_reinforcement_at_location(file, location, duration?=0, velocity?)string, table, int?=0, table?table/nilInvoque un renfort lié au boss ; une durée positive le retire après ce nombre de ticks.
spawn_fireworks_at_location(location, options)table, tabletable/nilFait apparaître un feu d'artifice ; les options prennent en charge effects, type, flicker, trail, colors, fade_colors, power, velocity et shot_at_angle, avec des noms FireworkEffect.Type pour type.
spawn_splash_potion_at_location(location, options)table, tabletable/nilFait apparaître une potion projetable ; les entrées effects acceptent un type PotionEffectType, duration, amplifier et overwrite, plus un velocity de premier niveau.
generate_fake_explosion(locations, source?)table, table?nilRetire de vrais blocs et crée des débris qui infligent des dégâts si la régénération des explosions est activée. La restauration commence après 1200 ticks ; fermer Lua ne l'annule pas. Gardez les positions dans le monde du boss.
spawn_fake_gold_nugget_at_location(location, velocity, gravity?=false)table, table, bool?=falsetable/nilFait apparaître un faux projectile de pépite d'or.
run_fake_gold_nugget_damage(projectiles)tablenilExécute la passe de dégâts des faux projectiles.
generate_player_loot(times?=1)int?=1nilGénère le butin des joueurs pour les assaillants éligibles.
drop_bonus_coins(multiplier?=2)number?=2nilFait tomber des pièces bonus pour les assaillants éligibles.

Table de faux projectile EliteMobs​

spawn_fake_gold_nugget_at_location renvoie cette table lorsque l'apparition réussit.

Méthodes​

MéthodeArgsRetourDescription
get_location()—tableRenvoie la position du faux projectile.
set_gravity(enabled)boolnilDéfinit la gravité du faux projectile.
remove()—nilSupprime le faux projectile.
is_removed()—boolTeste s'il a été supprimé.

context.settings​

Les pouvoirs de boss EliteMobs reçoivent cette table de paramètres du même constructeur de table de monde.

Méthodes​

MéthodeArgsRetourDescription
warning_visual_effects_enabled()—boolRenvoie le paramètre actuel des effets visuels d'avertissement.