Aller au contenu

crusher — Brisage

crusher — Brisage

8 fonctions dans ce namespace.

Index


Référence

Utiliser le concasseur

crusher.fonction(...) / crusher:fonction(...)

Ouvrir d'abord le concasseur avec le trajet ou les fonctions map existantes. Le module agit uniquement dans un concasseur ouvert (competence 181), attend les confirmations et s'interrompt si la fenetre change ou si la connexion est perdue. Les deux syntaxes sont acceptees. Les appels craft/exchange historiques restent compatibles. Guide et exemple complet : docs/brisage.md.


crusher.isOpen

crusher.isOpen()

returns boolean

Indique si un concasseur est actuellement ouvert.


crusher.items

crusher.items()

returns table of {uid, id, quantity, name, effects}

Objets confirmes dans la selection du concasseur. id est le modele, uid identifie la pile exacte et effects contient ses jets bruts. Retourne une table vide lorsque le concasseur est ferme.


crusher.putItem / removeItem

crusher.putItem(templateId, quantity, timeoutMs?) / crusher.removeItem(templateId, quantity, timeoutMs?)

blocking · returns boolean, string?

Ajoute ou retire la quantite demandee par modele. Attend la quantite exacte confirmee dans la meme fenetre ; true signifie que cette confirmation a ete observee. La quantite doit tenir dans une seule pile disponible : ces fonctions ne repartissent pas la demande entre plusieurs UID. Pour choisir les jets de l'objet a briser, utiliser les variantes ByUid. quantity : entier de 1 a 2147483647 ; timeoutMs : entier de 1 a 300000 ms, 5000 ms par defaut. En cas d'echec, retourne false et une raison.


crusher.putItemByUid / removeItemByUid

crusher.putItemByUid(uid, quantity, timeoutMs?) / crusher.removeItemByUid(uid, quantity, timeoutMs?)

blocking · returns boolean, string?

Ajoute ou retire une quantite d'une pile precise, avec la meme attente et les memes limites que putItem/removeItem. Retrouver les UID et les jets dans inventory pour un depot, ou crusher.items() pour un retrait. Un UID designe l'exemplaire, pas son modele.


crusher.crush

crusher.crush(timeoutMs?: number)

blocking · returns {success, successes, total, resultItemId?} | nil, string?

Brise une seule fois les objets prepares et attend un nouveau resultat confirme dans le meme concasseur. timeoutMs : entier de 1 a 300000 ms, 30000 ms par defaut. success indique la reussite annoncee ; successes et total decrivent le resultat observe. resultItemId est le modele annonce par le serveur, s'il existe : il peut s'agir d'un fragment et ne garantit pas l'obtention directe de runes. Relire l'inventaire pour les objets effectivement obtenus. Retourne nil et une raison si l'action est indisponible ou interrompue. Ne configure aucune repetition et ne relance jamais automatiquement.


crusher.leave

crusher.leave(timeoutMs?: number)

blocking · returns boolean, string?

Ferme le concasseur et attend sa fermeture. timeoutMs : entier de 1 a 300000 ms, 5000 ms par defaut. Retourne false et une raison si la fermeture ne peut pas etre confirmee.


Exemple — briser une pile choisie

function briserPile(uid, quantity)
  assert(crusher.isOpen(), "Ouvrir le concasseur")
  assert(#crusher.items() == 0, "La selection doit etre vide")
  local ok, reason = crusher.putItemByUid(uid, quantity)
  assert(ok, reason)
  local result, errorReason = crusher.crush()
  assert(result, errorReason)
  assert(result.success, "Echec du brisage")
  local closed, closeReason = crusher.leave()
  assert(closed, closeReason)
  return result
end

Appeler avec l'UID et la quantite choisis dans l'inventaire. Le depot attend sa confirmation avant de lancer le brisage. En cas de timeout ou d'interruption, une operation peut avoir ete appliquee : relire la selection, l'inventaire et les journaux avant toute nouvelle tentative. Ne pas modifier la meme selection simultanement depuis l'interface ou un autre script.