Syntaxe du script

Exemple

Voici un exemple simple de script LUA compatible avec Frigost :

MIN_MONSTERS = 4 -- Le groupe doit contenir au minimum 4 monstres
MAX_MONSTERS = 8 -- Le groupe doit contenir au maximum 8 monstres
FORCE_MONSTERS = { 490, 489 } -- Le groupe doit contenir piou rouge ou piou vert
FORBIDDEN_MONSTERS = { 491 } -- Le groupe ne doit pas contenir piou bleu

function astrub()
    npc.talk(4398)
    npc.reply(-1)
    npc.reply(-1)
end

function move()
    return {
        { map = "153880835", custom = astrub },
        { map = "192416776", path = "bottom" },
        { map = "6,-19", path = "left", fight = true },
        { map = "5,-19", path = "left", fight = true },
        { map = "4,-19", path = "bottom", fight = true },
        { map = "4,-18", path = "bottom", fight = true },
        { map = "4,-17", path = "right", fight = true },
        { map = "5,-17", path = "right", fight = true },
        { map = "6,-17", path = "top", fight = true },
        { map = "6,-18", path = "top", fight = true },
    }
end

Explications

  • Quand vous lancez le script, il va exécuter immédiatement la fonction move().

  • Après chaque changement de carte, il va exécuter la fonction move().

  • La fonction move() doit retourner un tableau qui contient les cartes (soit avec leurs coordonnées ou avec leurs MapId), et les actions à effectuer sur chaque carte.

  • Par exemple dans la carte "4,-18", on dit au script de combattre (fight = true), et après se diriger vers le bas (path = "bottom").

  • Par exemple dans la carte "153880835", on dit au script d'exécuter la fonction astrub() (custom = astrub), cette fonction s'occupe de parler au PNJ pour sortir d'Incarnam.

Actions possibles

Action
Explication
  • fight = true

  • Pour combattre tous les groupes de monstres possibles dans la carte.

  • forceFight = true

  • Pour combattre tous les groupes de monstres possibles dans la carte, et attendre à l'infini leur réapparition.

  • gather = true

  • Pour effectuer toutes les récoltes possibles dans la carte.

  • forceGather = true

  • Pour effectuer toutes les récoltes possibles dans la carte, et attendre à l'infini leur réapparition.

  • path = "cellule"

  • Pour changer la carte à travers une cellule (soleil).

  • Par exemple : path = "318"

  • path = "direction"

  • Pour changer la carte en allant vers une direction. top = aller vers le haut bottom = aller vers le bas right = aller vers la droite left = aller vers la gauche

  • Par exemple : path = "top"

  • path = "direction(cellule)"

  • Pour changer la carte en allant vers une direction et à travers une cellule spécifique.

  • Par exemple : path = "top(10)"

  • path = "direction1|direction2|..."

  • Pour dire au bot de choisir une direction aléatoire.

  • Par exemple : path = "left|top(10)|367"

  • door = cellule

  • Pour utiliser une porte située située sur une cellule X.

  • Par exemple : door = 137

  • custom = fonction

  • Pour exécuter une fonction.

  • Par exemple : custom = UtiliserPotion

  • La fonction UtiliserPotion doit être déjà définie sur votre script)

  • En groupe, la fonction sera exécutée en même temps par tous les membres.

  • lockedCustom = fonction

  • Utilisable uniquement en groupe.

  • La même chose que custom, sauf que la fonction sera exécuté par chaque membre 1 par 1.

  • Utile pour les échanges ou pour l'utilisation d'un coffre de maison.

-- Exemple
{ map = "6,-18", gather = true, fight = true, path = "top|right", custom = Pain }

Priorité des actions

  1. Récolter (gather et forceGather).

  2. Combattre (fight et forceFight).

  3. locked_custom.

  4. custom.

  5. door.

  6. path.

Autres fonctions

  • La fonction script_stopped() qui sera exécutée quand le script s'arrete d'une manière involontaire.

function script_stopped()
    -- Faire ce que vous voulez ici
end
  • La fonction team_member_lost() qui sera exécutée sur un membre du groupe lorsque qu'il est perdu du chef.

function team_member_lost(bossMapId)
    map.autotripOne(bossMapId)
end
function team_member_lost(bossMapId)
    return {
        { map = "5,-18", path = "top" },
    }
end
  • La fonction bank() qui sera exécutée selon votre configuration ici :

function bank()
    -- Faire ce que vous voulez ici, par exemple :
    -- Prendre le Zaap vers Astrub
    -- Aller à la banque
    -- Se vider
end

Dernière mise à jour