mount — Monture & Élevage¶
API monture MoonBot Lua : équiper la monture, gérer l'élevage, fécondations.
66 fonctions dans ce namespace.
Index¶
Convention et confirmationsmount.getStatemount.getMountDataDescripteur completmount.isRiding / hasMountmount.toggleRidingmount.setXpRatio / setXpSharemount.getXpRatioInfos monturemount.getMountModelmount.getMountSexmount.getMountXpMinmount.getMountXpMaxmount.getMountEnergyMaxmount.getMountSerenityMinmount.getMountSerenityMaxmount.getMountStaminaMaxmount.getMountLoveMaxmount.getMountMaturityMaxmount.getMountPodsMaxmount.getMountFatiguemount.getMountFatigueMaxmount.getMountReproductionsmount.getMountReproductionsMaxmount.getMountGestationmount.getMountPodsmount.getMountFecondationmount.isMountablemount.isWildmount.isFecondablemount.getAncestorsmount.getCapacitiesmount.getEffectsmount.feedmount.renamemount.castratemount.releasemount.inspectCertificatemount.inspectmount.inspectPaddockMountmount.getInspectedMountmount.openInventorymount.isInventoryOpenmount.closeInventorymount.putItemmount.getItemmount.putItemByUidmount.getItemByUidmount.inventoryItemsmount.inventoryItemQuantitymount.getSoulStonesmount.openPaddockmount.isPaddockOpenmount.waitPaddockOpenmount.leavePaddockmount.stableMountsmount.paddockMountsmount.findInStablemount.stableToPaddockmount.paddockToStablemount.stableToEquipmount.equipToStablemount.certifymount.uncertifymount.certificatesExemple — lire les dragodindes
Référence¶
Convention et confirmations¶
Les deux syntaxes sont acceptees pour toutes les fonctions. UID, quantites, pourcentages et delais exigent des entiers exacts : une valeur decimale provoque une erreur Lua interceptable par pcall avant tout envoi, sans troncature. Les lectures sont des instantanes serveur : aucune action ne modifie optimistement la monture. Les actions retournent true a la mise en file, false si leurs preconditions locales echouent ; true ne confirme pas leur acceptation par le jeu. Seules openInventory/openPaddock/waitPaddockOpen attendent un etat confirme. Les actions de fiche et d'inventaire de monture sont reverifiees par le moteur avec l'UID attendu ; leavePaddock reverifie le contexte. Les transferts historiques entre etable, enclos, equipement et certificats verifient le contexte a l'appel Lua seulement, puis envoient leur UID explicite. Documentation detaillee : docs/enclos-dragodindes.md.
mount.getState¶
returns table
Etat complet : {has_mount, mount_id, name, level, model, xp_share, is_riding, pods, details, inspected, last_error, ...}. details est le descripteur complet de la monture equipee, inspected la derniere consultation Rd ; chacun vaut nil si absent. inspection_actor_id est la cible locale d'une consultation Rp et inspection_request_id un identifiant local d'interface, pas des accuses du protocole serveur. pods est la charge courante confirmee par le serveur. xp_share ne change qu'a la confirmation Rx. last_error est la derniere erreur de validation moteur ou le dernier refus monture du serveur (ReE, aliment refuse Im190, ouverture du stockage refusee ERE/ECE), nil sinon ; il est efface a la prochaine demande validee ou confirmation.
mount.getMountData¶
returns table | nil
Sans UID, descripteur de la monture equipee. Avec UID, recherche dans l'equipement puis les listes de l'enclos actuellement ouvert et enfin la derniere consultation. Retourne nil si inconnu. Meme structure complete que stableMounts/paddockMounts, sans envoyer de paquet ni equiper la monture.
Descripteur complet¶
returns table
Identite : uid, name, level, sex (0 male, 1 femelle), model (nombre), color (modele en chaine, compatibilite). Progression : xp, xp_min, xp_max (-1 au niveau maximal) ; energy/energy_max, maturity/maturity_max, stamina/stamina_max, love/love_max, serenity/serenity_min/serenity_max, tired/tired_max. Elevage : new_born (naissance Ee~ dans la fenetre d'etable), wild, mountable, fecondable, fecondation (duree serveur en heures, -1 sans gestation), reprod (-1 castree), reprod_max. Autres : pods_max, ancestors (modeles, positions conservees, 0 inconnu), capacities (IDs officiels), effects (effets hexadecimaux bruts), raw (descripteur complet). fecondable et mountable viennent du serveur ; ne pas les recalculer a partir des jauges.
mount.isRiding / hasMount¶
returns boolean
isRiding indique la chevauchee confirmee ; hasMount la presence d'une monture equipee. L'etable, l'enclos, les certificats et la consultation sont des emplacements distincts.
mount.toggleRiding¶
returns boolean
Demande de monter ou descendre la monture equipee. Le moteur verifie l'UID equipe et les conditions locales ; relire isRiding pour la confirmation.
mount.setXpRatio / setXpShare¶
returns boolean
Part d'XP donnee a la monture equipee : entier de 0 a 90 inclus. setXpShare est un alias. La valeur locale ne change qu'a la reponse serveur Rx ; relire getXpRatio.
mount.getXpRatio¶
returns number
Part d'XP confirmee par le serveur (0..90), initialisee a 0 avant la premiere annonce. Cette fonction ne retourne plus une constante factice.
Infos monture¶
mount.getMountName() / getMountLevel() / getMountXp() / getMountEnergy() / getMountSerenity() / getMountStamina() / getMountLove() / getMountMaturity() / getMountId()
returns string / number
Getters historiques de la monture equipee. getMountName retourne une chaine ; les autres un nombre. getMountId vaut 0 sans monture. Les montures consultees ne remplacent pas ces valeurs.
mount.getMountModel¶
returns number | nil
Lit model du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountSex¶
returns number | nil
Lit sex du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountXpMin¶
returns number | nil
Lit xp_min du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountXpMax¶
returns number | nil
Lit xp_max du descripteur, en conservant -1 au niveau maximal : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountEnergyMax¶
returns number | nil
Lit energy_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountSerenityMin¶
returns number | nil
Lit serenity_min du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountSerenityMax¶
returns number | nil
Lit serenity_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountStaminaMax¶
returns number | nil
Lit stamina_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountLoveMax¶
returns number | nil
Lit love_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountMaturityMax¶
returns number | nil
Lit maturity_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountPodsMax¶
returns number | nil
Lit pods_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountFatigue¶
returns number | nil
Lit tired du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountFatigueMax¶
returns number | nil
Lit tired_max du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountReproductions¶
returns number | nil
Lit reprod du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountReproductionsMax¶
returns number | nil
Lit reprod_max du descripteur, y compris une borne negative (jauge desactivee dans le client, sans garantie de reproductions illimitees) : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountGestation¶
returns number | nil
Lit fecondation du descripteur : monture equipee par defaut ou UID connu de getMountData. Retourne nil si la monture est inconnue. getMountGestation est la duree serveur en heures (-1 sans gestation) ; getMountReproductions vaut -1 pour une monture castree.
mount.getMountPods¶
returns number
Pods actuellement transportes par la monture equipee, confirmes par le serveur. Le maximum est disponible via getMountPodsMax ; les pods ne sont pas calcules depuis les quantites d'objets.
mount.getMountFecondation¶
returns boolean
Compatibilite : true si la gestation annoncee pour la monture equipee est strictement positive. Pour la valeur numerique serveur utiliser getMountGestation ; pour l'aptitude a se reproduire utiliser isFecondable.
mount.isMountable¶
returns boolean | nil
Valeur serveur mountable. Sans UID : monture equipee ; avec UID : monture connue de getMountData ; nil si inconnue.
mount.isWild¶
returns boolean | nil
Valeur serveur wild. Sans UID : monture equipee ; avec UID : monture connue de getMountData ; nil si inconnue.
mount.isFecondable¶
returns boolean | nil
Valeur serveur fecondable. Sans UID : monture equipee ; avec UID : monture connue de getMountData ; nil si inconnue.
mount.getAncestors¶
returns table | nil
IDs de modeles des 14 ancetres : indices Lua 1-2 parents, 3-6 grands-parents, 7-14 arriere-grands-parents ; positions inconnues conservees avec 0. Il s'agit de modeles, pas d'UID de montures. L'interface officielle ajoute le modele de la monture comme quinzieme noeud. nil si inconnue.
mount.getCapacities¶
returns table | nil
Liste des IDs de capacites speciales du descripteur, sans les valeurs nulles du protocole. nil si inconnue. Les labels d'affichage ne remplacent pas les IDs dans les scripts.
mount.getEffects¶
returns string | nil
Effets de la monture au format officiel hexadecimal, separes par virgules et #. Ce sont les bonus de la DD ; les capacites speciales se lisent avec getCapacities. nil si inconnue.
mount.feed¶
returns boolean
Nourrit la monture equipee en deplacant quantity objets (1 par defaut) sur son emplacement officiel 16 : OM{uid}|16|{quantity}. L'UID est celui d'un aliment dans l'inventaire personnage, pas un templateId. Candidat de super-type 6 (consommable) ou 9 (ressource), quantite positive dans le stock disponible ; la famille ne garantit pas l'acceptation comme aliment. Les familiers (super-type 12) ne sont pas des candidats de feed. Les changements d'energie et de quantite attendent le serveur.
mount.rename¶
returns boolean
Demande le renommage de la monture equipee. Nom de 1 a 16 lettres ASCII (A-Z, a-z), comme le client officiel ; sans espace, accent, chiffre ni ponctuation. Aucune mise a jour optimiste. Relire getMountName apres la reponse Rn.
mount.castrate¶
returns boolean
Castration definitive de la monture equipee (Rc). L'appel exige explicitement son UID attendu, verifie a l'appel puis par le moteur. Ne pas appeler sur une simple inspection. Le retour true indique seulement la mise en file ; la confirmation se lit dans reprod (-1).
mount.release¶
returns boolean
Libere definitivement la monture equipee (Rf). L'UID attendu est obligatoire et doit toujours etre equipe au traitement. Le retour true indique la mise en file, pas le succes ; relire hasMount apres la reponse du serveur.
mount.inspectCertificate¶
returns boolean
Consulte un certificat de type 97 actuellement dans l'inventaire. Extrait les deux valeurs de l'effet 995 puis envoie Rd. Utiliser l'UID de l'objet certificat. Retourne false si absent ou sans donnees valides. Lire getInspectedMount apres la reponse ; cette consultation ne modifie pas l'equipement.
mount.inspect¶
returns boolean
Forme explicite de consultation Rd. Utiliser cert.mountUid et cert.validity provenant du meme certificat ; inspectCertificate(cert.uid) est preferable. validity est la seconde valeur de l'effet 995 convertie en chaine decimale. La lecture est asynchrone.
mount.inspectPaddockMount¶
returns boolean
Consulte une monture visible sur la carte via Rp{actorId}. actorId est un entier signe, souvent negatif, identifiant un acteur monture actuellement present ; pas l'UID persistant de la dragodinde ni un UID de certificat. Refuse PNJ et acteurs absents. Le serveur controle les droits. true indique seulement la mise en file ; lire getInspectedMount a la reponse Rd. Son UID persistant est different de actorId ; ne pas comparer ces identifiants. Un ancien resultat ne prouve pas une nouvelle reponse et aucun accuse individuel n'est fourni.
mount.getInspectedMount¶
returns table | nil
Dernier descripteur recu dans Rd, independant de la monture equipee. nil avant une consultation. Une valeur presente peut preceder votre demande : verifier son UID et ne pas considerer un ancien instantane comme preuve de rafraichissement.
mount.openInventory¶
returns boolean
Ouvre le stockage de la monture equipee (ER15), attend l'etat confirme avec son contexte pendant 10 s maximum. true immediatement si deja ouvert ; false si demande invalide, delai depasse ou monture equipee changee pendant l'attente. L'inventaire d'une nouvelle monture ne confirme pas l'ancienne demande. Les objets arrivent par leurs notifications serveur.
mount.isInventoryOpen¶
returns boolean
True uniquement pendant un echange actif de type 15 avec son contexte confirme. Evite de confondre inventaire de monture, banque et autres stockages.
mount.closeInventory¶
returns boolean
Demande la fermeture du stockage actif de la monture (EV). Verifie le type et le contexte de l'echange ; retourne false pour une banque ou un autre echange.
mount.putItem¶
returns boolean
Depose qty objets, quantite entiere positive, dans le stockage de la DD actuellement ouvert. Resout une pile par templateId disposant de la quantite suffisante. Le delai optionnel est en millisecondes ; l'UID de la monture et le contexte sont captures avant ce delai. true indique une mise en file. Pour choisir une pile et ses effets precisement, utiliser la variante ByUid.
mount.getItem¶
returns boolean
Retire qty objets, quantite entiere positive, dans le stockage de la DD actuellement ouvert. Resout une pile par templateId disposant de la quantite suffisante. Le delai optionnel est en millisecondes ; l'UID de la monture et le contexte sont captures avant ce delai. true indique une mise en file. Pour choisir une pile et ses effets precisement, utiliser la variante ByUid.
mount.putItemByUid¶
returns boolean
Depose une pile precise par UID, avec quantite positive. L'inventaire de la monture doit etre ouvert et le contexte toujours identique lors du traitement moteur. Les inventaires sont actualises uniquement a la reponse serveur.
mount.getItemByUid¶
returns boolean
Retire une pile precise par UID, avec quantite positive. L'inventaire de la monture doit etre ouvert et le contexte toujours identique lors du traitement moteur. Les inventaires sont actualises uniquement a la reponse serveur.
mount.inventoryItems¶
returns table
Objets du stockage actif de la DD : {id, uid, quantity, name, effects}. Retourne une liste vide en dehors d'un echange de type 15, jamais les objets d'une banque.
mount.inventoryItemQuantity¶
returns number
Somme des quantites de ce template dans le stockage de monture ouvert ; 0 si l'inventaire de la DD est ferme.
mount.getSoulStones¶
returns table of {uid, templateId, name, quantity, location, total, monsters: table of {id, name, count}}
Pierres d'âme PLEINES presentes dans le stockage ouvert de la DD, avec les monstres captures ({id, name, count}) et leur total. Raccourci de inventory.getSoulStones("mount") ; location vaut toujours "mount". Liste vide (et avertissement dans le journal) si l'inventaire de la monture n'est pas ouvert. Combiner avec mount.getItemByUid(stone.uid, 1) pour ramener une pierre choisie dans le sac.
mount.openPaddock¶
returns boolean
Ouvre l'enclos de la carte via sa competence 175 et attend l'etat confirme (10 s maximum). true immediatement si deja ouvert ; false si aucun enclos ou delai depasse. Les listes initiales sont disponibles des l'ouverture, meme vides.
mount.isPaddockOpen¶
returns boolean
True si un enclos est actuellement ouvert (echange actif de type 16).
mount.waitPaddockOpen¶
returns boolean
Attend un etat actuel d'enclos ouvert (10000 ms par defaut). true immediatement si deja ouvert ; un ancien evenement d'ouverture ne suffit pas apres fermeture.
mount.leavePaddock¶
returns boolean
Demande de fermer l'enclos (EV). Retourne false si aucun enclos actif. Capture le contexte : le moteur refuse la fermeture si une autre fenetre ou une nouvelle ouverture d'enclos a remplace celle-ci avant l'envoi.
mount.stableMounts¶
returns table
Liste des descripteurs complets des montures en etable, initialisee a l'ouverture et actualisee par les notifications du serveur. Voir Descripteur complet. Vide si aucun enclos ouvert. La monture equipee est disponible via getMountData, les certificats via certificates.
mount.paddockMounts¶
returns table
Liste des descripteurs complets des montures posees dans l'enclos. Meme format que stableMounts. Vide si aucun enclos ouvert.
mount.findInStable¶
returns number | nil
Premier UID dont le nom correspond exactement, sans distinction de casse, dans l'etable de l'enclos ouvert ; nil sinon. En cas d'homonymes, choisir explicitement dans stableMounts.
mount.stableToPaddock¶
returns boolean
Place une monture presente en etable dans l'enclos (Efp). Necessite un enclos ouvert et une source presente ; true signifie mise en file, pas confirmation. Verifier source et destination avant l'action suivante.
mount.paddockToStable¶
returns boolean
Ramene une monture presente dans l'enclos vers l'etable (Efg). Necessite un enclos ouvert et une source presente ; true signifie mise en file, pas confirmation. Verifier source et destination avant l'action suivante.
mount.stableToEquip¶
returns boolean
Equipe une monture de l'etable (Erg) si aucune monture n'est deja equipee. Necessite un enclos ouvert et une source presente ; true signifie mise en file, pas confirmation. Verifier source et destination avant l'action suivante.
mount.equipToStable¶
returns boolean
Range la monture equipee dans l'etable (Erp avec son UID). Necessite un enclos ouvert et une source presente ; true signifie mise en file, pas confirmation. Verifier source et destination avant l'action suivante.
mount.certify¶
returns boolean
Transforme une monture de l'etable en certificat dans l'inventaire (Erc). Necessite un enclos ouvert et une source presente ; true signifie mise en file, pas confirmation. Verifier source et destination avant l'action suivante.
mount.uncertify¶
returns boolean
Deballe un certificat de type 97 vers l'etable (ErC). Utiliser l'UID de l'objet certificat. Necessite un enclos ouvert et une source presente ; true signifie mise en file, pas confirmation. Verifier source et destination avant l'action suivante.
mount.certificates¶
returns table
Objets de type officiel 97 dans l'inventaire : {uid, templateId, name, quantity, effects, mountUid?, validity?}. uid identifie l'objet pour uncertify/inspectCertificate ; mountUid et validity sont les deux valeurs de l'effet 995, validity en chaine decimale. Aucun filtrage par nom ou langue.
Exemple — lire les dragodindes¶
if not mount.openPaddock() then
error("Impossible d'ouvrir l'enclos")
end
for _, entry in ipairs(mount.stableMounts()) do
print("Etable : " .. entry.name .. " | UID " .. entry.uid .. " | niveau " .. entry.level)
end
for _, entry in ipairs(mount.paddockMounts()) do
print("Enclos : " .. entry.name .. " | UID " .. entry.uid)
end
for _, cert in ipairs(mount.certificates()) do
print("Certificat : " .. cert.name .. " | UID objet " .. cert.uid)
end
if mount.hasMount() then
print("Equipee : " .. mount.getMountName() .. " | UID " .. mount.getMountId())
end
Ouvre l'enclos puis affiche separement etable, enclos, certificats et monture equipee. Aucun transfert n'est demande. Les fonctions stableToPaddock/paddockToStable/stableToEquip/equipToStable/certify/uncertify retournent apres mise en file : leur delai interne ne garantit pas l'acceptation. Avant d'enchainer un transfert, verifier les listes source et destination avec une attente bornee. Guide : docs/enclos-dragodindes.md.