Aller au contenu

job — Métiers

API métiers MoonBot Lua : changer de métier, monter en niveau, configurer le farming.

4 fonctions dans ce namespace.

Index


Référence

job.list

job.list()

returns table

Copie des metiers connus, indexee a partir de 1, au meme format que bot.jobs() : {id, name, level, xp, xpNext, xpMin, xpCurrent, xpMax, xpTotal, skills, options}. xp/xpNext mesurent la progression dans le niveau ; xpMin/xpCurrent/xpMax sont les bornes et la valeur absolues recues. xpMax vaut nil sans prochain niveau ou avant reception des statistiques ; xpTotal est le champ supplementaire du serveur, nil s'il est absent. skills contient {id, param1, param2, param3, param4} pour chaque competence annoncee : quantites de recolte ou nombre d'ingredients selon le cas ; param4 indique la duree en ms pour une recolte ou le pourcentage de reussite pour un craft. param3/param4 peuvent etre nil ; un meme skillId peut apparaitre plusieurs fois avec des nombres d'ingredients differents. options vaut nil avant reception, sinon {flags, minSlots, notFree, freeIfFailed} : options de referencement artisan, minimum d'ingredients au moins egal a 2, payant et gratuit en cas d'echec. Ces options ne sont pas le paiement de l'atelier ouvert.


job.level

job.level(jobId: number)

-- Exemple : lire chaque metier et son niveau
for _, profession in ipairs(job.list()) do
  local jobId = profession.id
  print(profession.name .. ': niveau ' .. job.level(jobId))
  -- profession.skills contient les skillId utilises par craft.
end

returns number

Niveau connu du metier, ou 0 si le metier est absent ou ses statistiques pas encore recues. jobId est profession.id dans job.list(), pas l'id d'une competence de profession.skills. Par exemple, Cordomage a pour jobId 62 et peut annoncer la competence skillId 163 : job.level(62) lit son niveau ; craft.invitePlayer(...) et craft.requestPlayer(...) utilisent un skillId annonce pour l'atelier. Utiliser job.level(jobId) avec un point.


job.name

job.name(jobId: number)

returns string

Nom du metier connu ; s'il n'est pas appris, utilise le catalogue des metiers puis son libelle de secours. Un nom ne prouve donc pas que le personnage possede ce metier : consulter job.list(). jobId est un ID de metier, pas un skillId.


job.xp / xpNext / xpPercent

job.xp(jobId) / job.xpNext(jobId) / job.xpPercent(jobId)

returns number

xp retourne l'XP acquise depuis le debut du niveau ; xpNext retourne l'intervalle total d'XP du niveau, pas l'XP restante. xpPercent est le pourcentage entier calcule par xp * 100 / xpNext, ou 0 si xpNext vaut 0, notamment au niveau maximal. Les trois fonctions retournent 0 pour un metier absent. Pour l'XP absolue et les bornes serveur, lire xpCurrent, xpMin, xpMax et xpTotal dans job.list(). Ces fonctions attendent un jobId et s'appellent avec un point.