Aller au contenu

title: Structure d'un script Lua | MoonBot API description: Structure d'un script Lua MoonBot : fonction move(), bank(), phoenix(), fightManagement(), champs d'un step.


Structure d'un script Lua

Structure d'un script Lua MoonBot : fonction move(), bank(), phoenix(), fightManagement(), champs d'un step.

18 fonctions dans ce namespace.

Index


Référence

function move()

function move() return { trajet } end

Fonction principale appelee en boucle. Retourne une table de trajet. Chaque step est execute quand la map du bot correspond au champ 'map'.


function bank()

function bank() return { trajet } end

Appelee quand les pods depassent le seuil. Retourne un trajet vers la banque.


function phoenix()

function phoenix() return { trajet } end

Appelee en mode fantome (mort). Retourne un trajet vers un phenix (statue gfx 542).


function prefightManagement()

function prefightManagement(positionsChallengers, positionsDefenders)
  -- Choisir une cellule de placement
  fightAction:chooseCell(134)
end

Appelee pendant la phase de placement (avant le combat). Necessite la tactique "Script". Recoit deux tables : positionsChallengers (cellules de placement de ton equipe, {cellId = true}) et positionsDefenders (cellules ennemies). Utilise fightAction:chooseCell(cellId) pour te placer.


function fightManagement()

function fightManagement()
  local enemy = fightAction.getNearestEnemy()
  if enemy then
    fightAction.castSpellOnCell(3, enemy.cellId)
  end
  fightAction.passTurn()
end

Appelee a chaque tour de combat. Necessite la tactique "Script". Gere les actions de combat manuellement (sorts, deplacement, passer le tour). Appelee uniquement quand c'est ton tour.


Champs d'un step

{ map = "x,y", path = "direction", gather, fight, forcefight, sale, npcBank, craft, phoenix, custom }

map (requis), path, gather, fight, forcefight, sale, npcBank, craft, phoenix, custom. Ordre d'execution : gather → fight/forcefight → custom → phoenix → npcBank → sale → craft → path.


gather = true

{ map = "5,-24", path = "right", gather = true }

Recolte toutes les ressources sur la map. Boucle jusqu'a epuisement ou pods pleins.


fight = true

{ map = "5,-24", path = "right", fight = true }

Combat les groupes de monstres (respecte min/max/interdits/obligatoires). Si plus de monstres ou combat echoue, passe a la suite.


forcefight = true

{ map = "2085", forcefight = true }

Comme fight mais pour les donjons : si aucun monstre disponible ou combat echoue (vole par un autre joueur), attend et retry au lieu de passer a la suite. Boucle jusqu'a avoir combat tous les monstres de la salle.


sale = true

{ map = "5,-17", sale = true }

Ouvre l'HDV et vend automatiquement selon la config de l'onglet HDV.


npcBank = true

{ map = "4,-17", npcBank = true }

Ouvre la banque via PNJ. Depose/retire selon la config Banque. Peut etre un ID : npcBank = 1234.


craft = true

{ map = "3,-5", craft = true }

Artisanat automatique. Le bot detecte les ateliers sur la map, ouvre chaque atelier, calcule le max craftable depuis l'inventaire, depose les ingredients, lance le craft. Necessite la config de l'onglet Craft.


phoenix = true

{ map = "10,-5", phoenix = true }

Utilise la statue phenix (gfx 542) pour ressusciter si en mode fantome.


custom = function

{ map = "3,-5", custom = function() ... end }

Execute une fonction Lua personnalisee sur cette map.


lockedCustom

{ map = "3,-5", custom = lockedCustom("leader_then_all", function() ... end) }

Custom avec coordination de groupe. Modes : "leader_then_all" (chef execute puis toutes les mules en parallele), "leader_then_one_by_one" (chef puis chaque mule a son tour), "all_together" (chef execute immediatement, chaque mule suit avec le delai configure : mule 1 @ delai, mule 2 @ 2xdelai, etc. — utile pour actions independantes sans contention de ressource partagee). Signature etendue : lockedCustom(mode, delay_ms, func) pour override du delai UI.


path (directions)

path = "right" | "left" | "top" | "bottom"

Change de map dans la direction indiquee.


path (cellule)

path = 381

Deplace vers la cellule (bordure) pour changer de map.


path (zaap)

path = "zaap(mapId)"

Teleporte via zaap vers la map indiquee.