Aller au contenu principal

Script Lua : Enums et valeurs

webapp_banner.jpg

Cette page renvoie aux types de valeurs Spigot utilisés par les méthodes Lua d'EliteMobs. Passez leurs noms de constantes, comme "FLAME", "ZOMBIE" et "STONE", sous forme de chaînes dans votre code Lua. Utilisez des valeurs disponibles dans la version de l'API de votre serveur.

  • L'orthographe doit correspondre exactement au nom de la constante enum
  • La casse est généralement normalisée en interne, mais respectez l'orthographe Javadoc par sécurité
  • Le traitement des valeurs incorrectes dépend de la méthode : certaines enregistrent un avertissement, d'autres renvoient nil ou ne font rien, et les API avec validation peuvent déclencher une erreur Lua

Référence des enums​

EnumUtilisationJavadoc
BarColorCouleur de la barre de bossBarColor
BarStyleStyle de la barre de bossBarStyle
DamageCauseFiltrage de la cause des dégâtsEntityDamageEvent.DamageCause
EnderDragon.PhaseContrôle des phases de l'Ender DragonEnderDragon.Phase
EntityEffectEffets visuels d'entitéEntityEffect
EntityTypeApparition d'entitésEntityType
EquipmentSlotEmplacements d'équipement d'entité ; damage_equipment accepte uniquement HAND, OFF_HAND, HEAD, CHEST, LEGS, FEETEquipmentSlot
FireworkEffect.TypeForme de feu d'artificeFireworkEffect.Type
MaterialBlocs et objetsMaterial
ParticleEffets de particulesParticle. Les conversions d'anciens noms concernent les actions de particules EliteScript ; les fonctions natives de particules Lua exigent les noms actuels de l'API.
PotionEffectTypeEffets de potionPotionEffectType
SoundLecture de sonsSound
Les sons acceptent deux formats

Chaque utilitaire de son Lua (boss:play_sound_at_self, entity:play_sound_at_entity, world:play_sound_at_location) résout la chaîne en deux étapes : il essaie d'abord le nom d'enum Spigot Sound (mis en majuscules, donc "entity_blaze_shoot" fonctionne), et si cela échoue, il traite la chaîne comme une clé de son avec espace de noms (mise en minuscules, donc "entity.blaze.shoot" et votre propre clé de resource pack "mypack:boss.roar" fonctionnent tous les deux).

Les deux chemins suppriment les espaces autour de la valeur. Une clé sans espace de noms utilise minecraft. Les clés mal formées sont ignorées ; les clés dont la syntaxe est valide sont envoyées au client sans vérifier l'existence du son. Une clé mal orthographiée ou un son absent du resource pack peut donc ne rien jouer.

Valeurs non-Spigot​

Ces valeurs sont spécifiques à EliteMobs et ne figurent pas dans les Javadocs Spigot :

Formes de zone​

Utilisées par les définitions de zones natives (champ kind) et les spécifications de zones des utilitaires de script (champ shape). Ces valeurs sont sensibles à la casse. Utilisez les minuscules pour les formes natives et les majuscules pour les formes des utilitaires de script.

Native (kind)Utilitaire de script (shape)
sphereSPHERE
domeDOME
cylinderCYLINDER
cuboidCUBOID
coneCONE
static_raySTATIC_RAY
rotating_rayROTATING_RAY
translating_rayTRANSLATING_RAY

Filtres d'entité​

Utilisés par les options de requête de context.zones et context.entities. Ces valeurs sont insensibles à la casse ; les alias acceptés figurent ci-dessous.

FiltreCorrespond à
player / playersJoueurs uniquement
elite / elitesMobs élites uniquement
mob / mobsEntités vivantes non-joueurs (cela inclut les élites)
livingToutes les entités vivantes, joueurs compris (par défaut)
all / entitiesToutes les entités, y compris non vivantes. Reconnu uniquement par context.entities:get_nearby_entities

Les filtres inconnus utilisent living, donc une faute comme "playr" inclut tous les types d'entités vivantes dans la zone interrogée. Ces requêtes natives excluent le boss lui-même. Les requêtes d'entités dans une zone cherchent dans le monde du boss ; les requêtes de boîte cherchent dans le monde du centre fourni.

get_nearby_entities(radius, filter) vérifie la distance sphérique pour les filtres d'entités vivantes. Avec all ou entities, la recherche utilise une boîte alignée sur les axes, s'étendant de radius sur chaque axe, et renvoie des tables de référence aux entités, y compris non vivantes. Les autres requêtes natives traitent ces deux filtres comme living.

context.script:zone({...}) utilise un jeu de filtres différent, en majuscules (PLAYER, ELITE, LIVING), car il exécute le moteur EliteScript.

Valeurs météo​

Utilisées par context.world:set_world_weather(weather). Les valeurs sont converties en majuscules sans supprimer les espaces. Une valeur inconnue produit un avertissement et laisse la météo inchangée.

ValeurEffet
CLEARCiel dégagé
PRECIPITATION / RAINPluie
THUNDEROrage

Types de cible​

Ce sont les valeurs de cible d'EliteScript. context.script:target() partage le résolveur, mais ne fournit pas de données d'action héritées ni d'atterrissage. Les cibles de zone doivent provenir de full_target() ou de border_target() d'un objet de zone.

ValeurRésolu en
SELFL'entité boss
SELF_SPAWNLe lieu d'apparition du boss pour les emplacements ; le boss lui-même pour les entités
DIRECT_TARGETLa cible directe de l'événement actuel ; ne sélectionne rien si l'événement n'en fournit pas
NEARBY_PLAYERSLes joueurs dans une boîte s'étendant de range sur chaque axe depuis le boss
NEARBY_MOBSLes entités vivantes non-joueurs dans cette boîte, à l'exclusion du boss
NEARBY_ELITESLes mobs élites dans cette boîte, à l'exclusion du boss
ALL_PLAYERSTous les joueurs en ligne
WORLD_PLAYERSTous les joueurs dans le monde du boss
ZONE_FULLEntités/emplacements à l'intérieur d'un volume de zone
ZONE_BORDEREntités/emplacements sur la bordure d'une zone
LOCATIONUn emplacement spécifique issu du champ location de la spécification
LOCATIONSPlusieurs emplacements spécifiques issus de la liste locations de la spécification
LANDING_LOCATIONL'endroit où un bloc en chute ou une entité invoquée a atterri
ACTION_TARGETHérite des cibles de l'action EliteScript environnante
INHERIT_SCRIPT_TARGETHérite de la cible de l'EliteScript appelant
INHERIT_SCRIPT_ZONE_FULLHérite de la zone de l'EliteScript appelant ; la sélection d'entités utilise actuellement sa bordure. Voir les limites des zones héritées.
INHERIT_SCRIPT_ZONE_BORDERSur la bordure de la zone de l'EliteScript appelant ; voir les limites des zones héritées pour la résolution des emplacements

N'utilisez pas LANDING_LOCATION, ACTION_TARGET ni les trois valeurs INHERIT_SCRIPT_* avec context.script:target(). L'objet Lua ne possède pas l'état d'action, d'héritage ou d'atterrissage correspondant ; la résolution peut ne renvoyer aucune cible ou échouer. Une spécification isolée ZONE_FULL ou ZONE_BORDER n'a pas non plus de zone. Voir Cibles EliteScript pour la sémantique des actions YAML.


Étapes suivantes​