exchange

Échanges, banque et stockage

Méthodes

putItem

Depose un objet specifique dans le stockage ou l'echange en cours. Recherche l'objet dans l'inventaire par son GID et envoie une demande de transfert au serveur. Attend la confirmation du serveur avant de continuer. Affiche un message d'erreur si l'objet n'est pas trouve dans l'inventaire.

Signature: exchange:putItem(objectGID, quantity)

Paramètres:

Nom
Type
Description

objectGID

number

L'ID general de l'objet (GID) - identifiant du type d'objet

quantity

number

Quantite a deposer

Exemple:

-- Deposer 50 bles (GID 289) dans la banque
exchange:putItem(289, 50)

-- Deposer plusieurs ressources
local ressources = {
    {gid = 289, qty = 100},  -- Ble
    {gid = 400, qty = 50},   -- Orge
    {gid = 533, qty = 25},   -- Chanvre
}
for _, res in ipairs(ressources) do
    exchange:putItem(res.gid, res.qty)
end

Note: Le script est suspendu jusqu'a confirmation du serveur. Si l'objet n'existe pas dans l'inventaire, un message d'erreur est affiche dans le chat du bot.


getItem

Recupere un objet depuis le stockage (banque) ou l'echange. Recherche l'objet dans le stockage par son GID et envoie une demande de recuperation au serveur. Attend le delai specifie (defaut 1000ms) avant de continuer.

Signature: exchange:getItem(objectGID, quantity, delay)

Paramètres:

Nom
Type
Description

objectGID

number

L'ID general de l'objet (GID)

quantity

number

Quantite a recuperer

delay

number

Delai en millisecondes apres l'operation (defaut: 1000ms)

Retourne: void

Exemple:

Note: ATTENTION: Cette fonction n'attend pas de confirmation du serveur, seulement un delai fixe. Pour des operations critiques, ajoutez un delai supplementaire avec global:delay().


getAllItems

Recupere TOUS les objets presents dans le stockage (banque) vers l'inventaire du personnage. Envoie une demande de transfert complet au serveur et attend la confirmation avant de continuer. Affiche le message "le bot prend les objets presents en banque" dans le chat.

Signature: exchange:getAllItems()

Retourne: void

Exemple:

Note: Attention: assurez-vous d'avoir assez de place dans l'inventaire. Si l'inventaire est plein, seuls les objets qui peuvent etre transferes le seront.


putAllItems

Depose TOUS les objets de l'inventaire dans le stockage (banque). Envoie une demande de transfert complet au serveur et attend la confirmation avant de continuer. Affiche le message "le bot vide tous les objets presents en inventaire" dans le chat.

Signature: exchange:putAllItems()

Retourne: void

Exemple:

Note: Cette fonction depose TOUS les objets, sans filtrer par position. Pour exclure certains objets, utilisez putAllItemsExcept().


getAllItemsExcept

Recupere tous les objets du stockage SAUF ceux dont le GID est dans la liste d'exception. Parcourt les objets en banque et transfere uniquement ceux qui ne sont pas dans la liste d'exclusion. Attend la confirmation du serveur avant de continuer.

Signature: exchange:getAllItemsExcept(except)

Paramètres:

Nom
Type
Description

except

table

Liste des GID (table Lua) des objets a ne PAS recuperer

Retourne: void

Exemple:

Note: Affiche le message "Le bot prend les objets presents dans l'espace de stockage (getAllItemsExcept)." dans le chat.


putAllItemsExcept

Depose tous les objets de l'inventaire SAUF ceux dont le GID est dans la liste d'exception. Parcourt l'inventaire et transfere uniquement les objets non equipes qui ne sont pas dans la liste d'exclusion. Attend la confirmation du serveur avant de continuer.

Signature: exchange:putAllItemsExcept(except)

Paramètres:

Nom
Type
Description

except

table

Liste des GID (table Lua) des objets a garder dans l'inventaire

Retourne: void

Exemple:

Note: Seuls les objets en position 63 (inventaire non equipe) sont consideres. Les objets equipes (positions 0-15) sont automatiquement exclus. Affiche le message "Le bot vide tous les objets presents en inventaire (putAllItemsExcept)."


putKamas

Depose des kamas dans le stockage (banque) ou l'echange. Si kamas = 0, depose TOUS les kamas du personnage. Attend la confirmation du serveur avant de continuer.

Signature: exchange:putKamas(kamas)

Paramètres:

Nom
Type
Description

kamas

number

Montant de kamas a deposer (0 = tout deposer)

Retourne: void

Exemple:

Note: Passer 0 comme parametre depose automatiquement tous les kamas disponibles sur le personnage.


getKamas

Recupere des kamas depuis le stockage (banque). Si kamas = 0, recupere TOUS les kamas de la banque. Attend la confirmation du serveur avant de continuer.

Signature: exchange:getKamas(kamas)

Paramètres:

Nom
Type
Description

kamas

number

Montant de kamas a recuperer (0 = tout recuperer)

Retourne: void

Exemple:

Note: Passer 0 comme parametre recupere automatiquement tous les kamas disponibles en banque.


LaunchExchangeWithPlayer

Lance une demande d'echange avec un joueur specifique via son ID de contexte. NECESSITE UN ABONNEMENT PREMIUM. Envoie la demande d'echange au joueur et attend jusqu'a 50 secondes sa reponse (acceptation ou refus), puis attend l'ouverture de l'interface d'echange.

Signature: exchange:LaunchExchangeWithPlayer(PlayerId)

Paramètres:

Nom
Type
Description

PlayerId

number

L'ID de contexte du joueur (contextualId, type Double)

Retourne: boolean - true si l'echange a ete accepte et ouvert, false si refuse ou timeout

Exemple:

Note: Necessite un abonnement premium. Affiche "Vous n'avez pas d'abonnement pour les echanges avances." si non autorise. Timeout de 50 secondes pour chaque etape.


launchExchangeWithPlayerByName

Lance une demande d'echange avec un joueur via son nom. Recherche le joueur sur la map actuelle par son nom exact, puis lance l'echange avec lui.

Signature: exchange:launchExchangeWithPlayerByName(name)

Paramètres:

Nom
Type
Description

name

string

Le nom exact du joueur (sensible a la casse)

Retourne: boolean - true si le joueur a ete trouve et l'echange accepte, false sinon

Exemple:

Note: Le nom doit etre exactement identique (sensible a la casse). Le joueur doit etre present sur la meme map. Necessite un abonnement premium.


storageItems

Retourne la liste des GID de tous les objets presents dans le stockage (banque). Retourne une liste d'entiers representant les identifiants des types d'objets.

Signature: exchange:storageItems()

Retourne: table - Liste (table Lua) des GID des objets en stockage

Exemple:

Note: Retourne uniquement les GID, pas les quantites. Utilisez storageItemQuantity() pour obtenir la quantite d'un objet specifique.


storageItemQuantity

Retourne la quantite d'un objet specifique dans le stockage (banque). Recherche l'objet par son GID et retourne la quantite stockee. Retourne 0 si l'objet n'est pas trouve.

Signature: exchange:storageItemQuantity(GID)

Paramètres:

Nom
Type
Description

GID

number

L'ID general de l'objet recherche

Retourne: number - Quantite de l'objet en stockage (0 si absent)

Exemple:


storageKamas

Retourne le nombre de kamas presents dans le stockage (banque).

Signature: exchange:storageKamas()

Retourne: number - Montant de kamas en banque

Exemple:


storageItemCount

Retourne le nombre de types d'objets differents dans le stockage (banque). Compte le nombre de stacks differents (pas la quantite totale d'objets).

Signature: exchange:storageItemCount()

Retourne: number - Nombre de types d'objets differents en stockage

Exemple:

Note: Compte le nombre de stacks/types differents, pas la quantite totale. Par exemple, 100 bles et 50 orges comptent pour 2 types.


Ready

Valide l'echange en cours (equivalent a cliquer sur le bouton "Pret"). Attend 3 secondes avant d'envoyer la validation, puis attend jusqu'a 50 secondes que l'echange soit finalise.

Signature: exchange:Ready()

Retourne: void

Exemple:

Note: L'echange ne sera effectif que lorsque les DEUX parties auront valide (clique sur Pret). Le script attend que l'echange soit finalise avant de continuer. Delai initial de 3 secondes pour eviter les validations trop rapides.


leave

Quitte l'echange ou le stockage en cours. Ferme proprement le dialogue actuel (banque, echange joueur, coffre, etc.).

Signature: exchange:leave()

Retourne: void

Exemple:

Note: Peut etre utilise pour fermer n'importe quel type de dialogue (banque, echange joueur, coffre de maison, etc.).


Mis à jour