Aller au contenu

controller — Multi-comptes

API multi-comptes moonbotController : orchestration de plusieurs bots simultanés.

20 fonctions dans ce namespace.

Index


Référence

Statut de cette API

-- API historique des scripts de compte

Conservée pour la compatibilité des scripts existants. Pour tout nouveau script ou Controller, utilisez moonbot.accounts : l'interface est commune aux deux runtimes et n'expose pas les primitives bas niveau de cette ancienne API.


Recherche de comptes

moonbotController.getAccountControllerByAlias(alias) / getAccountControllerByUsername(username)

returns accountController | nil

Trouve un bot par alias ou username.


Listes

moonbotController.getAllAccountControllers() / getConnectedAccountControllers()

returns table

Tous les bots ou seulement les connectes.


Compteurs

moonbotController.accountCount() / connectedAccountCount()

returns number

Nombre total et connectes.


Commandes

moonbotController.sendCommand(accountId, command)

returns boolean

Commandes : "stop", "pause", "resume", "reconnect", "pass_turn", "toggle_mount".


Lancer un script

moonbotController.executeScript(accountId: string, scriptName: string)

returns boolean

Lance un script sur un autre bot.


Chat

moonbotController.sendChat(accountId, channel, message)

returns boolean

Envoie un message depuis un autre bot.


Paquet brut

moonbotController.sendRawPacket(accountId, packet)

returns boolean

Envoie un paquet brut depuis un autre bot.


Etat d'un bot

moonbotController.characterState(accountIdOrEmail: string)

returns {name: string, level: number, hp: number, hp_max: number, kamas: number, map_id: number, x: number, y: number, cell_id: number, server_name: string} | nil

Etat du personnage d'un autre bot. Accepte l'account ID ou l'email/login du compte. nil si non connecte.


Inventaire d'un bot

moonbotController.inventory(accountId: string)

returns table of {id: number, uid: number, quantity: number, name: string, position: number}

Inventaire d'un autre bot. Meme format que inventory.list().


Contrat des écritures de profil

setProxy / removeProxy / setAlias / scheduleCreation / cancelCreation

returns boolean

Ces appels historiques ne peuvent viser que vos comptes et sont arbitrés comme actions de script normal. Sur un worker, true signifie que la requête fenced a été admise dans la file bornée, pas que SQLite a déjà committé : le control-plane revalide encore la session source, le run Lua, la propriété, l'assignation et la révision. Ne rejouez pas aveuglément après une coupure; relisez ensuite le profil autoritaire dans le dashboard.


Proxy

moonbotController.setProxy(accountId, ip, port, user, pass, type?) / removeProxy(accountId)

Configure ou retire le proxy d'un bot via le commit autoritaire du control-plane. Les credentials ne sont jamais écrits dans les logs.


Alias

moonbotController.setAlias(accountId, alias)

Change l'alias d'un bot via la même révision monotone du profil.


Creation perso

moonbotController.scheduleCreation(accountId, classId, sex, serverId?) / cancelCreation(accountId)

Planifie ou annule la création de personnage sur un autre bot après les mêmes contrôles de fence.


Mon ID

moonbotController.myAccountId()

returns string

ID du compte actuel.


Connecter un bot

moonbotController.connectBot(accountIdOrEmail: string, timeoutMs?: number)

returns boolean

Connecte un bot du gestionnaire par son account ID ou son email/login (insensible a la casse). Attend que le personnage soit EN JEU (polling). Timeout par defaut 180s (une connexion a froid peut prendre 1-2 min avec proxy). Retourne true si en jeu (ou en attente de selection manuelle du perso), false si timeout ou identifiant inconnu. Utile pour connecter un bot banque depuis un script.


Connecter un bot par email

moonbotController.connectBotByEmail(email: string, timeoutMs?: number)

returns boolean

Identique a connectBot : connecte un bot par l'email/login de son compte (insensible a la casse) et attend que le personnage soit en jeu. Timeout par defaut 180s. Le meme email peut ensuite etre passe aux autres fonctions du moonbotController (characterState, executeScript, disconnectBot...). Exemple : if moonbotController.connectBotByEmail("mule@gmail.com", 60000) then local st = moonbotController.characterState("mule@gmail.com") end


Deconnecter un bot

moonbotController.disconnectBot(accountIdOrEmail: string)

returns boolean

Transmet un arrêt idempotent au control-plane et attend jusqu'à 90 s la fin de la génération exacte lorsqu'elle est visible. true confirme la fin; pour l'auto-arrêt, true confirme nécessairement l'acceptation puisque la VM disparaît. Une cible opaque ou absente localement est quand même transmise mais retourne false plutôt que d'annoncer un faux succès.


accountController

accountController.getAlias() / getUsername() / getAccountId() / getServer() / getLevel()

returns string / string / string / string / number

getAlias()→string. getUsername()→string (nom de compte). getAccountId()→string (UUID). getServer()→string (nom serveur). getLevel()→number. Obtenu via moonbotController ou global.thisAccountController().


accountController etat

accountController.isAccountConnected() / isScriptPlaying() / isTeamLeader() / isBoss() / isItATeam()

returns boolean

Etat du bot.