exchange — Échanges & Banque¶
API échanges et banque MoonBot Lua : déposer/retirer banque, échange entre comptes, gestion des items.
16 fonctions dans ce namespace.
Index¶
exchange.putItem / getItemexchange.putKamas / getKamasexchange.putAllItemsexchange.putAllItemsExceptexchange.getAllItemsexchange.readyexchange.leaveexchange.accept / refuseBanqueEchange joueurexchange.openWithNpcexchange.waitForRequestexchange.getPendingRequestEtat echangeexchange.waitForValidationexchange.waitForClose
Référence¶
exchange.putItem / getItem¶
returns boolean
Depose/retire un item dans l'echange ou la banque. Ces appels restent compatibles avec le concasseur ; le module crusher propose des fonctions dediees au brisage qui attendent les quantites confirmees. Guide : docs/brisage.md.
exchange.putKamas / getKamas¶
returns boolean
En banque : demande un depot/retrait du montant indique. Fournir un entier positif, limite au solde disponible. true confirme la mise en file, pas le mouvement serveur : relire storageKamas() et character.kamas() avec une attente bornee avant d'enchainer. Ces fonctions ne retirent pas automatiquement tout avec 0. Pour les paiements d'atelier cooperatif, utiliser craft.setPayment. Guide : docs/banque-kamas.md.
exchange.putAllItems¶
returns boolean
Depose tous les items. Ne depose pas de kamas et ne confirme aucun mouvement de kamas.
exchange.putAllItemsExcept¶
returns boolean
Depose tout sauf les template IDs dans la table.
exchange.getAllItems¶
returns boolean
Retire tous les items. Ne retire pas de kamas et ne confirme aucun mouvement de kamas.
exchange.ready¶
returns boolean
Valide l'echange. Au concasseur (competence 181), lance le brisage des objets prepares, comme craft.combine(). Aucun craft.setQuantity() ni repetition n'est necessaire. true signifie demande mise en file ; preferer crusher.crush() pour attendre un nouveau resultat dans le concasseur courant. Guide : docs/brisage.md.
exchange.leave¶
returns boolean
Ferme l'echange.
exchange.accept / refuse¶
returns boolean
Accepte ou refuse une demande d'echange, y compris une invitation d'artisanat cooperatif. Consulter getPendingRequest() pour identifier le demandeur et le type.
Banque¶
returns table / number / number / number
storageItems()→table of {id: number, uid: number, quantity: number, name: string, type: number, superType: number, typeName: string, level: number, effects: string, jets: table}. Les jets du coffre ont le meme format que ceux de l'inventaire (voir « Jets d'un item » dans inventory). storageKamas()→number, solde du stockage courant actualise par le serveur, distinct des kamas du personnage et des offres d'echange. Remis a 0 a la fermeture et a la nouvelle ouverture ; 0 avant reception ne prouve pas que le chargement est termine. Le dernier contenu sauvegarde dans l'onglet Banque est un historique distinct. storageItemQuantity(templateId)→number (quantite d'un item). storageItemCount()→number (items uniques).
Echange joueur¶
blocking · returns boolean
Demande un echange avec un joueur.
exchange.openWithNpc¶
blocking · returns boolean
Lance un echange avec un PNJ (ER2). npcId -1 = PNJ en dialogue. Alias de npc.exchange().
exchange.waitForRequest¶
blocking · returns number
Attend une demande d'echange. Retourne l'ID du demandeur ou 0.
exchange.getPendingRequest¶
returns fromId: number, exchangeType: number | nil
Demande d'echange recue et pas encore acceptee/refusee. Retourne 0, nil s'il n'y en a pas. Type 1 : echange classique ; type 12 : l'expediteur invite comme artisan ; type 13 : l'expediteur demande les services de l'artisan destinataire. Version non bloquante de exchange.waitForRequest, pour repondre avec exchange.accept() ou exchange.refuse().
Etat echange¶
exchange.isActive() / myItems() / theirItems() / myKamas() / theirKamas() / myReady() / theirReady() / partnerId()
returns boolean / table / table / number / number / boolean / boolean / number
isActive()→boolean. myItems()/theirItems()→table of {uid, id, quantity, name}. myKamas()/theirKamas()→number. myReady()/theirReady()→boolean (pret a valider). partnerId()→number.
exchange.waitForValidation¶
blocking · returns boolean
Attend la validation de l'echange par le partenaire.
exchange.waitForClose¶
blocking · returns boolean
Attend la fermeture de l'echange. Timeout par defaut : 60 secondes.