Robin hat geschrieben:Hallo zusammen,
zunächst mal: Es tut mir leid um deine Pilze - leider kann ich nicht ganz nachvollziehen, warum der neueste Bot Pilze für Arenakämpfe ausgeben sollte - seit dem Update stürzt er bei der Gegnersuche ab, zu 100% - zumal sie in der 4.2.6.3 komplett abgeschaltet ist, um den Absturz zu verhindern.
Den Rest haben Zaphod und Forestbear schon ganz adäquat wiedergegeben.
Grüße,
Robin
Hab ich ja in meinem unübersichtlichen Edits geschrieben, dass es wegen den Edelstein-Items ist, bez. volles Inv ,)
Robin, ich hoffe aber nur, ihr Baut für alle Pilz funktionen ne Delay funktion ein(der bot hat über 100angriffe in unter ner min gemacht auf 1nem char o.o), damit das nicht so krass schnell passiert wie bei mir ^^ ist ergärlich wenn das einem selbst dann mal passiert mit ner menge pilze... ^^
vlt. ein max. arena kämpfe limit machen? bei 10/20 siegen gar keine mehr machen?
mh, kann der Bot denn Pilz-Knöpfe sehen? Kann er unterscheiden, ob der Knopfdruck einen Pilz kosten wird oder nicht? Oder musstet ihr in auf "blind" programmieren, mit timern o.ä.?
Face On Mars hat geschrieben:mh, kann der Bot denn Pilz-Knöpfe sehen? Kann er unterscheiden, ob der Knopfdruck einen Pilz kosten wird oder nicht? Oder musstet ihr in auf "blind" programmieren, mit timern o.ä.?
Erstmal vorweg : Mit 4.6.2.3 sollten eigentlich garkeine Arena Kämpfe möglich sein - Das generelle Konzept der Arena ist,dass ein Gegner zwischen 12 und 15 min angegriffen wird,heißt der Bot greift normaler Weise immer über die 10min Cooldown-Schwelle an
Face On Mars hat geschrieben:mh, kann der Bot denn Pilz-Knöpfe sehen? Kann er unterscheiden, ob der Knopfdruck einen Pilz kosten wird oder nicht? Oder musstet ihr in auf "blind" programmieren, mit timern o.ä.?
Der Bot erkennt keine Buttons o.ä. - er arbeitet viel mehr mit Werten wie Timestamps etc. über die du anhand einer errechneten Differenz dann feststellen kannst, ob ein Pilz verbraucht werden würde oder nicht. Also ganz blind ist es auch nicht programmiert
Ok, genau sowas meinte ich mit "blind". Könnte man nicht einen zusätzlichen Sicherheitsmechanismus einbauen, dass er z.B. direkt vor Arena oder Dungeon den Pilzstand abruft und direkt nach der Aktion wieder abruft, und wenn dann ein Pilz fehlt, dass er eine Arena und Dungeon Notabschaltung durchführt und den Benutzer informiert "Es wurden eventuell Pilze verbraucht wo sie nicht verbraucht werden sollten, darum wurde Arena/Dungeon abgeschaltet und müssen von dir wieder eingeschaltet werden wenn gewünscht".
Ist ne Krücke, gell Eventuell selbst auch bugschwanger. Aber Pilze sind wertvoll, man sollte sie irgendwie wegschließen können.
Interessant ist ja, dass es exakt einen solchen Mechanismus gibt, er schaltet nur nicht die Arena/Dungeons ab.
Der Bot prüft nach jeder, und zwar ausnahmslos jeder Aktion den Pilzstand, und wenn er verbraucht wurde, wo er nicht verbraucht werden sollte (und soweit ich weiß auch bei jeder anderen Gelegenheit), wird das als Warnung im Log ausgegeben ("Achtung, eine vorhergehende oder die aktuelle Aktion(zwischen {0} und jetzt) hat {1} Pilze verbraucht!").
Wenn nicht mal der Bot sieht, dass die Pilze weg gehen, dann kann ich auch nichts machen.
Robin hat geschrieben:Interessant ist ja, dass es exakt einen solchen Mechanismus gibt, er schaltet nur nicht die Arena/Dungeons ab.
Der Bot prüft nach jeder, und zwar ausnahmslos jeder Aktion den Pilzstand, und wenn er verbraucht wurde, wo er nicht verbraucht werden sollte (und soweit ich weiß auch bei jeder anderen Gelegenheit), wird das als Warnung im Log ausgegeben ("Achtung, eine vorhergehende oder die aktuelle Aktion(zwischen {0} und jetzt) hat {1} Pilze verbraucht!").
Wenn nicht mal der Bot sieht, dass die Pilze weg gehen, dann kann ich auch nichts machen.
Grüße,
Robin
Robin ^^
Deine aussage ''Wenn nicht mal der Bot sieht, dass die Pilze weg gehen, dann kann ich auch nichts machen.'' amüssiert mich grad bissl Ich denk einfach mal, da ist was verbuggt, der vlt. sehr sehr selten auftritt? Oder die Pilzabfrage irgendwie nicht richtig funktioniert hat bei XY Sitoutation? (Nur müsste man wissen wo wie wann was....) Gab doch schonmal vor längerer Zeit nen User hier im Forum der ein Thread aufgemacht hat (ich find den nimmer), der das gleiche Problem beklagte wie ich, dass der Bot seine Pilze verbraten hat ^^ Erinnerst du dich noch Robin? Wenn ja, kamt ihr da auf nen grünen Zweig da damals? Ach, ist ja jetz wurscht, wegen den Pilzen, passiert, kein Programm ist ohne Fehler... Vlt. Skynet 2.0 irgendwann mal
Edit: Robin, vlt. für dich Interessant, wenn du willst kann ich noch weiter nach solchen Fehlern graben bez. Pilz-Bug, hab mal die Logs überflogen..
PS; am ende sieht man dann wiviel Pilze verbraten wurden, hab ganz viele solche Fehler gefunden im Log^.. Ich weiss aber nicht, ober die Fehler vor dem verbraten der Pilze nen zusammenhang habn kp..., Und ich kann jetzt nicht sagen, ob wirklich alle Pilze in Arena verbraten wurden, ich denk aber schon, gäbe sonst kein sinn, wie auf seite 1 mit den xy angriffen in einer Minute ^^
Vlt. hilft das weiter
SPOILER
20150925 13:56:01 Info Core Logging in...
20150925 13:56:02 Info RequestResponse Account wurde eingeloggt.
20150925 13:56:02 Error Core Der Wert darf nicht NULL sein.
Parametername: source
Message: Der Wert darf nicht NULL sein.
Parametername: source
HResult: -2147467261
Source: System.Core
StackTrace: bei System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player.update(CharResponse resp, Boolean _refralbum) in File3:Zeile 328.
bei A..(Object , CharResponse , Boolean )
bei de.mfbot.MFBot_NG.Basisbibliothek.Player..ctor(CharResponse rawData, Server s) in File3:Zeile 271.
bei de.mfbot.MFBot_NG.Basisbibliothek.ArenaResponse..ctor(String rewardString, FightRound[] fight, Account acc, Boolean mail) in File22:Zeile 676.
bei de.mfbot.MFBot_NG.Basisbibliothek.Response..ctor(String rawData, Account acc, Boolean newResponse, Command cmd, Boolean plaintext) in File11:Zeile 567.
bei (String , Account , Boolean , Command , Boolean )
bei A..(String , Account , Boolean , Command , Boolean )
bei de.mfbot.MFBot_NG.Basisbibliothek.Response.createResponse(String rawData, Command request, Account acc) in File11:Zeile 187.
bei A.
.(String , Command , Account )
bei de.mfbot.MFBot_NG.Basisbibliothek.Server.send(Account acc, Command cmd) in File72:Zeile 458.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.send(Command command) in File0:Zeile 163.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.attack(Player foe) in File0:Zeile 510.
bei A..(Object , Player )
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1358.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1750.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1043.
TargetSite: System.Collections.Generic.IEnumerable`1[TSource] Where[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Boolean])
20150925 13:56:02 Info Tavern Taverne wird betreten..
20150925 13:56:02 Info Tavern Quest 1: 02:30 min, 3642.86 Gold (24.29/s), 85557 EP (570.38/s)
20150925 13:56:02 Info Tavern Quest 2: 02:30 min, 1217.86 Gold (8.12/s), 85543 EP (570.29/s)
20150925 13:56:02 Info Tavern Quest 3: 02:30 min, 1751.43 Gold (11.68/s), 66514 EP (443.43/s)
20150925 13:56:02 Info Tavern SMART Auswahl Erfahrung statt Gold... Gold/Sekunde (Quest 1) ist 5.57 unter Mittelwert (18.66%)
20150925 13:56:02 Warn Mushrooms Achtung, eine vorhergehende oder die aktuelle Aktion(zwischen 25.09.2015 13:55:58 und jetzt) hat 13 Pilze verbraucht!
20150925 13:56:02 Info Tavern Quest gestartet: Quest 1 nach Auswahlverfahren Smart
SPOILER
20150925 13:36:17 Info Core Logging in...
20150925 13:36:17 Info RequestResponse Account wurde eingeloggt.
20150925 13:36:18 Error Core Der Wert darf nicht NULL sein.
Parametername: source
Message: Der Wert darf nicht NULL sein.
Parametername: source
HResult: -2147467261
Source: System.Core
StackTrace: bei System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player.update(CharResponse resp, Boolean _refralbum)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player..ctor(CharResponse rawData, Server s)
bei de.mfbot.MFBot_NG.Basisbibliothek.ArenaResponse..ctor(String rewardString, FightRound[] fight, Account acc, Boolean mail)
bei de.mfbot.MFBot_NG.Basisbibliothek.Response..ctor(String rawData, Account acc, Boolean newResponse, Command cmd, Boolean plaintext)
bei (String , Account , Boolean , Command , Boolean )
bei A..(String , Account , Boolean , Command , Boolean )
bei de.mfbot.MFBot_NG.Basisbibliothek.Response.createResponse(String rawData, Command request, Account acc)
bei de.mfbot.MFBot_NG.Basisbibliothek.Server.send(Account acc, Command cmd)
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.send(Command command)
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.attack(Player foe)
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.()
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.()
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.()
TargetSite: System.Collections.Generic.IEnumerable`1[TSource] Where[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Boolean])
20150925 13:36:18 Error Core Der Wert darf nicht NULL sein.
Parametername: source
Message: Der Wert darf nicht NULL sein.
Parametername: source
HResult: -2147467261
Source: System.Core
StackTrace: bei System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player.update(CharResponse resp, Boolean _refralbum)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player..ctor(CharResponse rawData, Server s)
bei de.mfbot.MFBot_NG.Basisbibliothek.ArenaResponse..ctor(String rewardString, FightRound[] fight, Account acc, Boolean mail)
bei de.mfbot.MFBot_NG.Basisbibliothek.Response..ctor(String rawData, Account acc, Boolean newResponse, Command cmd, Boolean plaintext)
bei (String , Account , Boolean , Command , Boolean )
bei A..(String , Account , Boolean , Command , Boolean )
bei de.mfbot.MFBot_NG.Basisbibliothek.Response.createResponse(String rawData, Command request, Account acc)
bei de.mfbot.MFBot_NG.Basisbibliothek.Server.send(Account acc, Command cmd)
TargetSite: System.Collections.Generic.IEnumerable`1[TSource] Where[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Boolean])
20150925 13:36:18 Info Core Logging in...
20150925 13:36:18 Info RequestResponse Account wurde eingeloggt.
20150925 13:36:18 Error Core Der Wert darf nicht NULL sein.
Parametername: source
Message: Der Wert darf nicht NULL sein.
Parametername: source
HResult: -2147467261
Source: System.Core
StackTrace: bei System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player.update(CharResponse resp, Boolean _refralbum)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player..ctor(CharResponse rawData, Server s)
bei de.mfbot.MFBot_NG.Basisbibliothek.ArenaResponse..ctor(String rewardString, FightRound[] fight, Account acc, Boolean mail)
bei de.mfbot.MFBot_NG.Basisbibliothek.Response..ctor(String rawData, Account acc, Boolean newResponse, Command cmd, Boolean plaintext)
bei (String , Account , Boolean , Command , Boolean )
bei A..(String , Account , Boolean , Command , Boolean )
bei de.mfbot.MFBot_NG.Basisbibliothek.Response.createResponse(String rawData, Command request, Account acc)
bei de.mfbot.MFBot_NG.Basisbibliothek.Server.send(Account acc, Command cmd)
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.send(Command command)
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.attack(Player foe)
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.()
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.()
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.()
TargetSite: System.Collections.Generic.IEnumerable`1[TSource] Where[TSource](System.Collections.Generic.IEnumerable`1[TSource], System.Func`2[TSource,System.Boolean])
20150925 13:36:18 Warn Mushrooms Achtung, eine vorhergehende oder die aktuelle Aktion(zwischen 25.09.2015 13:36:10 und jetzt) hat 27 Pilze verbraucht!
20150925 13:36:18 Info Tavern GZ LEVEL-UP: SMART-Werte werden für die nächste Questauswahl angepasst!
20150925 13:36:18 Info Tavern Taverne wird betreten..
Hallo Robin,
ich hab heute was sehr interessantes bemerkt. Ich war per Hand am spielen, hab auf Arena gedrückt, habe den vorgeschlagenen Gegner angegriffen und wollte, BEVOR die Kampfanimation beendet war, auf Taverne klicken um weiter zu questen. Der Kampf ist ja eigentlich sofort entschieden, brauch ich mir nicht angucken. Aber nu kommts Ich habe mich verklickt und versehentlich wieder auf den Arena Button geklickt und da wurde mir wieder ein Gegner vorgeschlagen OHNE PILZ auf dem Angreifen-Button! Also so wie wenn der Timer abgelaufen wär. Und ich dachte mir "oh wie nett, ein exploit! Ich kann "ungestraft" Kämpfe abbrechen (indem ich schnell wieder auf Arena klicke), falls der Gegner wärend des Kampfes zu stark aussieht". Ich hab dann das, was ich aus Versehen gemacht habe noch dreimal absichtlich gemacht. JEDESMAL war der Kampfbutton OHNE Pilz und es wurden oben links von der Pilzanzahl auch NICHTS abgezogen. Aber, als ich dann nach dem letzten Kampf wieder auf Taverne ging, wurden mir gleich 4! Pilze auf einmal abgezogen. Die Anzahl ging von 17 DIREKT auf 13 runter! Also leider kein Exploit, eher ein Bug bzw. Anzeigefehler in S&F
Könnte das vielleicht mit dem pilzverschwenderischem Verhalten des bots zusammenhängen?
PS: so passiert unter Windows XP SP3 mit Firefox 35.0.1 mit Flash 18.0.0.160
Folgende Benutzer bedankten sich beim Autor Face On Mars für den Beitrag:
Also nachdem das jetzt ein zweiter Nutzer kommentiert hat, und der Fokus hier wohl auf der Arena liegt, werde ich den Code, mit den die Arena betreten wird, für die nächste Version aus dem Code löschen - komplett, da sie eh momentan deaktiviert ist und so noch größere Probleme hoffentlich verhindert werden können.
Wenn das Problem dann immer noch auftritt, wissen wir wenigstens, dass es nicht vom Bot aus an der Arena liegen kann.
Also ich habe mich ja nicht mal so im Ton vergriffen, gegenüber dem Team hier, wie manch anderer..
Bei mir läuft zwar auch nicht alles einwandfrei und ich poste auch viel hier.. Aber ich versuche immer höflich und respektvoll gegenüber dem Team zu bleiben..