Unofficial MFBot Update

Was auch immer an Tools für Shakes&Fidget aufkommen, hier können sie vorgestellt werden.
Benutzeravatar
DasAoD
Beiträge: 364
Registriert: Do 14. Mai 2020, 00:14
Hat sich bedankt: 184 Mal
Danksagung erhalten: 118 Mal

Re: Unofficial MFBot Update

Beitrag von DasAoD »

Mir ist beim Anlegen eines neuen Chars aufgefallen, dass die eigene Ausbaureihhenfolge für die Festung scheinbar nicht korrekt abgearbeitet wird – das dürfte wohl schon länger so sein, aber ich hab's bisher nie gemeldet.
(Oder es wurde hier schon diskutiert und ich hab's überlesen – sorry in dem Fall.)

Ich habe unter „Gebäudeausbau" die Option „Ausbau der Gebäude nach eigener Reihenfolge" gewählt und eine Liste definiert:
Screenshot 2026-06-22 190747.png
Screenshot 2026-06-22 190747.png (114.09 KiB) 7530 mal betrachtet
In der

Code: Alles auswählen

Acc.ini
sieht das so aus:

Code: Alles auswählen

FORTRESS.BUILDINGORDERLIST=Fortress,Wooder,Stoner,Worker,Fortress,Treasury,Worker,Fortress,GemMine,Treasury,Worker,Fortress,GroupBonus,...
Was tatsächlich passiert:
Der Bot baut die Festung zweimal aus und startet danach keine weiteren Ausbauten mehr. Die Warteschlange sieht anschließend noch genauso aus wie direkt nach der Einrichtung – als hätte der Bot gar nichts abgearbeitet.
unlucky
Beiträge: 1
Registriert: So 21. Jun 2026, 13:42
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Unofficial MFBot Update

Beitrag von unlucky »

Hello,

I have an issue with remoting.

With a freshly installed linux x64 console version when trying to use remote I get the following:
- In browser:
SPOILER
{"responseMeta":{"interfaceVersion":3,"botVersion":"6.31.0.0","responseType":"TargetInvocationException"},"requestMeta":{"requestMethod":"GET","requestUrl":"http://192.168.1.98/"},"response":{"message":"Exception has been thrown by the target of an invocation.","type":"TargetInvocationException","innerException":{"message":".NET number values such as positive and negative infinity cannot be written as valid JSON. To make it work when using \u0027JsonSerializer\u0027, consider specifying \u0027JsonNumberHandling.AllowNamedFloatingPointLiterals\u0027 (see https://learn.microsoft.com/dotnet/api/ ... erhandling).","type":"ArgumentException"}}}
- On server:
SPOILER
Jun 22 17:24:40 mfbot MFBot_Konsole_Linux_x64[3183]: Running MFBot Konsole MFBot (Marenga v6.31)
Jun 22 17:24:40 mfbot MFBot_Konsole_Linux_x64[3183]: Identified Runtime: .NET 10.0.8
Jun 22 17:24:40 mfbot MFBot_Konsole_Linux_x64[3183]: Type "exit" to stop the bot.
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: 6/22/2026 5:24:44 PM Information General admin@192.168.1.10:51406 calls /
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: 6/22/2026 5:24:44 PM Error Remoting General
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: !##Exception has been thrown by the target of an invocation.
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: !## at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: at MFBot.Remote.RemoteExecutor.Execute()
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: at MFBot.Remote.ServiceImplementation.ProcessRequest(HttpListenerContext ctx)
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: 6/22/2026 5:24:44 PM Information General admin@192.168.1.10:55581 calls /favicon.ico
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: 6/22/2026 5:24:44 PM Error Remoting General
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: !##remaining path is: favicon.ico
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: !## at MFBot.Remote.RemoteExecutor.FindTargetObject()
Jun 22 17:24:44 mfbot MFBot_Konsole_Linux_x64[3183]: at MFBot.Remote.ServiceImplementation.ProcessRequest(HttpListenerContext ctx)
- Logs:
SPOILER
Message: Exception has been thrown by the target of an invocation.
HResult: -2146232828
HelpLink:
Source: System.Private.CoreLib
StackTrace: at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at MFBot.Remote.RemoteExecutor.Execute()
at MFBot.Remote.ServiceImplementation.ProcessRequest(HttpListenerContext ctx)
=== INNER EXCEPTION ===
Message: .NET number values such as positive and negative infinity cannot be written as valid JSON. To make it work when using 'JsonSerializer', consider specifying 'JsonNumberHandling.AllowNamedFloatingPointLiterals' (see https://learn.microsoft.com/dotnet/api/ ... erhandling).
HResult: -2147024809
HelpLink:
Source: System.Text.Json
StackTrace: at System.Text.Json.ThrowHelper.ThrowArgumentException_ValueNotSupported()
at System.Text.Json.Utf8JsonWriter.WriteNumberValue(Double value)
at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.JsonConverter`1.WriteCore(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Serialize(Utf8JsonWriter writer, T& rootValue, Object rootValueBoxed)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.SerializeAsObject(Utf8JsonWriter writer, Object rootValue)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Serialize(Utf8JsonWriter writer, T& rootValue, Object rootValueBoxed)
at System.Text.Json.Nodes.JsonObject.WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options)
at System.Text.Json.Nodes.JsonObject.WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options)
at System.Text.Json.Nodes.JsonArray.WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options)
at System.Text.Json.Nodes.JsonObject.WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options)
at System.Text.Json.Nodes.JsonObject.WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options)
at System.Text.Json.Nodes.JsonObject.WriteTo(Utf8JsonWriter writer, JsonSerializerOptions options)
at System.Text.Json.Serialization.JsonConverter`1.TryWrite(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.JsonConverter`1.WriteCore(Utf8JsonWriter writer, T& value, JsonSerializerOptions options, WriteStack& state)
at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.Serialize(Utf8JsonWriter writer, T& rootValue, Object rootValueBoxed)
at System.Text.Json.JsonSerializer.WriteString[TValue](TValue& value, JsonTypeInfo`1 jsonTypeInfo)
at System.Text.Json.JsonSerializer.Serialize[TValue](TValue value, JsonSerializerOptions options)
at MFBot.Remote.Data.RemoteBaseClass.Serialize(Object o, Boolean headonly, Boolean singleValueAllowed)
at MFBot.Remote.Data.RemoteBaseClass.HttpGet(String json, String propertyName, String propertyIndex)
at InvokeStub_RemoteBaseClass.HttpGet(Object, Span`1)
at System.Reflection.MethodBaseInvoker.InvokeWithFewArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
20260622 19:38:43 Info Remoting admin@192.168.1.10:51429 calls /favicon.ico
20260622 19:38:43 Error Remoting remaining path is: favicon.ico
Message: remaining path is: favicon.ico
HResult: -2146233088
HelpLink:
Source: MFBotCore
StackTrace: at MFBot.Remote.RemoteExecutor.FindTargetObject()
at MFBot.Remote.ServiceImplementation.ProcessRequest(HttpListenerContext ctx)
It is running on ubuntu 26.04.
Running as root user with a systemctl service, also tried running it manually.

Acc.ini copied over from Windows x64 (with logged in user).
Remoting also fails when started from Windows client, in the GUI it says running, however from the browser it just sends raw json.

Any known fixes please?
Benutzeravatar
frank42
Beiträge: 137
Registriert: Mi 3. Jul 2019, 14:43
Hat sich bedankt: 22 Mal
Danksagung erhalten: 29 Mal

Re: Unofficial MFBot Update

Beitrag von frank42 »

neuhier hat geschrieben: Mo 22. Jun 2026, 16:21
frank42 hat geschrieben: Mo 22. Jun 2026, 12:53 Hi!
Mir ist gerade aufgefallen, dass anscheinend (möglicherweise schon länger) die Sanduhren zur Abkürzung von Expeditionen nicht genutzt werden.
Ich habe es mit TAVERN.SKIP_QUEST.GLASS.MINUTES=1, TAVERN.SKIP_QUEST.GLASS.MINUTES=5 und TAVERN.SKIP_QUEST.GLASS.MINUTES=0 probiert (wobei 0 in 15 geändert wird). Nur mit "1" als Setting scheint es zu funktionieren.

Auch scheint die Menge nicht richtig erfasst zu werden... in der Acc.ini steht aktuell ACCOUNT.QUICKSANDGLASSAMOUNT=100/22/True, dabei habe ich momentan knapp 12000 davon :-)
Das liegt daran das du die settings falsch interpretierst, ohne UI ist das nicht so einfach :D
Worauf basiert deine Annahme? Hast du dir den entsprechenden Code angeschaut oder einfach nur geraten?

Weil TavernTasker.cs sagt:

Code: Alles auswählen

    private void HandleExpeditionWait(ExpeditionWaitingStage ews) {
        SFTools.SleepRandom(500, 1500);
        var busyUntil = ews.BusyUntil;
        var remainingMinutes = (busyUntil - DateTime.Now).TotalMinutes;
        if (remainingMinutes <= 0) {
            acc.Send(new ExpeditionPickEncounterCommand(1));
        } else if (Settings.SkipQuestsWithGlass &&
                   acc.QuickSandGlassAmount > 0 && remainingMinutes >=
                   Settings.SkipQuestsWithGlassMinutes) {
            Tavern.skipExpedition(SkipType.Glass);
        }
    }
Wenn ich das richtig sehe, dann wird geskippt, wenn die Wartezeit >= Settings.SkipQuestsWithGlassMinutes ist, welche wiederum aus dem Wert von TAVERN.SKIP_QUEST.GLASS.MINUTES in der Settings.cs gesetzt wird.
Wenn das also auf 0 steht, sollte eigentlich immer geskippt werden, weil das "remainingMinutes >= Settings.SkipQuestsWithGlassMinutes" dann immer true ist.
Benutzeravatar
DasAoD
Beiträge: 364
Registriert: Do 14. Mai 2020, 00:14
Hat sich bedankt: 184 Mal
Danksagung erhalten: 118 Mal

Re: Unofficial MFBot Update

Beitrag von DasAoD »

0 ist anscheinend nicht vorgesehen, weshalb bei dir die Einstellung dann immer auf 15 Minuten zurückgesetzt wird.

Einstellung auf 1 Minute setzen sollte auch immer skippen, da ja keine Quest/Expedition unter 1 Minute läuft.
Tut es ja bei dir, wenn ich das von der Vierseite korrekt gelesen habe.
Dateianhänge
Screenshot_20260623-124245.jpg
Screenshot_20260623-124245.jpg (13.97 KiB) 7465 mal betrachtet
Madanach420
Beiträge: 1
Registriert: Mi 24. Jun 2026, 11:52
Hat sich bedankt: 0
Danksagung erhalten: 0

Re: Unofficial MFBot Update

Beitrag von Madanach420 »

Is there anything planned for adding legendary dungeon support?
Morenaowo
Beiträge: 19
Registriert: Mi 26. Nov 2025, 18:07
Hat sich bedankt: 2 Mal
Danksagung erhalten: 0

Re: Unofficial MFBot Update

Beitrag von Morenaowo »

Hi marenga why bot skilled only strength on this 1 acc?
Bild
Benutzeravatar
frank42
Beiträge: 137
Registriert: Mi 3. Jul 2019, 14:43
Hat sich bedankt: 22 Mal
Danksagung erhalten: 29 Mal

Re: Unofficial MFBot Update

Beitrag von frank42 »

Moin,
Ist mir letztes Mal schon komisch vorgekommen, und habe das jetzt genauer beobachtet, aber es sieht so aus, als ob beim Festungsausbau auch der Ausbau der Edelsteinmine nicht mehr so funktioniert, wie er mal tat.

Ich sehe im Log

Code: Alles auswählen

20260630 13:10:02 Info Fortress Das Festungsgebäude "Edelsteinmine" wurde fertiggestellt.
allerdings wurde die nächste Ausbaustufe nicht gestartet.
Dies sind die relevanten Settings:

Code: Alles auswählen

FORTRESS.BUILD.BUILDING=1
FORTRESS.BUILDINGORDERLIST=None
FORTRESS.BUILDORDER=Custom
FORTRESS.BUILDORDER.FALLBACK=0
Ich habe daran in den letzten Jahren nichts daran geändert, aber bisher wurde die Mine immer ausgebaut (alles andere ist schon lange auf max).

Was mich in dem Kontext auch wundert ist dies in der Acc.ini:

Code: Alles auswählen

ACCOUNT.FORTRESSGEMMINELEVEL=100/83/True
Da meine Mine aktuell auf Level 70 ist und nicht auf Level 83. Eventuell baut der deswegen nicht mehr aus? Generell scheinen mir die Werte teilweise sehr absurd unter ACCOUNT.FORTRESS*LEVEL.
Benutzeravatar
DasAoD
Beiträge: 364
Registriert: Do 14. Mai 2020, 00:14
Hat sich bedankt: 184 Mal
Danksagung erhalten: 118 Mal

Re: Unofficial MFBot Update

Beitrag von DasAoD »

Ich habe die Befürchtung, dass bei den Edelsteinen auch etwas defekt ist.
Werden bei sonst noch jemandem die legendären Edelsteine nicht mehr eingesetzt?
denamon
Beiträge: 52
Registriert: Mi 6. Mär 2024, 16:15
Hat sich bedankt: 31 Mal
Danksagung erhalten: 6 Mal

Re: Unofficial MFBot Update

Beitrag von denamon »

Any updates on the new UI version 😁
Folgende Benutzer bedankten sich beim Autor denamon für den Beitrag:
Jirkaon (Fr 3. Jul 2026, 14:57)
Dams63100
Beiträge: 3
Registriert: Sa 9. Dez 2023, 11:47
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Unofficial MFBot Update

Beitrag von Dams63100 »

FR :

Bonjour à tous,

Tout d’abord merci ENORMEMENT pour la reprise du bot, je l'utilise depuis des années, sans problème, j'adore ce logiciel

Quelques idées d'amélioration que je propose :

- Ville / Attendre 10 victoires en arène : pouvoir modifier le nombre, personnellement je trouve que 10 c'est trop peu pour gagner les succès du jeu

- Personnage / Equipement : Je ne comprends pas bien comment ça fonctionne, il faudrait que le mannequin s'active à X heure pour pouvoir faire les quetes/expéditions avec, et qu'il se désactive une fois les quêtes/expéditions terminées pour la garde (ça permettrais d'avoir un équipement XP/GOLD/EPIC et un COMBAT qui s'alterne à une heure précise, ou plus simplement de X heures à X heures mannequin, puis de X heures à X heures le vrai équipement).

- Echangeur / Démonté les objets sans cout en or au forgeron : Je pense qu'il manque une fonction pour démonter tout les item (option épique ou non) au forgeron, aujourd'hui je me connecte réellement une fois par semaine, et mon inventaire est pleins d'item que je passe juste en forgeron/chaudrons pour le vider) l'idée serait d'en démonter 5/5 puis le reste en chaudrons par exemple, peu etre tout les jours à une heure fixe genre 23h.

- Echangeur / Potions : Meme avec toutes les cases pour les grandes potions cochée, il m'arrive souvent de ne pas avoir 3/3 potions sur mon personnage mais d'en avoir de disponible dans l'inventaire (la traduction FR est bizarre, "Constitution / Bonheur")

- Toilette : J'aimerais pouvoir choisir quoi mettre dedans avec un ordre de priorité, exemple : petite gemmes, moyenne gemme, grande gemme, gemme noire, gemme rouge, item classique, item épique, le tout en pouvant sélectionner ce qu'on accepte ou non. Aujourd'hui il n'y a pas de différence pour les gemmes si on coche "préférer les gemmes" donc si on a uniquement dans notre inventaire 3 gemmes rouge qu'on stock pour plus tard, elles partirons au toilettes.

-------------------------------------------------------

EN :

Hello everyone,

First of all, a HUGE thank you for taking over the bot; I’ve been using it for years without issues—I love this software.

Here are a few ideas for improvement:

- City / Wait for 10 arena wins: It would be great to be able to change this number; personally, I find 10 too low for completing in-game achievements.

- Character / Equipment: I don't quite understand how this works. It would be ideal if the "dummy" set activated at a specific time to handle quests/expeditions, and then deactivated once those are finished so the character switches back to guard duty. This would allow for alternating between XP/Gold/Epic gear and Combat gear at specific times (or simply: dummy gear from time X to Y, then actual gear from time X to Y).

- Exchanger / Dismantle items at the blacksmith for zero gold cost: I think a feature is missing to dismantle all items (epics included or not) at the blacksmith. Currently, I only log in once a week, and my inventory is full of items I just dump into the blacksmith or cauldron to clear space. The idea would be to dismantle 5 items and put the rest into the cauldron, for example—perhaps daily at a fixed time like 11 PM.

- Exchanger / Potions: Even with all the boxes for "Large Potions" checked, I often find myself without a full set of 3 potions on my character, despite having them available in my inventory (the French translation is a bit odd: "Constitution / Happiness").

- Toilet: I’d like to be able to choose what goes in there based on a priority order—for example: small gem, medium gem, large gem, black gem, red gem, standard item, epic item—while being able to select exactly which ones to accept or reject. Currently, there is no distinction regarding gems if the "prefer gems" option is checked; so, if you have only three red gems in your inventory that you're saving for later, they will end up in the Mystic Toilet.
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste