API Lua Recolte & Combat
64 entrées — Référence du bot WGRetro pour Dofus Retro
Recolte
if bot.hasResourcesOnMap() then
local nb = bot.gatherAll()
log("Recolte: " .. nb .. " ressources")
endCombat — Lancer
if bot.hasMonstersOnMap() then
bot.fight()
bot.waitForFightEnd()
endCombat — Actions
-- Lancer sort 3 sur la cellule de l'ennemi
local enemy = bot.getNearestEnemy()
if enemy then
bot.castSpell(3, enemy.cell)
end
bot.endTurn()Combat — Informations
-- Boucle de combat
while bot.inFight() do
local myTurn = bot.waitForTurn()
if not myTurn then break end
local enemy = bot.getNearestEnemy()
if enemy then
bot.castSpell(3, enemy.cell)
end
bot.passTurn()
endFiltres de monstres
-- Ne combattre que les groupes de 1 a 3 monstres
bot.setMinMonsters(1)
bot.setMaxMonsters(3)
-- Eviter les Bouftous Royaux (id 42)
bot.setForbiddenMonsters({42})Filtres de monstres avances
-- Exiger 2 Bouftous (id 42) et 1 Tofu (id 45)
bot.setMonsterComposition({ [42] = 2, [45] = 1 })Recolte
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.gather() | boolean | Recolte la ressource la plus proche |
| bot.gatherAll() | number | Recolte tout, retourne le nombre |
| bot.gatherResource(cellId) | boolean | Recolte une ressource specifique |
| bot.hasResourcesOnMap() | boolean | Ressources disponibles ? |
| bot.getResources() | table | {{ cellId, skillId }} |
Combat — Lancer
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.attack(entityId) | void | Attaquer un monstre par ID |
| bot.fight() | boolean | Attaquer le groupe de monstres le plus proche |
| bot.hasMonstersOnMap() | boolean | Monstres sur la map ? |
| bot.getMonsterGroups() | table | {{ id, cellId, name, level, monsters }} |
Combat — Actions
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.castSpell(spellId, cellId) | void | Lancer un sort |
| bot.castSpellOnCell(spellId, cellId) | void | Alias castSpell |
| bot.castSpellOnEnemy(spellId, index?) | boolean | Sort sur le Neme ennemi (0=plus proche) |
| bot.endTurn() | void | Fin de tour |
| bot.passTurn() | void | Alias endTurn |
| bot.moveInFight(cellId) | void | Deplacement en combat |
| bot.moveToward(entityId) | void | Se rapprocher d'un combattant |
| bot.moveAway(entityId) | void | S'eloigner d'un combattant |
| bot.chooseCell(cellId) | void | Choisir cellule de placement |
| bot.fightReady() | void | Signal pret (placement) |
| bot.abandon() | void | Abandonner le combat |
| bot.getPlacementCells() | table | Cellules de placement |
| bot.getEnemyPlacementCells() | table | Cellules de placement ennemies (si disponible) |
| bot.fightDelay(ms) | void | Pause en combat (alias de sleep) |
| bot.fightLog(msg) | void | Log en contexte combat |
Combat — Informations
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.getFighters() | table | Tous les combattants { id, cellId, hp, hpMax, hpPercent, ap, mp, cell, teamId, alive, name, level, isEnemy, isSummon, summonerId, invisible, templateId, distance } |
| bot.getAllFighters() | table | Alias de getFighters |
| bot.getEnemies() | table | Ennemis vivants |
| bot.getAllies() | table | Allies vivants |
| bot.getNearestEnemy() | table\ | nil | Ennemi le plus proche |
| bot.getFarthestEnemy() | table\ | nil | Ennemi le plus loin |
| bot.getWeakestEnemy() | table\ | nil | Ennemi le plus faible (HP) |
| bot.getNearestAlly() | table\ | nil | Allie le plus proche (hors soi) |
| bot.enemyCount() | number | Nombre d'ennemis vivants |
| bot.allyCount() | number | Nombre d'allies vivants |
| bot.distanceTo(cellId) | number | Distance Manhattan depuis cellule actuelle |
| bot.cellDistance(a, b) | number | Distance Manhattan entre deux cellules |
| bot.waitForTurn(timeout?) | boolean | Attendre mon tour (false si combat fini) |
| bot.waitForFight(timeout?) | void | Attendre debut combat |
| bot.waitForFightEnd(timeout?) | any | Attendre fin combat |
Combat — Etat
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.turnNumber() | number | Numero du tour actuel (incremente a chaque tour du bot) |
| bot.currentFighterId() | string\ | nil | ID de l'entite dont c'est le tour |
| bot.turnOrder | table | Ordre des tours (liste d'IDs de combattants) |
| bot.myFightId() | string | Notre ID d'entite en combat |
| bot.myFightCell() | number | Notre cellule actuelle en combat |
| bot.myAP() | number | PA actuels en combat (depuis GTM) |
| bot.myMP() | number | PM actuels en combat (depuis GTM) |
| bot.myFightHP() | number | PV actuels en combat |
| bot.myFightHPMax() | number | PV max en combat |
| bot.myFightLifePercent() | number | PV en % en combat (0-100) |
| bot.myLevel() | number | Niveau du personnage |
| bot.myRange() | number | Portee du personnage |
| bot.myTeamId() | number | ID d'equipe (0 ou 1) |
Filtres de monstres
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.setMandatoryMonsters(ids) | void | Monstres obligatoires dans le groupe |
| bot.getMandatoryMonsters() | table | IDs obligatoires |
| bot.setForbiddenMonsters(ids) | void | Monstres a eviter |
| bot.getForbiddenMonsters() | table | IDs interdits |
| bot.setMinMonsters(n) | void | Taille min du groupe |
| bot.getMinMonsters() | number | Min actuel |
| bot.setMaxMonsters(n) | void | Taille max du groupe |
| bot.getMaxMonsters() | number | Max actuel |
| bot.matchesMonsterFilter(group) | boolean | Groupe correspond aux filtres ? |
Filtres de monstres avances
| Propriété / Méthode | Type | Description |
|---|---|---|
| bot.setMonsterComposition(comp) | void | Composition obligatoire { [monsterId] = quantite } |
| bot.getMonsterComposition() | table | Composition actuelle |
| bot.clearMonsterComposition() | void | Supprimer la composition |
Ces fonctions s'utilisent dans les scripts Lua du bot WGRetro — testables avec le plan gratuit (1 bot, sans limite de durée). Scripts prêts à l'emploi sur la marketplace.