Aller au contenu
Afficher dans l'application

Une meilleure façon de naviguer. En savoir plus.

Asterobot

Une application plein écran sur votre écran d'accueil avec notifications push, badges et plus encore.

Pour installer cette application sur iOS et iPadOS
  1. Appuyez sur Icône de partage dans Safari
  2. Faites défiler le menu et appuyez sur Ajouter à l'écran d'accueil.
  3. Appuyez sur Ajouter dans le coin supérieur droit.
Pour installer cette application sur Android
  1. Appuyez sur le menu à trois points (⋮) dans le coin supérieur droit du navigateur.
  2. Appuyez sur Ajouter à l'écran d'accueil ou Installer l'application.
  3. Confirmez en appuyant sur Installer.

Profils de chat

Créez, copiez, importez, exportez, modifiez et supprimez les profils de chat d'après lesquels vos bots parlent, sur la page Profils de chat. Écrivez des annonces avec des choix au hasard, des liens d'objets et des variables, réglez quand chacune tourne et ce qui la termine, écrivez les réponses aux messages privés, ce que fait un bot sur les lignes des canaux, les commandes auxquelles il obéit et son statut, et lisez le format des profils.

Un profil de chat dit ce qu'un bot dit tout seul : les annonces qu'il poste dans les canaux que vous choisissez, à intervalles aléatoires, tant que leurs conditions sont vraies ; les réponses aux messages privés qu'il reçoit ; ce qu'il fait sur les lignes des canaux ; les commandes auxquelles il obéit ; son statut. Un bot utilise plusieurs profils à la fois, choisis dans son onglet Chat (Le module de chat), et un même profil peut servir à autant de bots que vous voulez.

Profil Ce que c'est Pouvez-vous le modifier ?
Les vôtres, Les vôtres Les profils que vous avez créés, copiés ou importés. Chacun est un fichier du dossier des données d'Asterobot. Oui.
Celui d'un paquet, Paquet Fourni par un paquet que vous avez installé, nommé d'après lui, comme @some-author:traders/wheat. Non. Copiez-le pour le modifier.

La page Profils de chat

Ouvrez Profils de chat dans le menu d'Asteroboard. La page liste les vôtres par nom, puis ceux de vos paquets.

Colonne Ce qu'elle montre
Nom Le nom du profil, celui que montre la liste Profils d'un bot.
Annonces Combien d'annonces il contient.
Source Les vôtres ou Paquet, avec la version du paquet.
État Prêt, Inutilisable quand il a une erreur, ou combien d'avertissements il a. Survolez-le pour les lire.

Le filtre au-dessus du tableau trouve un profil par son nom. Chaque ligne a un menu :

Élément Ce qu'il fait
Modifier Ouvre votre profil dans l'éditeur. Voir pour celui d'un paquet, qui s'ouvre en lecture seule.
Copier Enregistre une copie sous un nom à vous, puis l'ouvre dans l'éditeur.
Exporter Télécharge le profil en fichier .json.
Supprimer Supprime l'un de vos profils, après confirmation. Celui d'un paquet ne peut pas être supprimé.

La page reste à jour d'elle-même quand un profil est enregistré, importé ou supprimé, et quand un paquet est installé ou retiré.

Créer un profil

  1. Cliquez sur Nouveau profil.
  2. Tapez un Nom, puis cliquez sur Créer.

L'éditeur s'ouvre sur le nouveau profil, vide.

Un nom est aussi le nom de fichier du profil : il ne peut pas être vide, commencer par @, ni contenir de / ou de caractère qu'un nom de fichier ne peut pas porter. La fenêtre affiche alors chatprofiles: a profile's name can't be empty, start with @, or hold / or a character a file name can't. Un nom déjà pris donne chatprofiles: a profile already has this name.

Copier, partager et supprimer

Copier, dans le menu d'une ligne ou dans l'éditeur, ouvre une fenêtre avec le nom de l'original suivi de copie. La copie est à vous : c'est ainsi qu'on modifie le profil d'un paquet.

Exporter télécharge le profil exactement tel qu'il est enregistré. Pour utiliser un profil partagé par quelqu'un, cliquez sur Importer, choisissez le fichier sous Fichier du profil ou collez le JSON sous JSON du profil, puis cliquez sur Importer. Le profil rejoint les vôtres sous le nom qu'il porte ; quand vous en avez déjà un de ce nom, la fenêtre demande avant que Le remplacer n'écrase le vôtre. Un profil désigne les objets, les cartes et les zones par leurs identifiants du jeu, les mêmes pour tous ceux qui jouent la même version du jeu.

Supprimer demande d'abord : « ... sera supprimé définitivement. Les bots qui l'utilisent le retirent de leurs profils. »

L'éditeur

L'éditeur montre le formulaire du profil à gauche et son JSON à droite, tous deux en direct : un champ changé dans le formulaire apparaît aussitôt dans le JSON, et le JSON que vous tapez remplit le formulaire dès qu'il se lit. Sauvegarder envoie le profil à Asterobot, qui le vérifie, et chaque bot qui l'utilise le suit aussitôt. Un profil qu'Asterobot ne peut pas accepter est refusé avec le champ en cause, par exemple chat: malformed profile: ads[0].messages: an ad needs a message. Ses avertissements s'affichent au-dessus du formulaire, sous À savoir.

Le profil d'un paquet s'ouvre en lecture seule, avec Copier pour en faire un à vous. Quitter l'éditeur avec des changements non enregistrés demande d'abord.

Général

Nom et Description. Renommer un profil fait suivre le nouveau nom à chaque bot qui l'utilise.

Variables

Des valeurs que les messages lisent par leur nom : un message qui écrit {prix} dit la valeur de prix. Ajouter une variable, puis tapez son Nom et sa Valeur. Quand plusieurs profils d'un bot fixent la même variable, la valeur du premier profil l'emporte ; un script peut fixer les siennes, qui l'emportent sur celles de tous les profils. Celles du personnage, comme {name} ou {level}, ne peuvent pas être remplacées.

Annonces

Ajouter une annonce en ajoute une, dans Commerce, qui attend deux à quatre minutes entre deux envois, avec un message à écrire.

Champ Ce qu'il fait
Nom Facultatif : le nom que montre l'onglet Chat du bot. Sans nom, il montre Annonce 1, Annonce 2...
Canaux Où part chaque envoi, nommés et colorés comme dans le jeu. Chaque envoi part dans tous les canaux : un canal encore dans son délai est attendu, les autres partent.
Messages Un seul est dit à chaque fois. Chacun montre un aperçu en dessous. Voir Messages.
Ordre Au hasard, jamais deux fois de suite le même message, ou Dans l'ordre.
Attendre au moins, Attendre au plus L'attente aléatoire entre deux envois, de 1 seconde à 24 heures, en secondes, minutes ou heures.
Seulement quand La condition de l'annonce : elle attend tant que la condition est fausse. Voir Conditions.
Arrêt Ce qui termine l'annonce pour de bon. Voir Arrêt.
À chaque envoi Une Émoticône ou une Attitude que le personnage joue en disant le message.

Messages

Un message est un modèle que le bot remplit à chaque fois qu'il le dit :

Vous écrivez Le bot dit
{Salut|Bonjour|Coucou} L'un des choix, au hasard. Les choix peuvent s'imbriquer et être vides : {!|}.
{item:289} Un lien vers l'objet, comme les liens d'objets du jeu, depuis l'inventaire du personnage. Un objet dans les sacs est préféré à un objet équipé.
{name}, {level}, {server}, {subarea}, {area}, {position}, {kamas}, {pods}, {time} Le nom, le niveau, le serveur, la sous-zone, la zone, la position en lien vers sa carte, que le jeu affiche [4,-19], les kamas, les pods en utilisés/max, et l'heure en HH:MM du personnage.
{sender} Dans une réponse, un message de déclencheur ou la réponse d'état : qui a écrit le message ou la ligne.
{prix}, ou tout autre nom Une variable.

Un message n'est pas envoyé tant que l'une de ses variables n'a pas de valeur ou que le personnage n'a pas un objet qu'il lie : l'annonce attend, et l'onglet Chat dit pourquoi. Un message au-delà des 256 caractères ou des 16 liens d'objets du jeu ne l'est pas non plus.

L'aperçu sous chaque message montre quelques remplissages, chaque lien d'objet écrit [son nom], dans la couleur du premier canal de l'annonce, et le plus long que le message peut faire face aux limites du jeu : « Jusqu'à 74/256 caractères, 1/16 liens d'objets ». Il est fait sans bot, donc les variables du personnage restent écrites {name}, et les objets sont nommés dans la langue où vous lisez le jeu.

Conditions

Seulement quand contient des tests, qui doivent tous être vrais, et des groupes : Tous ceux-ci, L'un de ceux-ci, et Pas celui-ci. Sans test, l'annonce tourne toujours.

Test Vrai quand
Heure L'heure de l'ordinateur est entre De et À, en passant minuit quand À vient avant, l'un des Jours cochés, tous les jours quand aucun ne l'est.
En combat, En trajet Le personnage est en combat, ou en trajet, ou ne l'est pas : Oui ou Non.
Carte, Sous-zone, Zone Le personnage est sur l'une d'elles.
A un objet Le personnage a au moins tant de cet objet.
Kamas, Niveau Les kamas ou le niveau du personnage sont Plus de et Moins de les nombres donnés.
Un drapeau Un script, ou la réaction Activer un drapeau d'une alarme, a levé ce drapeau.

Un test sur ce que le bot ne sait pas encore, comme ses kamas avant que le jeu ait envoyé l'inventaire, est faux.

Arrêt

L'Arrêt termine l'annonce pour de bon, au premier qui arrive : Après tant d'envois, un temps Après son premier envoi, ou Le jour dit, selon l'horloge de l'ordinateur. Les compteurs sont gardés en mémoire : ils repartent de zéro au redémarrage d'Asterobot ou quand les profils du bot changent.

Réponses

Les réponses aux messages privés que reçoit un bot (Réponses). Ajouter une règle en ajoute une, qui répond à tout message, avec une réponse à écrire.

Champ Ce qu'il fait
Répond quand La condition de la règle : les tests d'une annonce, et deux de plus sur le message. Sans test, la règle répond à tout message.
Réponses Une est tirée au hasard. Ce sont des messages, et {sender} dit qui a écrit. L'aperçu montre {sender} en Joueur.
Réponses par joueur Au plus tant de réponses des règles à un même joueur, Sur cette durée. Une par heure par défaut, ce qui répond au premier message d'une conversation.

La première règle dont le test est vrai répond, donc une règle sans test va en dernier : les flèches montent ou descendent une règle. Quand un bot a plusieurs profils, leurs règles s'ajoutent dans l'ordre des profils, et le premier profil qui a Réponses par joueur le fixe.

La condition d'une règle de réponse peut aussi tester le message :

Test Vrai quand
Expéditeur Le personnage qui a écrit est l'un des Noms, sans tenir compte des majuscules.
Mots Le message a l'un des Mots-clés comme mot, Contient un texte, et correspond à la Regex : chacun que vous remplissez doit être vrai. Les mots-clés et Contient ne tiennent pas compte des majuscules ni des accents, donc ble trouve blé. La regex est prise telle quelle, en syntaxe de Go : (?i) à son début ignore les majuscules.

Déclencheurs

Ce que fait un bot sur une ligne dite dans un canal (Déclencheurs). Ajouter un déclencheur en ajoute un, sur une ligne en Commerce qu'aucun de vos bots n'a dite, avec un message privé à écrire.

Champ Ce qu'il fait
Nom Le nom du déclencheur dans l'onglet Chat et la console, et dans l'événement d'alarme et l'événement de script qu'il donne.
Se déclenche quand La condition du déclencheur : les tests d'une annonce, l'Expéditeur et les Mots d'une réponse, et quatre de plus sur la ligne, ci-dessous. Sans test, il se déclenche sur toute ligne de tout canal.
Actions Ce qu'il fait, dans l'ordre, chacune une fois la précédente faite. Les flèches montent ou descendent une action.
Par joueur Un même joueur le déclenche au plus tant de fois, Sur cette durée. Une fois par heure par défaut.

Chaque déclencheur dont le test est vrai se déclenche, donc une ligne peut en déclencher plusieurs. Quand un bot a plusieurs profils, leurs déclencheurs s'ajoutent.

La condition d'un déclencheur peut aussi tester la ligne :

Test Vrai quand
Canal La ligne a été dite dans l'un de ces canaux.
L'un de vos bots Oui : l'un de vos autres comptes de cet Asterobot l'a dite. Non : quelqu'un d'autre.
Nomme le personnage La ligne a le nom du personnage du bot comme mot, sans tenir compte des majuscules ni des accents.
Lie un objet La ligne lie cet objet.
Action Ce qu'elle fait
Écrire en privé à l'auteur Envoie en privé l'un de ses messages, tiré au hasard. {sender} dit qui a écrit la ligne.
Dire dans un canal Dit un message dans le canal que vous choisissez.
Lever un événement d'alarme Lève l'événement trigger:<nom> pour les alarmes : une règle qui le nomme décide de la suite, comme une notification.
Prévenir le script Le script du bot l'entend (onChat).
Ignorer l'auteur Ajoute l'auteur à la liste des ignorés du personnage, comme le menu du jeu : ses lignes sont masquées jusqu'à la fin de la session de jeu, et ne déclenchent plus rien. Si le jeu refuse, par exemple quand la liste est pleine, la console dit pourquoi.
Jouer un smiley, Jouer une émote Joue celui ou celle que vous choisissez.
Inviter dans le groupe Invite l'auteur dans le groupe du personnage.
Mettre le chat en pause Le bot n'envoie rien pendant ce temps, comme avec Arrêter l'envoi.

Un message privé ou un message attend le rythme, comme une réponse. En essai à blanc, les messages, l'ignore, l'invitation et le smiley ou l'émote sont seulement écrits dans la console.

Commandes

Les commandes auxquelles obéit un bot (Commandes). Activez Obéit aux commandes pour les régler ; sans cela, le profil ne prend aucune commande. Le premier profil du bot qui prend des commandes les fixe toutes.

Champ Ce qu'il fait
Préfixe Ce par quoi commence une commande, 3 caractères au plus. ! par défaut.
Noms de confiance Des personnages du serveur du bot dont il suit les commandes. Tapez un nom et appuyez sur Entrée.
Vos bots Vos autres comptes de cet Asterobot ont aussi sa confiance, quel que soit leur personnage. Activé par défaut.
Commandes qui marchent Les commandes auxquelles le bot obéit. Toutes par défaut.
Réponse d'état Ce que répond !status, un message. Vide, c'est {name}, level {level}, {subarea} {position}, {kamas} kamas, {pods} pods.

Statut

Le statut que prend le personnage tant que la partie Statut du bot est allumée (Statut). Activez Règle le statut et choisissez Disponible, Absent, Privé ou Solo, comme dans le menu de statut du jeu. Absent prend un Message d'absence, 256 caractères au plus, que lisent les joueurs qui écrivent en privé au personnage. Le premier profil du bot qui a un statut le fixe.

Privé bloque les messages privés des inconnus, donc les réponses n'en reçoivent aucun : l'éditeur vous prévient.

Rythme

Le temps que met le bot à répondre, comme une personne : un temps au hasard pour lire le message, entre Lit au moins et Lit au plus secondes (2 à 6 par défaut, 120 au plus), puis le temps de taper la réponse à Caractères par seconde (6 par défaut, 50 au plus). Le premier profil du bot qui a un rythme le fixe, pour les réponses, les messages des déclencheurs et la réponse à !status.

Le format

Un profil est un fichier JSON. C'est le format qu'écrit l'éditeur, et celui qu'utilisent Exporter et Importer :

{
  "version": 1,
  "name": "Vente de blé à Astrub",
  "description": "Annonces de blé dans Commerce, le soir, et réponses sur le prix.",
  "variables": { "prix": "12" },
  "ads": [
    {
      "name": "Annonce blé",
      "channels": ["SALES"],
      "messages": ["{Vends|WTS} {item:289} à {prix} k l'unité, MP", "{item:289} à vendre, {prix} k, MP {name}"],
      "order": "random",
      "every": { "min": 120, "max": 240 },
      "when": { "all": [ { "time": { "from": "18:00", "to": "23:30" } }, { "map.subarea": { "in": [95] } }, { "bot.inFight": false } ] },
      "stop": { "after": 50, "for": 7200, "until": "2026-11-01T20:00" },
      "smiley": 1
    }
  ],
  "replies": {
    "rules": [
      { "when": { "text": { "keywords": ["prix", "combien", "price"] } }, "reply": ["{prix} k l'unité, {viens|rejoins-moi} à Astrub"] },
      { "reply": ["{Salut|Bonjour} {sender}, occupé pour l'instant, je réponds plus tard"] }
    ],
    "perPlayer": { "max": 1, "every": 3600 }
  },
  "triggers": [
    {
      "name": "wtb",
      "when": { "channel": { "in": ["SALES"] }, "text": { "keywords": ["wtb", "achète"] }, "items": { "has": 289 } },
      "do": [ { "whisper": ["Salut {sender}, je vends {item:289} à {prix} k"] }, { "raise": "wtb" } ],
      "perPlayer": { "max": 1, "every": 21600 }
    }
  ],
  "commands": {
    "prefix": "!",
    "trusted": { "names": ["Nom-Du-Maître"], "myBots": true },
    "builtIn": ["stop", "start", "pause", "resume", "say", "status", "disconnect"],
    "statusReply": "niv {level}, {subarea} {position}, {kamas} k, {pods}"
  },
  "status": { "set": "away", "text": "en farm, je reviens plus tard" },
  "timing": { "read": { "min": 2, "max": 6 }, "typing": 6 }
}
Champ Valeurs Par défaut
version 1 obligatoire
name texte obligatoire
description texte aucune
variables nom → texte ; un nom ne peut pas contenir d'accolades, de | ni de : aucune
ads[].name texte aucun
ads[].channels les canaux comme les nomme le protocole du jeu : SALES est Commerce, SEEK Recrutement, GLOBAL Général, COMMUNITY Communauté, GUILD, ALLIANCE, PARTY, TEAM, ARENA obligatoire
ads[].messages modèles au moins un
ads[].order random, inOrder random
ads[].every min, max : secondes, de 1 à 86400 obligatoire
ads[].when des tests, et all, any, not : time (from, to, days en mon...sun), bot.inFight et bot.onTrip (true, false), map.id, map.subarea, map.area (is un identifiant, in une liste), inventory.has (item, atLeast), kamas et level (above, below), flag (un nom) toujours
ads[].stop after (envois), for (secondes depuis le premier envoi), until (une date comme 2026-11-01T20:00, selon l'horloge de l'ordinateur) aucun
ads[].smiley, ads[].emote l'identifiant d'une émoticône ou d'une attitude, pas les deux aucun
replies.rules[].when les tests d'une annonce, et sender.name (is un nom, in une liste) et text (contains, keywords, regex) toujours
replies.rules[].reply modèles, qui lisent {sender} au moins un
replies.perPlayer max réponses, every secondes (de 1 à 86400) 1 toutes les 3600
triggers[].name texte obligatoire
triggers[].when les tests d'une réponse, et channel (is un canal, in une liste), sender.myBot et text.mentionsMe (true, false), items (has l'id d'un objet) toujours
triggers[].do des actions, chacune un objet d'une seule clé : whisper (des modèles, qui lisent {sender}), say (channel, text), raise (le nom de l'événement), script, ignore et invite (true), smiley et emote (un id), pauseChat (secondes, de 1 à 86400) au moins une
triggers[].perPlayer max fois, every secondes (de 1 à 86400) 1 toutes les 3600
commands.prefix 3 caractères au plus, sans espace !
commands.trusted names (des personnages du serveur du bot), myBots (true, false) aucun nom, myBots true
commands.builtIn stop, start, pause, resume, say, status, disconnect toutes
commands.statusReply un modèle {name}, level {level}, {subarea} {position}, {kamas} kamas, {pods} pods
status set : available, away, private, solo ; text, avec away seulement, 256 caractères au plus inchangé
timing.read min, max : secondes, de 0 à 120 2 à 6
timing.typing caractères par seconde, de 1 à 50 6

Un champ que cette version ne lit pas est gardé tel quel et ignoré, donc un profil écrit pour une version plus récente se charge quand même.

Erreurs et avertissements

Une erreur empêche d'utiliser le profil, et son message nomme le champ : un mauvais type, un canal que le jeu ne connaît pas, un message vide, des accolades déséquilibrées dans un modèle, une attente hors limites, un test inconnu, un test sur le message dans la condition d'une annonce ou sur la ligne d'un canal dans celle d'une réponse, une regex qui ne compile pas, une commande, une action ou un statut qui n'en est pas un. Un profil avec une erreur est listé Inutilisable, et les bots le sautent.

Un avertissement est seulement bon à savoir :

  • ads[0].messages[1]: {acheteur} is set by no variable here: a script or another profile must set it
  • ads[0].messages[0]: {sender} never has a value in an ad: the message isn't sent
  • status.set: private keeps strangers' whispers out: the replies get none
  • item 289: not in the game data, pour un identifiant que n'a pas la version du jeu la plus récente que vous avez installée.
  • name: "Blé", but its file is "ble.json": bots use it as "ble", pour un fichier renommé à la main.

Les fichiers des profils

Vos profils sont des fichiers du dossier chatprofiles du dossier des données d'Asterobot, un <nom>.json chacun, exactement au format ci-dessus (Fichiers et dossiers). Un bot relit ses profils quand il se connecte et quand ses réglages de chat changent : un fichier que vous modifiez à la main joue à partir de là.

Un paquet fournit ses profils en chatprofiles/<nom>.json à sa racine. Ils sont listés en @éditeur:paquet/<nom>, et chaque bot utilise la version du paquet la plus récente que vous avez installée.

Read this page in English

Compte

Navigation

Recherche

Recherche

Configurer les notifications push du navigateur

Chrome (Android)
  1. Appuyez sur l'icône de cadenas à côté de la barre d'adresse.
  2. Tap Autorisations → Notifications.
  3. Ajustez vos préférences.
Chrome (Desktop)
  1. Cliquez sur l'icône représentant un cadenas dans la barre d'adresse..
  2. Select Paramètres du site.
  3. Find Notifications et ajustez vos préférences.