Skip to content

Chasse à l'album

La plupart des bots attaquent les trois adversaires que l'arène propose. C'est très bien pour l'honneur et inutile pour l'album, parce que ces trois noms sont choisis par le jeu, pas par ce qui vous manque.

Mercy SF parcourt le Panthéon en arrière-plan, retient l'équipement de chaque joueur qu'il voit, et envoie l'attaque suivante sur la meilleure cible battable au niveau global : celle qui porte le plus d'objets que votre album n'a pas encore.

Album

Activez-le avec auto_scrapbook, et mettez arena_mode sur Scrapbook.

Comment fonctionne le vivier

Le crawler construit en mémoire, par compte, un vivier de joueurs et de leur équipement. Chaque combat est ensuite choisi dans le vivier plutôt que dans la liste de suggestions de l'arène.

Le vivier vit le temps de la session et pas plus, et c'est délibéré. Le conserver avait l'air d'être une connaissance gratuite, et ne l'était pas :

  • il grossissait sans limite. Un compte mesuré a atteint 187 136 joueurs pour 119 Mo et grimpait encore d'environ 20 Mo toutes les vingt minutes ;
  • chaque changement réécrivait tout le fichier de façon synchrone, en tenant le verrou dont le bot a besoin pour choisir un combat et dont l'écran Arène a besoin pour s'afficher. Mesuré : une réécriture de 119 Mo toutes les 27 secondes ;
  • l'écriture n'était pas atomique, et un échec de lecture retombait sur un cache vide, donc un plantage en cours d'écriture jetait de toute façon silencieusement tout le parcours ;
  • l'équipement en cache est un instantané de ce que quelqu'un portait, et les joueurs se rééquipent en permanence, donc l'essentiel de ce qui survivait à un redémarrage était faux.

Rescanner à chaque exécution est ce que fait l'outil de référence dont ceci s'inspire, pour la même raison.

Choisir une cible

Un joueur du vivier doit franchir plusieurs filtres avant de valoir une attaque.

FiltreRéglagePar défautSens
Plafond de niveauscrapbook_max_level_diff0Combien de niveaux au-dessus du vôtre une cible peut être. 0 veut dire « jamais au-dessus de moi ».
Plancher de niveauscrapbook_min_level_diff0Combien de niveaux en dessous du vôtre une cible peut être. 0 veut dire pas de plancher.
Forcescrapbook_max_attribute_pct120Plafond sur les attributs totaux d'une cible, en pourcentage des vôtres. 100 voudrait dire « jamais plus fort que moi ».
Liste noirearena_never_attackvideNoms jamais attaqués, quoi qu'ils portent.
VivantLes noms que le serveur a rejetés par « joueur introuvable » sont retenus et sautés.

Les deux limites de niveau existent toutes les deux parce qu'elles échouent dans des directions opposées. Loin au-dessus de vous, les combats sont perdus ; loin en dessous, ils sont gagnés sans effort mais l'équipement est de bas niveau, donc sur un album presque complet ils coûtent un combat gratuit et ne rapportent rien.

Les attributs prédisent l'issue bien mieux que le niveau, donc scrapbook_max_attribute_pct est le bouton qui décide réellement. La valeur par défaut de 120 autorise une cible jusqu'à un cinquième plus forte que vous, ce qui est un combat perdu assez souvent pour se remarquer. Descendez-la à 100 si vous préférez n'en perdre aucun.

La liste noire est vérifiée contre toutes les sources : les trois suggestions de l'arène, le Panthéon et le vivier du crawler. Un nom auquel vous avez dit non ne doit pas revenir par une autre porte.

La bande de recherche

scrapbook_search_band_enabled est activé, et cela change la façon dont le vivier est fouillé, pas qui est éligible.

Le vivier atteint six chiffres sur un compte installé, et le joueur qui y obtient le meilleur score se trouve fréquemment à l'extrémité de la plage de niveaux, ce qui donne un combat soit ingagnable, soit sans valeur. La recherche commence donc dans une bande autour de votre propre niveau et ne s'élargit que quand cette bande s'épuise.

RéglagePar défautSens
scrapbook_search_band_start10Demi-largeur de la bande où commence la recherche, en niveaux.
scrapbook_search_band_step10Niveaux dont la bande grandit chaque fois qu'elle s'épuise.
scrapbook_search_band_max100Largeur maximale de la bande avant qu'elle ne revienne au début.

Le retour au début fait aussi le ménage. Avoir balayé chaque niveau jusqu'au maximum sans trouver de cible s'explique plus probablement par des souvenirs périmés que par un serveur vide.

Vieillissement

scrapbook_cache_max_age_hours vaut 72 par défaut. L'équipement en cache est un instantané, et les joueurs changent de matériel sans arrêt, donc une entrée relevée il y a une semaine dit davantage ce que quelqu'un portait que ce qu'il porte maintenant. Pire, une panoplie que vous avez déjà collectée ne se distingue pas d'une qui n'a jamais rien valu. Le mettre à 0 désactive complètement le vieillissement.

Noms morts

Les joueurs sont renommés, supprimés et transférés de serveur. Le serveur répond « joueur introuvable », et sans mémoire une entrée périmée du vivier propagerait cette erreur et mettrait tout le module au repos pendant une heure. Ces noms sont retenus par compte, donc la cible morte d'un compte ne cache jamais un joueur tout à fait valable pour un autre.

L'ensemble est borné à dix mille noms. L'atteindre signifie que le vivier a tourné bien plus qu'une session réelle ne le fait, il est donc vidé et les quelques noms qui comptent encore sont réappris au prix d'une requête gâchée chacun.

Rythme du parcours

Deux réglages, et ils font des choses différentes.

RéglagePar défautCe qu'il limite
scrapbook_max_hof_lookups20Requêtes par cycle du bot.
scrapbook_crawl_requests_per_min60Requêtes par minute, pour tout le compte. 0 désactive la limite.

Soixante par minute, c'est en gros une requête par seconde en continu : assez pour faire grossir le vivier sans les rafales de requêtes que produirait le seul fait d'augmenter le budget par cycle. C'est précisément pour cela que les deux existent. Si vous voulez que le parcours pousse plus fort, montez les deux.

Autres réglages

Les réglages du crawler et des cibles

RéglagePar défautCe qu'il fait
auto_scrapbookactivéLe module lui-même.
scrapbook_crawler_enabledactivéParcourir le Panthéon en continu plutôt que de lire seulement les suggestions de l'arène.
scrapbook_after_xp_winsactivéNe chasser les cibles d'album qu'une fois les combats d'expérience faits.
scrapbook_scan_arena_opponentsactivéEnregistrer aussi l'équipement des trois adversaires proposés par l'arène, qui est une information gratuite.
scrapbook_early_game_priorityactivéPréférer les combats d'album tant que le personnage est de bas niveau, quand l'album se remplit le plus vite.
scrapbook_hof_rankupactivéTenir une liste de candidats pour monter au Panthéon, et pas seulement pour les objets.
scrapbook_notify_at0Me prévenir quand l'album atteint ce nombre d'objets. 0 veut dire jamais.
buy_scrapbookactivéAcheter des entrées d'album là où le jeu les propose à la vente.

Où se prend la décision

Bon à savoir si vous lisez le code : l'album était autrefois un module de bot à part entière, et c'était un bug. Lui et le module d'arène croyaient tous deux posséder le temps de recharge de l'arène, reproduisaient les filtres l'un de l'autre, et n'étaient pas d'accord sur le fait qu'un plancher de probabilité puisse opposer son veto à un combat gratuit.

La moitié décisionnelle vit maintenant dans le module de combat. Ce qui reste sous « album », c'est la machinerie qui garde le vivier digne d'être choisi : le crawler, le vieillissement, les limites de niveau et la liste de candidats à la montée.

Voir aussi

Mercy SF n'est affilié ni à Shakes & Fidget ni à Playa Games. Utilisation à vos risques.