Caccia all'album
La maggior parte dei bot attacca i tre avversari che l'arena propone. Va bene per l'onore ed è inutile per l'album, perché quei tre nomi li sceglie il gioco, non quello che ti manca.
Mercy SF scandaglia l'Albo d'oro in sottofondo, ricorda l'equipaggiamento di ogni giocatore che vede e manda l'attacco successivo sul miglior bersaglio battibile in assoluto: quello che porta più oggetti che il tuo album non ha ancora.

Si attiva con auto_scrapbook, e arena_mode va messo su Scrapbook.
Come funziona il bacino
Il crawler costruisce in memoria, per account, un bacino di giocatori e del loro equipaggiamento. Ogni combattimento viene poi scelto dal bacino invece che dall'elenco di suggerimenti dell'arena.
Il bacino vive per la sessione e non oltre, ed è una scelta. Conservarlo sembrava conoscenza gratuita e non lo era:
- cresceva senza limiti. Un account misurato ha raggiunto 187.136 giocatori in 119 MB e continuava a salire di circa 20 MB ogni venti minuti;
- ogni modifica riscriveva l'intero file in modo sincrono, tenendo il lock che serve al bot per scegliere un combattimento e alla schermata Arena per disegnarsi. Misurato: una riscrittura da 119 MB ogni 27 secondi;
- la scrittura non era atomica, e una lettura fallita ripiegava su una cache vuota, quindi un crash a metà scrittura buttava comunque via in silenzio tutta la scansione;
- l'equipaggiamento in cache è un'istantanea di quello che qualcuno indossava, e i giocatori si riequipaggiano di continuo, quindi gran parte di ciò che sopravviveva a un riavvio era sbagliato.
Riscansionare a ogni avvio è ciò che fa lo strumento di riferimento a cui questo si ispira, per lo stesso motivo.
Scegliere un bersaglio
Un giocatore nel bacino deve superare diversi filtri prima di valere un attacco.
| Filtro | Impostazione | Predefinito | Significato |
|---|---|---|---|
| Tetto di livello | scrapbook_max_level_diff | 0 | Quanti livelli sopra il tuo può stare un bersaglio. 0 significa «mai sopra di me». |
| Soglia di livello | scrapbook_min_level_diff | 0 | Quanti livelli sotto il tuo può stare un bersaglio. 0 significa nessuna soglia. |
| Forza | scrapbook_max_attribute_pct | 120 | Tetto agli attributi totali di un bersaglio, in percentuale dei tuoi. 100 significherebbe «mai più forte di me». |
| Lista di blocco | arena_never_attack | vuoto | Nomi mai attaccati, qualunque cosa portino. |
| Vivo | I nomi che il server ha respinto con «giocatore non trovato» vengono ricordati e saltati. |
I due limiti di livello esistono entrambi perché falliscono in direzioni opposte. Molto sopra di te i combattimenti si perdono; molto sotto si vincono senza sforzo ma l'equipaggiamento è di fascia bassa, quindi su un album quasi completo costano un combattimento gratuito e non restituiscono nulla.
Gli attributi prevedono l'esito molto meglio del livello, quindi scrapbook_max_attribute_pct è la manopola che decide davvero. Il valore di serie di 120 ammette un bersaglio fino a un quinto più forte di te, il che è un combattimento perso abbastanza spesso da notarsi. Abbassalo a 100 se preferisci non perderne nessuno.
La lista di blocco viene controllata contro ogni fonte: i tre suggerimenti dell'arena, l'Albo d'oro e il bacino del crawler. Un nome a cui hai detto no non deve rientrare da un'altra porta.
La fascia di ricerca
scrapbook_search_band_enabled è attivo, e cambia il modo in cui il bacino viene cercato, non chi è idoneo.
Su un account avviato il bacino arriva a sei cifre, e il giocatore col punteggio migliore si trova spesso all'estremo dell'intervallo di livelli, il che dà un combattimento o invincibile o senza valore. La ricerca parte quindi da una fascia attorno al tuo livello e si allarga solo quando quella fascia si esaurisce.
| Impostazione | Predefinito | Significato |
|---|---|---|
scrapbook_search_band_start | 10 | Semiampiezza della fascia da cui parte la ricerca, in livelli. |
scrapbook_search_band_step | 10 | Livelli di cui la fascia cresce ogni volta che si esaurisce. |
scrapbook_search_band_max | 100 | Ampiezza massima della fascia prima che torni all'inizio. |
Il ritorno all'inizio fa anche pulizia. Aver spazzato ogni livello fino al massimo senza trovare un bersaglio si spiega più facilmente con ricordi ormai vecchi che con un server vuoto.
Invecchiamento
scrapbook_cache_max_age_hours vale di serie 72. L'equipaggiamento in cache è un'istantanea, e i giocatori cambiano roba di continuo, quindi una voce raccolta una settimana fa dice più su cosa qualcuno indossava che su cosa indossa adesso. Peggio: un corredo che hai già collezionato è indistinguibile da uno che non ha mai avuto valore. Impostarlo a 0 disattiva del tutto l'invecchiamento.
Nomi morti
I giocatori vengono rinominati, cancellati e trasferiti di server. Il server risponde «giocatore non trovato», e senza memoria una voce vecchia del bacino propagherebbe quell'errore e metterebbe fermo l'intero modulo per un'ora. Quei nomi vengono ricordati per account, così il bersaglio morto di un account non nasconde mai un giocatore perfettamente valido a un altro.
L'insieme è limitato a diecimila nomi. Arrivarci significa che il bacino ha girato molto più di quanto faccia una sessione reale, quindi viene svuotato e i pochi nomi che contano ancora si riimparano al costo di una ricerca sprecata ciascuno.
Ritmo della scansione
Due impostazioni, e fanno lavori diversi.
| Impostazione | Predefinito | Cosa limita |
|---|---|---|
scrapbook_max_hof_lookups | 20 | Ricerche per ciclo del bot. |
scrapbook_crawl_requests_per_min | 60 | Ricerche al minuto, su tutto l'account. 0 disattiva il limite. |
Sessanta al minuto è all'incirca una ricerca al secondo in continuo: abbastanza da far crescere il bacino senza le raffiche di richieste che produrrebbe alzare da solo il budget per ciclo. È esattamente per questo che esistono entrambe. Se vuoi che la scansione spinga di più, alza tutt'e due.
Altre impostazioni

| Impostazione | Predefinito | Cosa fa |
|---|---|---|
auto_scrapbook | attivo | Il modulo in sé. |
scrapbook_crawler_enabled | attivo | Scandagliare l'Albo d'oro di continuo invece di leggere solo i suggerimenti dell'arena. |
scrapbook_after_xp_wins | attivo | Cacciare bersagli per l'album solo dopo aver fatto i combattimenti di esperienza. |
scrapbook_scan_arena_opponents | attivo | Registrare anche l'equipaggiamento dei tre avversari proposti dall'arena, che è informazione gratuita. |
scrapbook_early_game_priority | attivo | Preferire i combattimenti per l'album finché il personaggio è di basso livello, quando l'album si riempie più in fretta. |
scrapbook_hof_rankup | attivo | Tenere un elenco di candidati per scalare l'Albo d'oro, non solo per gli oggetti. |
scrapbook_notify_at | 0 | Avvisami quando l'album raggiunge questo numero di oggetti. 0 significa mai. |
buy_scrapbook | attivo | Comprare voci dell'album dove il gioco le mette in vendita. |
Dove si decide
Vale la pena saperlo se leggi il sorgente: l'album era un modulo del bot a sé, e quello era un difetto. Lui e il modulo dell'arena credevano entrambi di possedere la ricarica dell'arena, si rispecchiavano i filtri a vicenda ed erano in disaccordo sul fatto che una soglia di probabilità possa mettere il veto a un combattimento gratuito.
La metà che decide vive ora nel modulo di combattimento. Ciò che resta sotto «album» è la macchina che tiene il bacino degno di scelta: il crawler, l'invecchiamento, i limiti di livello e l'elenco dei candidati per la scalata.