# Fonctions et paramètres

# 🛠️ Fonctions

Les fonctions sont des parties de code qui peuvent être appelées et qui doivent la plupart du temps réaliser une tâche bien précise.

function move()
    return {
    -- Votre logique de déplacement
    }
end

# 🌍Fonctions globales

Afin de vous aider dans vos trajets avancés, vous avez à votre disposition plusieurs fonctions globales, elles peuvent être utilisées dans la fonction move() directement ou dans une fonction custom.

📖 Fonctions globales
../../advanced/functions/

# ⚙️Fonction custom

Pour ajouter une fonction custom à votre trajet qui s’exécutera après l'action sur la map spécifiée mais avant l'instruction path, voici comment faire :

function move()
    return {
    -- Votre logique de déplacement
          { map = "-31,-56",
      -- Action que le bot fera APRES avoir fait son action custom
      path = "bottom",

      gather = false, custom="takeZaapi" }, -- Map du zaap de bonta
    }
end


function takeZaapi()
    printMessage("Je prends le Zaapi")
    delay(1000)
    printMessage("J'appuie sur hôtel de vente")
    delay(1000)
end

Une fonction custom vous permet d'ajouter une logique complexe à votre trajet, comme par exemple un aiguillage, un déchargement en maison, etc ..


# 🎒 Ouverture automatique des sacs de récolte

Voici une méthode simple et automatisée pour ouvrir vos sacs de ressources dès qu’ils sont dans votre inventaire.

# 🛠 Étape 1 – Activer l’ouverture dans move()

Ajoutez la ligne suivante dans votre fonction move() :

checkAndOpenBag()

# 📦 Étape 2 – Script Lua d’ouverture automatique

local openBags = true

-- Mettre les ID des sacs à ouvrir ici
local bags = {
    7964, -- Sac d'Orties
    7965, -- Sac de Sauges
}

function checkAndOpenBag()
    for _, bagID in ipairs(bags) do
        local itemCount = getInventoryItemCount(bagID)
        if itemCount > 0 then
            local message = "J'ai " .. tostring(itemCount) .. " sac(s) de " .. tostring(bagID)
            printMessage(message, 'green')
            useInventoryItem(bagID, itemCount)
            return true -- Ouvre un seul type de sac à la fois
        end
    end
    return false
end

# ⚙️ Explication du fonctionnement

  • openBags: Variable booléenne (non utilisée ici, mais peut servir à désactiver l'ouverture dynamiquement).
  • bags: Tableau contenant les ID des sacs que vous souhaitez ouvrir.
  • checkAndOpenBag():
    • Parcourt tous les ID listés.
    • Si un sac est présent en inventaire (getInventoryItemCount(bagID) > 0), il l’ouvre via useInventoryItem.
    • Affiche un message de confirmation.

# Résultat

Quand le bot bouge (move()), il vérifie votre inventaire :

  • Si un sac est présent, il l’ouvre automatiquement.
  • Sinon, il continue son chemin sans action.

💡 Astuce : si tu veux éviter d’ouvrir plusieurs sacs à la suite ou dans une même zone, tu peux ajouter un cooldown ou une variable d’état pour contrôler cela.