> For the complete documentation index, see [llms.txt](https://docs.snowbot.eu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.snowbot.eu/trajets/bot-banque.md).

# Bot "Banque"

#### Qu’est-ce qu’un bot « banque » ?

Un bot **banque** est un personnage utilisé dans un objectif précis : **centraliser l’ensemble des ressources** récoltées par vos autres personnages.\
Cette approche permet de **réduire considérablement les coûts d’ouverture du coffre de la banque**, mais aussi de **gagner un temps précieux** en regroupant toutes les ressources sur un seul personnage dédié à la vente.

#### Sécurité du bot banque

{% hint style="danger" %}
Le bot banque devenant votre véritable **trésorerie**, il est essentiel d’en renforcer la sécurité.\
Pour cela, le **proxy utilisé par ce compte doit être strictement réservé à celui-ci**. Il ne doit en aucun cas être partagé avec d’autres comptes, afin d’éviter le mélange des adresses IP et de limiter les risques de bannissement collatéral.
{% endhint %}

#### Fonctionnement du bot banque

Concrètement, lorsque vos personnages atteignent la limite de leur inventaire, ils se dirigent vers la banque comme d’habitude.\
Cependant, au lieu de déposer directement leurs ressources dans le coffre, ils les **transfèrent via un échange** au bot banque.\
Ce dernier se charge ensuite de **déposer l’ensemble des ressources dans son propre coffre**, et éventuellement de les vendre.

#### Informations importantes

La configuration présentée ici est spécifiquement conçue pour la **version PC**.\
Le principe reste le même sur la **version Touch**, bien que certaines différences de fonctionnement puissent exister.

#### Configuration - Banquier <a href="#configuration-banquier" id="configuration-banquier"></a>

Pour cette première étape, il n'y a **rien de plus simple**. Il suffit de mettre un bot dans la banque de notre choix *(celle où vont converger nos personnages)*, ici j'ai choisi la Banque d'Astrub puis de se rendre dans les paramètres du personnage :

<figure><img src="/files/uSKTr06oNzOwhW3glOQX" alt=""><figcaption></figcaption></figure>

Une fois arrivé ici, il ne nous reste qu'une seule chose à faire, cocher la case "*Réception des échanges"* sur *"On"*.

La configuration du personnage qui nous servira de banque est maintenant terminée.\
C’était l’étape la plus simple. Nous allons désormais passer à la configuration du script afin que le dépôt de l’inventaire soit effectué par les autres personnages vers le bot banque, et non plus directement dans le coffre de la banque.

#### Configuration – Script

Pour cette partie du tutoriel, je t’invite à garder un onglet ouvert sur la section **Fonction `bank()`**, que nous avons vue dans la démonstration précédente, afin de suivre plus facilement la suite des opérations.

Voici la fonction `bank()` de notre script **avant** la mise en place et l’utilisation du bot banque :

```lua
function bank()
	return {
		{map = "-3,-18", path = "right"},
		{map = "-3,-19", path = "right"},
		{map = "-3,-20", path = "right"},
		{map = "-3,-17", path = "right"},
		{map = "-3,-16", path = "right"},
		{map = "-2,-16", path = "right"},
		{map = "-2,-17", path = "right"},
		{map = "-2,-18", path = "right"},
		{map = "-2,-19", path = "right"},
		{map = "-2,-20", path = "right"},
		{map = "-1,-20", path = "right"},
		{map = "-1,-19", path = "right"},
		{map = "-1,-18", path = "right"},
		{map = "-1,-17", path = "right"},
		{map = "-1,-16", path = "right"},
		{map = "0,-16", path = "top"},
		{map = "0,-17", path = "top"},
		{map = "0,-20", path = "bottom"},
		{map = "0,-19", path = "bottom"},
		{map = "0,-18", path = "right"},
		{map = "1,-18", path = "right"},
		{map = "2,-18", path = "right"},
		{map = "3,-18", path = "right"},
		-- C'EST ICI QUE CA SE PASSE :
		{map = "191104002", door = "261"}, -- Nous entrons dans la banque
		{map = "192415750", npcBank = true, path = "409"}, -- Dépôt de l'inventaire et sortie de la banque
	}
end
```

Comme nous l’avions vu précédemment, le dépôt des ressources en banque était géré par l’instruction `npcBank = true`.\
Pour rappel, il s’agit d’une fonction **pré-définie de SnowBot** qui ordonne au personnage de :

* parler au banquier,
* ouvrir son coffre,
* déposer l’intégralité de son inventaire,
* puis fermer le coffre.

La partie `path = "409"` permet quant à elle d’indiquer au personnage comment sortir de la banque.\
Cette partie restera donc **inchangée**.

Nous allons maintenant supprimer `npcBank = true` et la remplacer par une **fonction personnalisée** (*custom function*).\
Si tu ne te souviens plus de ce que c’est, je t’invite à retourner à la section **Custom – Fonction**.

Voici à quoi va ressembler notre **nouvelle fonction custom**, qui permettra au personnage de déposer ses ressources **auprès du bot banque**, plutôt que directement dans le coffre de la banque :

```lua
function luBank() -- Le nom de notre fonction
  exchange:launchExchangeWithPlayer(idBotBanque) -- La fonction pour lancer l'échange
  exchange:putAllItems() -- La fonction pour déposer tous les objets de l'inventaire
  exchange:putKamas(0) -- La fonction pour déposer tous les kamas
  exchange:ready() -- La fonction pour valider l'échange
end
```

Maintenant, nous allons ajouter cette fonction à notre script et appeler la fonction luBank() lorsque le personnage se trouve dans la banque afin de déclencher l’échange.

```lua
function bank()
	return {
		{map = "-3,-18", path = "right"},
		{map = "-3,-19", path = "right"},
		{map = "-3,-20", path = "right"},
		{map = "-3,-17", path = "right"},
		{map = "-3,-16", path = "right"},
		{map = "-2,-16", path = "right"},
		{map = "-2,-17", path = "right"},
		{map = "-2,-18", path = "right"},
		{map = "-2,-19", path = "right"},
		{map = "-2,-20", path = "right"},
		{map = "-1,-20", path = "right"},
		{map = "-1,-19", path = "right"},
		{map = "-1,-18", path = "right"},
		{map = "-1,-17", path = "right"},
		{map = "-1,-16", path = "right"},
		{map = "0,-16", path = "top"},
		{map = "0,-17", path = "top"},
		{map = "0,-20", path = "bottom"},
		{map = "0,-19", path = "bottom"},
		{map = "0,-18", path = "right"},
		{map = "1,-18", path = "right"},
		{map = "2,-18", path = "right"},
		{map = "3,-18", path = "right"},
		-- C'EST ICI QUE CA SE PASSE :
		{map = "191104002", door = "261"}, -- Nous entrons dans la banque
		{map = "192415750", custom = luBank, path = "409"}, -- ICI
	}
end

function luBank() -- Le nom de notre fonction
  exchange:launchExchangeWithPlayer(idBotBanque) -- La fonction pour lancer l'échange
  exchange:putAllItems() -- La fonction pour déposer tous les objets de l'inventaire
  exchange:putKamas(0) -- La fonction pour déposer tous les kamas
  exchange:ready() -- La fonction pour valider l'échange
end
```

Et c’est aussi simple que ça !

> *« Oui, mais c’est quoi `idBotBanque` ? »* — Toi

Excellente question !\
`idBotBanque` correspond en réalité à **l’identifiant unique de ton personnage**.

Pour l’obtenir, rien de plus simple :\
rends-toi dans la **console SnowBot** et tape la commande suivante :

```lua
/id NomDeTonBotBanque
```

Par exemple, si ton personnage s’appelle **Bob**, tu devras taper :

```lua
/id Bob
```

La console te retournera alors l’identifiant unique de ton personnage.\
Il ne te restera plus qu’à **copier-coller cet identifiant** à la place de `idBotBanque` dans ton script.

Et voilà, c’est terminé !\
🎉 **Félicitations, ton bot banque est maintenant prêt à l’emploi !**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.snowbot.eu/trajets/bot-banque.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
