Skip to content

Sammelalbum-Jagd

Die meisten Bots greifen die drei Gegner an, die die Arena zufällig anbietet. Für Ehre ist das in Ordnung und fürs Sammelalbum nutzlos, denn diese drei Namen sucht das Spiel aus, nicht das, was dir fehlt.

Mercy SF durchkämmt im Hintergrund die Ruhmeshalle, merkt sich die Ausrüstung jedes gesehenen Spielers und schickt den nächsten Angriff an das global beste schlagbare Ziel: das, welches die meisten Gegenstände trägt, die dein Album noch nicht hat.

Sammelalbum

Eingeschaltet wird das mit auto_scrapbook, und arena_mode gehört auf Scrapbook.

Wie der Pool arbeitet

Der Crawler baut je Konto einen Pool aus Spielern und ihrer Ausrüstung im Speicher auf. Jeder Kampf wird dann aus dem Pool gewählt statt aus der Vorschlagsliste der Arena.

Der Pool lebt für die Sitzung und nicht länger, und das ist Absicht. Ihn zu speichern sah nach kostenlosem Wissen aus und war keines:

  • er wuchs ohne Grenze. Ein gemessenes Konto erreichte 187.136 Spieler in 119 MB und stieg weiter um rund 20 MB alle zwanzig Minuten;
  • jede Änderung schrieb die ganze Datei synchron neu, und zwar unter der Sperre, die der Bot braucht, um einen Kampf zu wählen, und der Arenabildschirm, um zu zeichnen. Gemessen: eine Neuschreibung von 119 MB alle 27 Sekunden;
  • der Schreibvorgang war nicht atomar, und ein fehlgeschlagenes Parsen fiel auf einen leeren Cache zurück, ein Absturz mitten im Schreiben verwarf den ganzen Durchlauf also ohnehin still;
  • zwischengespeicherte Ausrüstung ist eine Momentaufnahme dessen, was jemand getragen hat, und Spieler rüsten ständig um, das meiste, was einen Neustart überlebte, war also falsch.

Bei jedem Lauf neu zu scannen ist auch das, was der Referenzhelfer tut, von dem das inspiriert ist, und zwar aus demselben Grund.

Ein Ziel wählen

Ein Spieler im Pool muss mehrere Hürden nehmen, bevor er einen Angriff wert ist.

HürdeEinstellungStandardBedeutung
Stufenobergrenzescrapbook_max_level_diff0Wie viele Stufen über deiner ein Ziel liegen darf. 0 heißt „nie über mir“.
Stufenuntergrenzescrapbook_min_level_diff0Wie viele Stufen unter deiner ein Ziel liegen darf. 0 heißt keine Untergrenze.
Stärkescrapbook_max_attribute_pct120Deckel auf die Gesamtattribute eines Ziels als Prozentsatz deiner eigenen. 100 wäre „nie stärker als ich“.
Sperrlistearena_never_attackleerNamen, die nie angegriffen werden, egal was sie tragen.
LebendNamen, die der Server mit „Spieler nicht gefunden“ abgelehnt hat, werden gemerkt und übersprungen.

Die beiden Stufengrenzen gibt es beide, weil sie in entgegengesetzte Richtungen scheitern. Weit über dir sind die Kämpfe verloren; weit unter dir sind sie trivial gewonnen, aber die Ausrüstung ist niedrigstufig, bei einem fast vollständigen Album kosten sie also einen kostenlosen Kampf und bringen nichts zurück.

Attribute sagen den Ausgang weit besser voraus als die Stufe, deshalb ist scrapbook_max_attribute_pct der Regler, der tatsächlich entscheidet. Der Standard von 120 lässt ein Ziel zu, das bis zu ein Fünftel stärker ist als du, und das ist ein Kampf, der oft genug verloren geht, um aufzufallen. Setz ihn auf 100, wenn du lieber nie einen verlieren willst.

Die Sperrliste wird gegen jede Quelle geprüft: die drei Vorschläge der Arena, die Ruhmeshalle und den Pool des Crawlers. Ein Name, zu dem du Nein gesagt hast, darf nicht durch eine andere Tür zurückkommen.

Das Suchband

scrapbook_search_band_enabled ist an, und es ändert, wie der Pool durchsucht wird, nicht, wer qualifiziert ist.

Auf einem eingespielten Konto erreicht der Pool sechsstellige Größen, und der bestbewertete Spieler darin steht häufig ganz am Rand des Stufenbereichs, was einen Kampf ergibt, der entweder nicht zu gewinnen oder nichts wert ist. Also beginnt die Suche in einem Band um deine eigene Stufe und weitet sich erst, wenn dieses Band nichts mehr hergibt.

EinstellungStandardBedeutung
scrapbook_search_band_start10Halbe Breite des Bands, bei dem die Suche beginnt, in Stufen.
scrapbook_search_band_step10Stufen, um die das Band wächst, jedes Mal wenn es leer läuft.
scrapbook_search_band_max100Wie breit das Band höchstens wird, bevor es zurück auf den Anfang springt.

Der Rücksprung räumt auch auf. Wenn jede Stufe bis zum Maximum durchgegangen wurde und sich kein Ziel fand, ist die wahrscheinliche Erklärung, dass das Gemerkte veraltet ist, und nicht, dass der Server leer ist.

Alterung

scrapbook_cache_max_age_hours steht standardmäßig auf 72. Gespeicherte Ausrüstung ist eine Momentaufnahme, und Spieler wechseln ständig ihr Zeug, ein vor einer Woche erfasster Eintrag sagt also mehr darüber, was jemand getragen hat, als darüber, was er jetzt trägt. Schlimmer noch: Eine Ausstattung, die du längst gesammelt hast, ist nicht von einer zu unterscheiden, die nie etwas wert war. Auf 0 gesetzt, schaltet das die Alterung ganz ab.

Tote Namen

Spieler werden umbenannt, gelöscht und auf andere Server verschoben. Der Server antwortet „Spieler nicht gefunden“, und ohne Gedächtnis würde ein veralteter Pooleintrag diesen Fehler weitertragen und das ganze Modul für eine Stunde stilllegen. Diese Namen werden je Konto gemerkt, das tote Ziel eines Kontos versteckt also nie einen völlig brauchbaren Spieler für ein anderes.

Die Menge ist auf zehntausend Namen begrenzt. Das zu erreichen heißt, dass der Pool weit mehr umgeschlagen hat als in einer echten Sitzung, also wird er geleert und die wenigen Namen, auf die es noch ankommt, werden für je eine verschwendete Abfrage neu gelernt.

Crawl-Rate

Zwei Einstellungen, und sie tun Verschiedenes.

EinstellungStandardWas sie begrenzt
scrapbook_max_hof_lookups20Abfragen pro Botdurchlauf.
scrapbook_crawl_requests_per_min60Abfragen pro Minute, über das ganze Konto. 0 schaltet die Ratenbegrenzung ab.

Sechzig pro Minute ist dauerhaft ungefähr eine Abfrage pro Sekunde: genug, um den Pool laufend wachsen zu lassen, ohne die Anfragestöße, die das Anheben des Budgets pro Durchlauf allein erzeugen würde. Genau dafür gibt es beide. Wenn der Crawl härter laufen soll, heb beide an.

Weitere Einstellungen

Die Einstellungen für Crawler und Ziele

EinstellungStandardWas sie tut
auto_scrapbookanDas Modul selbst.
scrapbook_crawler_enabledanDie Ruhmeshalle laufend durchkämmen, statt nur die Vorschläge der Arena zu lesen.
scrapbook_after_xp_winsanSammelalbum-Ziele erst jagen, wenn die Erfahrungskämpfe erledigt sind.
scrapbook_scan_arena_opponentsanAuch die Ausrüstung der drei von der Arena angebotenen Gegner erfassen, was kostenlose Information ist.
scrapbook_early_game_priorityanSammelalbum-Kämpfe bevorzugen, solange der Charakter noch niedrigstufig ist, wenn sich das Album am schnellsten füllt.
scrapbook_hof_rankupanEine Kandidatenliste fürs Klettern in der Ruhmeshalle pflegen, nicht nur für Gegenstände.
scrapbook_notify_at0Bescheid geben, sobald das Album so viele Gegenstände erreicht. 0 heißt nie.
buy_scrapbookanSammelalbum-Einträge kaufen, wo das Spiel sie zum Verkauf anbietet.

Wo entschieden wird

Gut zu wissen, wenn du den Quelltext liest: Das Sammelalbum war früher ein eigenes Botmodul, und das war ein Fehler. Es und das Arenamodul glaubten beide, ihnen gehöre die Arena-Abklingzeit, spiegelten die Hürden des jeweils anderen und waren sich uneinig, ob eine Mindestsiegchance einen kostenlosen Kampf verbieten darf.

Die entscheidende Hälfte lebt jetzt im Kampfmodul. Was unter „Sammelalbum“ übrig ist, ist die Mechanik, die den Pool auswählenswert hält: der Crawler, die Alterung, die Stufengrenzen und die Kandidatenliste für den Rangaufstieg.

Siehe auch

Mercy SF steht in keiner Verbindung zu Shakes & Fidget oder Playa Games. Nutzung auf eigenes Risiko.