Aller au contenu principal

Reference API Lua

Reference complete des methodes de l'API de script Lua. Toutes les methodes sont appelees via la syntaxe context.table:method().

Les methodes globales (marquees GLOBAL) proviennent de Magmacore, la bibliotheque de base partagee -- elles fonctionnent de maniere identique dans les scripts EliteMobs et FreeMinecraftModels.

Les methodes EliteMobs (marquees ELITEMOBS) sont specifiques aux scripts de pouvoir de boss EliteMobs.

Les methodes FMM (marquees FMM) sont specifiques aux scripts d'objets et de props FreeMinecraftModels.

Lorsqu'une methode necessite un enum Bukkit (Sound, Particle, Material, etc.), consultez les Javadocs Spigot pour les valeurs valides. Les noms d'enum sont passes sous forme de strings en majuscules (par exemple, "DIAMOND_SWORD", "ENTITY_ARROW_SHOOT").


Table d'entite GLOBAL

Champs de base presents sur toutes les tables d'entites -- joueurs, mobs, props, tout.

Proprietes

ChampTypeDescription
uuidstringUUID de l'entite
entity_typestringType d'entite (minuscules)
is_validboolL'entite existe toujours dans le monde
is_deadboolL'entite est morte
is_playerboolEst un joueur
is_hostileboolEst un monstre
is_passiveboolEst un animal
is_eliteboolEst une entite EliteMobs
is_custom_bossboolEst un boss personnalise EliteMobs
is_significant_bossboolBoss personnalise avec un multiplicateur de sante superieur a 1 (rencontre concue)
is_modeledboolA un modele FMM
is_propboolEst un prop FMM
current_locationlocationPosition de l'entite (x, y, z, yaw, pitch, world)
worldstringNom du monde

Methodes

MethodeArgsRetourneDescription
teleport(location)table locationnilTeleporter l'entite
remove()--nilSupprimer l'entite du monde
set_silent(enabled)boolnilRendre silencieux
set_invulnerable(enabled)boolnilRendre invulnerable
set_gravity(enabled)boolnilDefinir la gravite
set_glowing(enabled)boolnilDefinir le contour lumineux

Bridge : entity.elite

Present uniquement lorsque is_elite est true. Rempli par reflexion -- aucune dependance EliteMobs requise.

ChampTypeDescription
levelintNiveau du mob elite
namestringNom d'affichage de l'elite
healthdoubleSante actuelle
max_healthdoubleSante maximale
is_custom_bossboolEst un boss personnalise (egalement disponible au niveau superieur)
health_multiplierdoubleMultiplicateur de sante defini en config
damage_multiplierdoubleMultiplicateur de degats defini en config
remove()methodeSupprimer l'entite elite

Bridge : entity.model

Present uniquement lorsque is_modeled est true. Rempli par reflexion -- aucune dependance FMM requise.

ChampTypeDescription
model_idstringNom du blueprint du modele
play_animation(name, blend?, loop?)methodeJouer une animation. blend par defaut a false, loop par defaut a false
stop_animations()methodeArreter toutes les animations
remove()methodeSupprimer l'entite modelee

Table d'entite vivante GLOBAL

Etend la Table d'entite. Appliquee a toutes les entites vivantes (mobs et joueurs).

Proprietes

ChampTypeDescription
healthdoubleSante actuelle
maximum_healthdoubleSante maximale
namestringNom d'affichage de l'entite
is_aliveboolL'entite n'est pas morte

Methodes

MethodeArgsRetourneDescription
damage(amount)doublenilInfliger des degats a l'entite
push(x, y, z)double, double, doublenilAjouter un vecteur de velocite
set_facing(x, y, z)double, double, doublenilDefinir la direction du regard
add_potion_effect(type, duration, amplifier)string (PotionEffectType), int, intnilAppliquer un effet de potion par nom
remove_potion_effect(type)string (PotionEffectType)nilSupprimer un effet de potion par nom

context.player GLOBAL

Table d'entite joueur. Herite de tous les champs Entite et Entite vivante.

Proprietes

ChampTypeDescription
game_modestringsurvival, creative, adventure, spectator

Methodes

MethodeArgsRetourneDescription
send_message(text)stringnilEnvoyer un message de chat. Supporte les codes couleur
get_held_item()--table ou nilRetourne les champs type, amount, display_name, ou nil si main vide
consume_held_item(amount?)int (defaut 1)nilReduire la pile de l'objet en main
has_item(material, amount?)string (Material), int (defaut 1)boolVerifier l'inventaire pour un materiau
get_target_entity(range?)num (defaut 50)entity ou nilRaycast vers l'entite que le joueur regarde
get_eye_location()--locationPosition des yeux du joueur
get_look_direction()--vectorVecteur de direction unitaire
send_block_change(x, y, z, material, ticks?)int, int, int, string (Material), int (optionnel)boolEnvoyer un faux bloc. Se reinitialise apres les ticks si specifie
reset_block(x, y, z)int, int, intboolReinitialiser un faux bloc au reel
sleep(x, y, z)num, num, numnilAnimation de sommeil dans un lit a l'emplacement
wake_up()--nilReveiller du sommeil
show_boss_bar(text, color?, progress, ticks?)string, string (BarColor, defaut WHITE), num, int (optionnel)nilAfficher la barre de boss. Se masque apres les ticks. Supporte les codes couleur
hide_boss_bar()--nilSupprimer la barre de boss
show_action_bar(text, ticks?)string, int (optionnel)nilAfficher la barre d'action. Repete si ticks superieur a 0. Supporte les codes couleur
show_title(title, subtitle?, fadeIn, stay, fadeOut)string, string (defaut vide), int, int, intnilAfficher l'ecran titre. Supporte les codes couleur

context.world GLOBAL

Operations sur le monde. Disponible dans tous les types de script.

Proprietes

ChampTypeDescription
namestringNom du monde

Methodes

MethodeArgsRetourneDescription
get_block_at(x, y, z)int, int, intstringNom de Material (minuscules)
set_block_at(x, y, z, material)int, int, int, string (Material)boolPlacer un bloc
get_highest_block_y(x, z)int, intintY du bloc non-air le plus haut
spawn_particle(particle, x, y, z, count?, dx?, dy?, dz?, speed?)string (Particle), num, num, num, int?=1, num?=0, num?=0, num?=0, num?=0nilFaire apparaitre un effet de particule
play_sound(sound, x, y, z, volume?, pitch?)string (Sound), num, num, num, float?=1, float?=1nilJouer un son
strike_lightning(x, y, z)num, num, numnilFaire tomber la foudre
get_time()--intHeure du monde en ticks
set_time(ticks)longnilDefinir l'heure du monde
get_nearby_entities(x, y, z, radius)num, num, num, numtableTableau de tables d'entites
get_nearby_players(x, y, z, radius)num, num, num, numtableTableau de tables d'entites joueurs
spawn_entity(type, x, y, z)string (EntityType), num, num, numentityFaire apparaitre une entite vanilla
raycast(fx, fy, fz, dx, dy, dz, max?)num, num, num, num, num, num, num?=50tableRetourne les champs hit_entity, hit_location, hit_block
place_temporary_block(x, y, z, material, ticks?, require_air?)int, int, int, string (Material), int?=0, bool?=falseboolPlacer un bloc qui se restaure automatiquement apres les ticks
drop_item(x, y, z, material, amount?)num, num, num, string (Material), int?=1entityLacher naturellement une entite objet a l'emplacement
spawn_firework(x, y, z, colors, type?, power?)num, num, num, table, string (FireworkEffect.Type)?=BALL, int?=1nilFaire apparaitre un feu d'artifice

context.boss ELITEMOBS

Table d'entite boss pour les scripts de pouvoir Lua EliteMobs. Herite de toutes les methodes Entite vivante EliteMobs. Les proprietes se rafraichissent via des getters dedies.

Proprietes

ChampTypeDescription
namestringNom d'affichage du boss
uuidstringUUID de l'entite elite
healthdoubleSante actuelle (instantane)
maximum_healthdoubleSante maximale (instantane)
current_locationlocationPosition du boss (instantane)
levelintNiveau du boss
damager_countintNombre de joueurs ayant endommage ce boss
is_in_combatboolLe boss est en combat
existsboolL'entite boss existe

Methodes

MethodeArgsRetourneDescription
is_alive()--boolSi l'entite boss est en vie (verification en direct)
get_health()--doubleSante actuelle (en direct)
get_maximum_health()--doubleSante maximale (en direct)
get_location()--locationPosition actuelle (en direct)
restore_health(amount)doublenilSoigner le boss
despawn()--nilSupprimer l'entite boss
get_damager_count()--intCompteur de joueurs ayant inflige des degats (en direct)
add_tag(tag, ticks?)string, int?=0nilAjouter un tag, suppression auto apres les ticks si defini
remove_tag(tag)stringnilSupprimer un tag
has_tag(tag)stringboolVerifier un tag
reset_custom_name()--nilReinitialiser le nom a la valeur par defaut de la config
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilJouer un son au boss
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilJouer un son au boss (alias)
spawn_particle_at_self(particle, count?)string (Particle) ou table, int?=1nilFaire apparaitre des particules au boss
play_model_animation(name)stringnilJouer une animation de modele FMM (necessite un modele FMM)
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfinding vers un emplacement
send_message(text, range?)string, double?=20nilEnvoyer un message aux joueurs proches. Supporte les codes couleur
get_nearby_players(range)doubletableTableau de tables de joueurs a portee
get_target_player()--player ou nilCible actuelle du mob si c'est un joueur
get_nearby_players_in_zone(zone)table zonetableJoueurs a l'interieur de la forme de zone
get_ender_dragon_phase()--string ou nilNom de EnderDragon.Phase
set_ender_dragon_phase(phase)string (EnderDragon.Phase)nilDefinir la phase de l'ender dragon
summon_reinforcement(file, zone?, level?)string, zone ou nil, int?=0entity ou nilFaire apparaitre un boss de renfort
summon_projectile(type, origin, dest, speed?, options?)string (EntityType), location, location, double?=1, tableentityFaire apparaitre un projectile suivi

Options de summon_projectile

OptionTypeDefautDescription
custom_damagenumber--Remplacer les degats du projectile
detonation_powerstring--Niveau de puissance d'explosion
yieldnumber--Rendement de la boule de feu
incendiarybooltrueLa boule de feu met le feu
gravitybool--Activer la gravite
glowingboolfalseRendre lumineux
invulnerableboolfalseRendre invulnerable
persistentbooltrueRendre persistant
durationint0Suppression auto apres les ticks
effectstring--EntityEffect a jouer a l'apparition
spawn_at_originboolfalseApparaitre a l'origine au lieu de lancer depuis le boss
direction_onlyboolfalseDefinir la direction sans velocite (boules de feu)
trackbooltrueEnregistrer comme projectile elite
on_landfunction--Callback quand le projectile atterrit : function(location, entity)
max_ticksint6000Ticks max avant le callback d'atterrissage force

Methodes zone/particules

MethodeArgsRetourneDescription
spawn_particles_in_zone(zone, particle, ...)zone, spec particule, coverage?=1.0nilRemplir la zone de particules
spawn_particles_in_zone_border(zone, particle, ...)zone, spec particule, coverage?=1.0nilDessiner le contour de la zone avec des particules
get_particles_from_self_toward_zone(zone, particle, speed?)zone, string, double?=0.1tableParticules directionnelles du boss vers la zone
get_particles_toward_self(zone, particle, speed?)zone, string, double?=0.1tableParticules directionnelles de la zone vers le boss
spawn_particles_with_vector(particles)tablenilFaire apparaitre un tableau de particules directionnelles

Support de pouvoirs speciaux

MethodeArgsRetourneDescription
start_tracking_fireball_system(speed?)double?=0.5nilDemarrer l'IA de boule de feu pistee
handle_spirit_walk_damage(cause)string (DamageCause)nilGerer les degats de marche spectrale par cause
shield_wall_is_active()--boolSi le mur de bouclier est actif
initialize_shield_wall(charges?)int?=1nilActiver le mur de bouclier
shield_wall_absorb_damage(player, damage)table entite, doubleboolTenter d'absorber les degats
deactivate_shield_wall()--nilDesactiver le mur de bouclier
start_zombie_necronomicon(target, file)table entite, stringnilDemarrer le necronomicon sur la cible

Table d'entite vivante EliteMobs ELITEMOBS

Les tables d'entites creees dans les scripts de pouvoir EliteMobs (depuis context.boss, les donnees d'evenement, les callbacks de zone et les requetes de monde) utilisent une table d'entite vivante etendue avec des methodes supplementaires au-dela de l'Entite vivante globale. context.boss herite de toutes celles-ci.

Proprietes

ChampTypeDescription
namestringNom d'affichage de l'entite
uuidstringUUID de l'entite
entity_typestringNom du type d'entite
is_playerboolEst un joueur
is_monsterboolEst un monstre
is_eliteboolEst une entite EliteMobs
is_validboolL'entite existe toujours
healthdoubleSante actuelle (instantane)
maximum_healthdoubleSante maximale (instantane)
current_locationlocationPosition de l'entite (instantane)
game_modestringMode de jeu (joueurs uniquement)

Methodes

MethodeArgsRetourneDescription
is_alive()--boolSi l'entite est en vie (verification en direct)
is_ai_enabled()--boolSi l'IA est activee
is_frozen()--boolSi le boss est gele (CustomBossEntity uniquement)
is_on_ground()--boolSi l'entite est au sol
is_healing()--boolSi l'elite est en train de se soigner
get_location()--locationPosition actuelle (en direct)
get_eye_location()--locationPosition des yeux (en direct)
get_height()--doubleHauteur de l'entite
get_health()--doubleSante actuelle (en direct)
get_maximum_health()--doubleSante maximale (en direct)
get_velocity()--vectorVecteur de velocite actuel
deal_damage(amount)doublenilInfliger des degats generiques
deal_custom_damage(amount)doublenilInfliger des degats d'attaque de boss personnalise du boss du pouvoir
deal_damage_from_boss(amount)doublenilInfliger des degats attribues a l'entite boss du pouvoir
restore_health(amount)doublenilSoigner l'entite (utilise le soin EliteMobs si elite)
play_sound_at_entity(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilJouer un son a l'entite
play_sound_at_self(sound, volume?, pitch?)string (Sound), float?=1, float?=1nilJouer un son a l'entite (alias)
spawn_particle_at_self(particle, count?)string (Particle) ou table, int?=1nilFaire apparaitre des particules a l'entite
spawn_particles_at_location(loc, particle, count?)location, spec particule, int?=1nilFaire apparaitre des particules a un emplacement
teleport_to_location(location)locationnilTeleporter l'entite
set_velocity_vector(vector)vectornilDefinir la velocite
set_gravity(enabled)boolnilDefinir la gravite
apply_push_vector(vector, additive?, delay?)vector, bool?=false, int?=1nilAppliquer la velocite apres un delai. additive ajoute a la velocite existante
push_relative_to(location, force?, extraX?, extraY?, extraZ?)location, double?=1, double?=0, double?=0, double?=0nilPousser l'entite loin de l'emplacement
set_custom_name(name)stringnilDefinir le nom d'affichage personnalise. Supporte les codes couleur
reset_custom_name()--nilReinitialiser le nom au defaut EliteMobs
set_custom_name_visible(visible)boolnilBasculer la visibilite du nom
set_ai_enabled(enabled, duration?)bool, int?=0nilDefinir l'etat de l'IA. Retour auto apres la duree en ticks
set_awareness_enabled(enabled, duration?)bool, int?=0nilDefinir la conscience du mob. Retour auto apres la duree en ticks
face_direction_or_location(target)vector ou locationnilFaire face a une direction ou regarder vers un emplacement
play_model_animation(name)stringnilJouer une animation de modele FMM (necessite un modele FMM)
set_scale(scale, duration?)double, int?=0nilDefinir l'echelle de l'entite. Retour auto a 1.0 apres la duree en ticks
set_invulnerable(enabled, duration?)bool, int?=0nilRendre invulnerable. Retour auto apres la duree en ticks
set_healing(enabled)boolnilDefinir l'etat de soin de l'elite
navigate_to_location(location, speed?, force?, timeout?)location, double?=1, bool?=false, int?=0nilPathfinding vers un emplacement (CustomBossEntity uniquement)
add_tag(tag, ticks?)string, int?=0nilAjouter un tag, suppression auto apres les ticks
remove_tag(tag)stringnilSupprimer un tag
has_tag(tag)stringboolVerifier un tag
overlaps_box_at_location(center, halfX?, halfY?, halfZ?)location, double?=0.5, double?=halfX, double?=halfXboolSi la boite englobante de l'entite chevauche une boite a l'emplacement
remove_elite()--nilSupprimer via le pipeline de suppression EliteMobs
apply_potion_effect(type, duration, amplifier?)string (PotionEffectType), int, int?=0nilAppliquer un effet de potion
set_equipment(slot, material, options?)string (EquipmentSlot), string (Material), tablenilDefinir l'objet d'un slot d'equipement
set_fire_ticks(ticks)intnilDefinir les ticks de feu
add_visual_freeze_ticks(ticks?)int?=1nilAjouter des ticks visuels de gel
place_temporary_block(material, ticks?, visual?)string (Material), int?=0, bool?=falsenilPlacer un bloc temporaire a l'emplacement de l'entite

Options de set_equipment

OptionTypeDefautDescription
unbreakableboolfalseRendre l'objet incassable
enchantmentstable--Tableau de tables {type = "ENCHANT_NAME", level = 1}

Methodes de joueur EliteMobs

Les joueurs dans les scripts EliteMobs ont toutes les methodes d'entite vivante EliteMobs plus :

MethodeArgsRetourneDescription
send_message(text)stringnilEnvoyer un message de chat. Supporte les codes couleur
show_action_bar(text)stringnilAfficher du texte en barre d'action. Supporte les codes couleur
show_title(title, subtitle?, fadeIn?, stay?, fadeOut?)string, string?="", int?=10, int?=40, int?=10nilAfficher l'ecran titre. Supporte les codes couleur
show_boss_bar(title, color?, style?, duration?)string, string (BarColor)?=WHITE, string (BarStyle)?=SOLID, int?=40nilAfficher la barre de boss. Se masque apres la duree en ticks. Supporte les codes couleur
run_command(command)stringnilExecuter une commande en tant que joueur

Table de reference d'entite EliteMobs

Les entites non vivantes (projectiles, blocs en chute, feux d'artifice) retournees par les methodes d'apparition EliteMobs obtiennent une table de reference legere :

Champ / MethodeArgsRetourneDescription
name--stringNom de l'entite
uuid--stringUUID de l'entite
entity_type--stringNom du type d'entite
is_player--boolToujours false
is_elite--boolToujours false
is_valid()--boolSi l'entite est toujours valide (verification en direct)
current_location--locationPosition (instantane)
get_location()--locationPosition actuelle (en direct)
get_velocity()--vectorVecteur de velocite actuel
is_on_ground()--boolSi l'entite est au sol
teleport_to_location(location)locationnilTeleporter l'entite
set_velocity_vector(vector)vectornilDefinir la velocite
set_direction_vector(vector)vectornilDefinir la direction (boules de feu uniquement)
set_yield(amount)doublenilDefinir le rendement de la boule de feu
set_gravity(enabled)boolnilDefinir la gravite
detonate()--nilDetoner le feu d'artifice
remove()--nilSupprimer l'entite
unregister(reason?)string?=OTHERnilDesenregistrer du tracker d'entites EliteMobs

context.players ELITEMOBS

Table de requete de joueurs disponible dans les scripts de pouvoir EliteMobs. Fournit des methodes utilitaires pour trouver des joueurs par rapport au boss.

MethodeArgsRetourneDescription
current_target()--player ou nilActeur de l'evenement si joueur, ou cible actuelle du mob si joueur
nearby_players(radius)doubletableTableau de tables de joueurs dans le rayon autour du boss
all_players_in_world()--tableTableau de toutes les tables de joueurs dans le monde du boss

context.entities ELITEMOBS

Table de requete d'entites disponible dans les scripts de pouvoir EliteMobs. Fournit des methodes utilitaires pour trouver des entites par rapport au boss. Toutes les requetes excluent le boss lui-meme.

MethodeArgsRetourneDescription
get_nearby_entities(radius, filter?)double, string?="living"tableEntites dans le rayon. Filtre : "living", "all", "entities"
get_entities_in_box(center, halfX, halfY, halfZ, filter?)location, double, double, double, string?="living"tableEntites a l'interieur d'une boite alignee sur les axes
get_all_entities(filter?)string?="living"tableToutes les entites dans le monde du boss
get_direct_target_entity()--entity ou nilEntite cible directe de l'evenement declencheur
get_boss_spawn_location()--locationL'emplacement d'apparition original du boss

context.vectors ELITEMOBS

Utilitaires de calcul vectoriel disponibles dans les scripts de pouvoir EliteMobs.

MethodeArgsRetourneDescription
get_vector_between_locations(from, to, options?)location, location, tablevectorVecteur de la source a la destination. Les options peuvent modifier le resultat
rotate_vector(vector, pitch?, yaw?)vector, double?=0, double?=0vectorPivoter le vecteur par pitch et yaw (degres)
normalize_vector(vector)vectorvectorNormaliser a une longueur unitaire

context.cooldowns GLOBAL

Gestion des temps de recharge. Les temps de recharge locaux sont par instance de script ; les temps de recharge globaux sont partages entre tous les scripts sur la meme entite/proprietaire. Si aucune cle n'est fournie, la valeur par defaut est le nom de fichier du script.

MethodeArgsRetourneDescription
local_ready(key?)string (optionnel)boolSi le temps de recharge local a expire
local_remaining(key?)string (optionnel)intTicks restants sur le temps de recharge local (0 si pret)
check_local(key?, duration)string (optionnel), intboolSi pret, demarre le temps de recharge et retourne true ; sinon false
set_local(duration, key?)long, string (optionnel)nilDefinir le temps de recharge local pour une duree en ticks
global_ready()boolSi le temps de recharge global a expire
set_global(duration)longnilDefinir le temps de recharge global pour une duree en ticks

Dans les scripts de pouvoir EliteMobs, les temps de recharge locaux sont partages entre tous les pouvoirs sur la meme entite boss, et les temps de recharge globaux utilisent le systeme de temps de recharge de pouvoir integre du boss.


context.scheduler GLOBAL

Planification de taches. Toutes les taches sont automatiquement annulees lorsque le script s'arrete.

Variante globale (Magmacore)

MethodeArgsRetourneDescription
run_later(ticks, callback)int, functionintExecuter le callback apres un nombre de ticks. Retourne l'ID de la tache
run_repeating(delay, interval, callback)int, int, functionintExecuter le callback a chaque intervalle de ticks apres le delai initial. Retourne l'ID de la tache
cancel(taskId)intnilAnnuler une tache planifiee

Variante EliteMobs

MethodeArgsRetourneDescription
run_after(ticks, callback)int, functionintExecuter le callback apres un nombre de ticks. Retourne l'ID de la tache
run_every(ticks, callback)int, functionintExecuter le callback tous les N ticks. Retourne l'ID de la tache
cancel_task(taskId)intnilAnnuler une tache planifiee

context.log GLOBAL

Utilitaires de journalisation pour le debogage des scripts.

MethodeArgsRetourneDescription
info(message)stringnilJournaliser un message d'information
warn(message)stringnilJournaliser un message d'avertissement
error(message)stringnilJournaliser un message d'erreur/avertissement
debug(message)stringnilJournaliser un message de debogage (apparait comme info avec prefixe debug)

context.zones GLOBAL

Creation et surveillance de zones. Disponible dans tous les types de scripts.

Variante globale (Magmacore)

MethodeArgsRetourneDescription
create_sphere(x, y, z, radius)num, num, num, numintCreer une zone sphere, retourne un identifiant
create_cylinder(x, y, z, radius, height)num, num, num, num, numintCreer une zone cylindre, retourne un identifiant
create_cuboid(x, y, z, xSize, ySize, zSize)num, num, num, num, num, numintCreer une zone cuboide, retourne un identifiant
watch(handle, on_enter?, on_leave?)int, function, functionboolCommencer a suivre les evenements d'entree/sortie des joueurs pour la zone
unwatch(handle)intnilArreter le suivi de la zone

Variante EliteMobs

MethodeArgsRetourneDescription
get_entities_in_zone(zone, options?)zone table, tabletableObtenir les entites dans la zone. Options : filter, mode
get_locations_in_zone(zone, options?)zone table, tabletableObtenir les emplacements dans la zone. Options : coverage, mode
zone_contains(zone, location, mode?)zone table, location, string?="full"boolSi l'emplacement est dans la zone ("full" ou "border")
watch_zone(zone, callbacks, mode?)zone table, table, string?="full"intSurveiller la zone pour les entrees/sorties. Callbacks : {on_enter = fn, on_leave = fn}

context.event GLOBAL

Table de donnees d'evenement pour le hook qui a declenche l'execution actuelle du script. Present uniquement lors des hooks pilotes par evenements (pas sur on_tick).

Variante globale (Magmacore)

Champ / MethodeTypeDescription
is_cancelledboolSi l'evenement est actuellement annule
cancel()methodAnnuler l'evenement
uncancel()methodRetablir l'evenement
playerentity tableJoueur implique dans l'evenement (le cas echeant)

Pour la table d'evenement EliteMobs (qui fournit les montants de degats, les causes de degats, etc.), voir Table d'evenement EliteMobs.


context.script ELITEMOBS

Pont vers le systeme Elite Script d'EliteMobs. Permet aux pouvoirs Lua d'utiliser les systemes de ciblage, de zone et de vecteur relatif bases sur YAML via des tables Lua avec les memes noms de champs que les configurations YAML d'Elite Script.

Methodes

MethodeArgsRetourneDescription
target(spec)tabletarget handleCreer un identifiant de cible a partir d'une table de specification de cible Elite Script
zone(spec)tablezone handleCreer un identifiant de zone a partir d'une table de specification de zone Elite Script
relative_vector(spec, location?, zone?)table, location, zone handlevector handleCreer un vecteur relatif a partir d'une specification de vecteur Elite Script
damage(target, amount?, multiplier?)target handle, double?=0, double?=1nilInfliger des degats a toutes les entites dans la cible
push(target, vector, additive?)target handle, vector ou vector handle, bool?=falsenilPousser les entites cibles avec une velocite
set_facing(target, vector)target handle, vector ou vector handlenilDefinir la direction de regard des entites cibles
spawn_particles(target, particles)target handle, table ou stringnilFaire apparaitre des particules aux emplacements cibles

Target Handle

Retourne par context.script:target(spec). La table de specification utilise les memes cles que les configurations YAML de cible Elite Script (par ex., {targetType = "NEARBY_PLAYERS", range = 20}).

MethodeArgsRetourneDescription
entities()tableTableau d'entites a la cible
locations()tableTableau d'emplacements a la cible
first_entity()entity ou nilPremiere entite a la cible
first_location()location ou nilPremier emplacement a la cible

Zone Handle

Retourne par context.script:zone(spec). La table de specification utilise les memes cles que les configurations YAML de zone Elite Script (par ex., {shape = "SPHERE", radius = 5, target = {targetType = "SELF"}}).

MethodeArgsRetourneDescription
full_target(coverage?)numbertarget handleIdentifiant de cible pour les emplacements interieurs de la zone
border_target(coverage?)numbertarget handleIdentifiant de cible pour les emplacements de bordure de la zone
full_locations(coverage?)numbertableTableau des emplacements interieurs
border_locations(coverage?)numbertableTableau des emplacements de bordure
full_entities()tableEntites a l'interieur de la zone
border_entities()tableEntites sur la bordure de la zone
contains(location, mode?)location, string?="full"boolSi l'emplacement est dans la zone
watch(callbacks, mode?)table, string?="full"intSurveiller les entrees/sorties. Retourne l'ID de la tache

Vector Handle

Retourne par context.script:relative_vector(spec). La table de specification utilise les memes cles que les configurations YAML de vecteur relatif Elite Script.

MethodeArgsRetourneDescription
resolve()vectorCalculer le vecteur pour le contexte actuel

context.world (EliteMobs) ELITEMOBS

Table de monde etendue pour les scripts de pouvoir EliteMobs. Ajoute l'apparition specifique aux boss, les verifications de blocs et les effets par-dessus la table de monde globale.

Requetes de blocs

MethodeArgsRetourneDescription
get_block_type_at_location(loc)locationstring ou nilNom de Material
get_highest_block_y_at_location(loc)locationint ou nilY du bloc le plus haut
get_blast_resistance_at_location(loc)locationdoubleValeur de resistance a l'explosion
is_air_at_location(loc)locationboolLe bloc est de l'air
is_passable_at_location(loc)locationboolLe bloc est traversable
is_passthrough_at_location(loc)locationboolLe bloc n'est pas solide
is_on_floor_at_location(loc)locationboolAir avec un bloc solide en dessous
is_standing_on_material(loc, material)location, string (Material)boolLe bloc en dessous correspond au materiau

Manipulation de blocs

MethodeArgsRetourneDescription
set_block_at_location(loc, material, visual?)location, string (Material), bool?=falsenilPlacer un bloc. visual=true pour un faux bloc
place_temporary_block_at_location(loc, material, ticks?, visual?)location, string, int?=0, bool?=falsenilPlacer un bloc, suppression auto apres les ticks

Apparition

MethodeArgsRetourneDescription
spawn_boss_at_location(file, loc?, level?)string, location?=loc boss, int?=niveau bossentity ou nilFaire apparaitre un boss personnalise
spawn_custom_boss_at_location(file, loc, options?)string, location, tableentity ou nilFaire apparaitre un boss avec options (level, silent, add_as_reinforcement, velocity)
spawn_entity_at_location(type, loc, options?)string (EntityType), location, tableentityFaire apparaitre une entite vanilla avec options (velocity, duration, effect, on_land, max_ticks)
spawn_falling_block_at_location(loc, material, options?)location, string (Material), tableentityFaire apparaitre un bloc en chute (drop_item, hurt_entities, velocity, on_land)
spawn_reinforcement_at_location(file, loc, level?, velocity?)string, location, int?=0, vectorentity ou nilFaire apparaitre un renfort lie au boss
spawn_fireworks_at_location(loc, config)location, tableentity ou nilFaire apparaitre un feu d'artifice
spawn_splash_potion_at_location(loc, config)location, tableentity ou nilFaire apparaitre une potion de lancer

Effets et utilitaires

MethodeArgsRetourneDescription
play_sound_at_location(loc, sound, volume?, pitch?)location, string (Sound), float?=1, float?=1nilJouer un son
spawn_particle_at_location(loc, particle, count?)location, string (Particle) ou table, int?=1nilFaire apparaitre des particules
strike_lightning_at_location(loc)locationnilFaire tomber la foudre (contourne la protection EM)
run_empowered_lightning_task_at_location(loc)locationnilEffet de foudre amplifiee
generate_fake_explosion(locations, center?)table de locations, locationnilExplosion visuelle sans degats
spawn_fake_gold_nugget_at_location(loc, velocity, gravity?)location, vector, bool?=falsefaux projectileFaire apparaitre un projectile visuel de pepite d'or
run_fake_gold_nugget_damage(projectiles)tablenilExecuter la verification de degats sur les faux projectiles
set_world_time(time) or (loc, time)long, ou location + longnilDefinir l'heure du monde
set_world_weather(weather, duration?) or (loc, weather, duration?)string (CLEAR, RAIN, PRECIPITATION, THUNDER), int?=6000nilDefinir la meteo
run_console_command(command)stringnilExecuter une commande console
generate_player_loot(level?)int?=1nilGenerer du butin pour les attaquants
drop_bonus_coins(multiplier?)double?=2nilLacher des pieces bonus au boss

context.settings (EliteMobs)

MethodeArgsRetourneDescription
warning_visual_effects_enabled()--boolSi les effets visuels d'avertissement sont actives dans la config

Table d'evenement EliteMobs

La table context.event est passee aux hooks de degats et d'apparition. Les champs varient selon le type d'evenement.

Champ / MethodeTypePresent quandDescription
damage_amountdoubleEvenements de degatsMontant de degats brut
damage_causestringEvenements de degatsNom de DamageCause
damagertable entiteEvenements de degats par entiteEntite ayant inflige les degats
projectiletable entiteEvenements de degats par projectileProjectile ayant inflige les degats
spawn_reasonstringEvenement d'apparitionNom de la raison d'apparition
entitytable entiteEvenements de mort/zoneEntite concernee
cancel_event()methodeLa plupart des evenementsAnnuler l'evenement
set_damage_amount(amount)methode (double)Evenements de degatsRemplacer le montant de degats
multiply_damage_amount(multiplier)methode (double)Evenements de degatsMultiplier les degats actuels

context.item FMM

Accessible dans les scripts d'objets FMM. Resout l'objet scripte specifique a partir des slots equipes du joueur via le tag PDC.

Proprietes

ChampTypeDescription
idstringIdentifiant de script de l'objet

Methodes

MethodeArgsRetourneDescription
material()--stringNom de Material
get_amount()--intTaille de la pile
set_amount(n)intnilDefinir la taille de la pile
consume(n?)int?=1nilDecrementer la quantite de n, supprimer si zero
get_uses()--intCompteur d'utilisation stocke en PDC
set_uses(n)intnilDefinir le compteur d'utilisation PDC
get_durability()--table ou nilRetourne les champs current et max, ou nil si pas de barre de durabilite
get_durability_percentage()--number ou nilFraction restante 0.0--1.0, ou nil
use_durability(amount, can_break?)int, bool?=falsenilReduire la durabilite d'un montant fixe. Si false, bloque a 1 restant
use_durability_percentage(fraction, can_break?)number, bool?=falsenilReduire la durabilite d'une fraction du max (0.0--1.0)
get_name()--string ou nilNom d'affichage
set_name(s)stringnilDefinir le nom d'affichage. Supporte les codes couleur
get_lore()--tableTableau de strings de description
set_lore(table)tablenilDefinir la description depuis un tableau de strings

context.prop FMM

Accessible dans les scripts de prop FMM. Herite de tous les champs Entite du support d'armure sous-jacent.

Proprietes

ChampTypeDescription
model_idstringNom du modele du blueprint
current_locationlocationPosition actuelle du prop

Methodes

MethodeArgsRetourneDescription
play_animation(name, blend?, loop?)string, bool?=true, bool?=trueboolJouer une animation nommee
stop_animation()--nilArreter toutes les animations en cours
hurt_visual()--nilFlash de teinte rouge, sans degats
pickup()--nilSupprimer le prop et lacher l'objet de placement
has_mount_points()--boolSi le prop a des os de point de montage
mount(player)table entiteboolMonter le joueur sur le premier siege disponible
dismount(player)table entiteboolDemonter le joueur
get_passengers()--tableTableau de tables d'entites pour les joueurs montes
spawn_elitemobs_boss(file, x, y, z)string, num, num, numentity ou nilFaire apparaitre un boss EliteMobs (necessite EliteMobs)
open_inventory(player, title, rows?)table entite, string, int?=3boolOuvrir un inventaire coffre persistant (1--6 rangees). Le titre supporte les codes couleur
place_book(player)table entiteboolStocker le livre ecrit tenu par le joueur sur le prop
read_book(player)table entiteboolOuvrir le livre stocke pour la lecture
take_book(player)table entiteboolRendre le livre stocke au joueur
has_book()--boolSi un livre est stocke
drop_inventory()--boolLacher tous les objets stockes et vider
drop_book()--boolLacher le livre stocke et vider
is_viewing_inventory(player)table entiteboolSi le joueur a l'inventaire de ce prop ouvert
set_persistent_data(key, value)string, stringboolStocker un string dans le PDC du prop
get_persistent_data(key)stringstring ou nilRecuperer un string depuis le PDC du prop

Codes couleur

Toutes les methodes marquees comme supportant les codes couleur utilisent le ChatColorConverter de Magmacore. Ces formats peuvent etre melanges librement dans n'importe quel string :

Codes heritage

Utilisez & suivi d'un caractere de couleur/format :

CodeCouleurCodeFormat
&0Noir&lGras
&1Bleu fonce&mBarre
&2Vert fonce&nSouligne
&3Cyan fonce&oItalique
&4Rouge fonce&rReinitialiser
&5Violet fonce
&6Or
&7Gris
&8Gris fonce
&9Bleu
&aVert
&bCyan
&cRouge
&dViolet clair
&eJaune
&fBlanc

Couleurs hexadecimales

Couleur RGB exacte en hexadecimal a 6 chiffres :

&#FF5500          -- ampersand prefix
<#FF5500> -- tag syntax

Degrades

Interpolation fluide entre deux couleurs ou plus a travers le texte :

<gradient:#FF0000:#0000FF>This text fades red to blue</gradient>
<g:#FF0000:#00FF00:#0000FF>Three-color gradient</g>

La forme courte g fonctionne de maniere identique a gradient. Vous pouvez chainer autant de points de couleur que vous le souhaitez.

Arc-en-ciel

Cycle a travers le spectre de teinte complet. Saturation optionnelle (0--100) :

<rainbow>Full rainbow text</rainbow>
<r:50>Pastel rainbow (50% saturation)</r>

Types communs

location

{ x = number, y = number, z = number, yaw = number, pitch = number, world = string }

vector

{ x = number, y = number, z = number }

table d'entite

Toute table avec un champ uuid. Les tables de joueur et d'entite du contexte fonctionnent directement :

context.player                              -- valid entity table
context.world:get_nearby_entities(x,y,z,r) -- returns array of entity tables