Der Index war außerhalb des Arraybereichs

In das Unterforum "Erledigt" werden alle Beiträge geschoben, die erledigt sind, bspw. bei behobenen Bugs.
Vollstrecker
Beiträge: 17
Registriert: Sa 29. Okt 2016, 18:57
Hat sich bedankt: 8 Mal
Danksagung erhalten: 5 Mal

Der Index war außerhalb des Arraybereichs

Beitrag von Vollstrecker »

Hallo und danke an Baaam für den Hinweis dieses Thema hier zu platzieren.

Ich hatte das Phänomen, dass mir beim Bot, die Fehlermeldung: Der Index war außerhalb des Arraybereichs (im Systray), gemeldet wurde, weiterhin wurde gefühlt im Sekunden-Takt der selbe Gegner in der Arena angegriffen. Da liegt der Hase im Pfeffer...
Der Bot versucht immer und immer wieder den Gegner zu erlegen, wenn ich nicht am PC/Laptop gesessen hätte, hätte er innerhalb von Minuten alle Pilze verfeuert.

Besteht eventuell die Möglichkeit (ich habe es sofort deaktiviert) die Arena Kämpfe zu stoppen? Bzw. bis der Fehler geklärt ist zu deaktivieren?
Baaam
Core Developer
Beiträge: 967
Registriert: Mo 23. Dez 2013, 14:13
Hat sich bedankt: 172 Mal
Danksagung erhalten: 206 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Baaam »

Hey,

danke erstmal für den Thread. Tatsächlich hatte ich gehofft, dass es nicht mit der Arena zusammenhängt :'D Aber gut, da scheint wohl der Wurm drin zu sein. Wir haben ja bereits Meldungen, dass Gegner doppelt angegriffen werden, wenn sie favorisiert wurden.
Aber so wie das hier klingt, ist es was anderes, wenn er die Gegner nicht doppelt sondern immer wieder angreift.

Was wir noch von dir bräuchten:

Arenaeinstellungen (Am besten einfach einen Screenshot machen dann ist da alles mit drauf)
"Keine Aktion vor / Nach"-Zeiten aus den Globalen Einstellungen

Und ganz wichtig wäre die genaue Fehlermeldung. Das mit dem Index außerhalb des Arraybereichs kann uns sehr weiterhelfen. Nun hoffe ich, dass da noch ein sog. Stacktrace dabei ist. Normalerweise findest du den auch in der Windows Ereignisanzeige. Wir haben hier im Bugforum ganz oben einen Thread, wo orga damals beschrieben hat, wie man das aus der Windows Ereignisanzeige ausliest. Wäre super wenn du das mal machen könntest :) Gern auch mir per PN, wenn du die Infos hier nicht veröffentlichen magst.

Edit: Hier der Link zum angesprochenen Beitrag viewtopic.php?p=3182#p3182

Edit2: Sorry, habe vergessen die Frage zu beantworten. Du kannst natürlich selbst die Arena ausstellen. Für alle deaktivieren können wir sie nicht.
Folgende Benutzer bedankten sich beim Autor Baaam für den Beitrag:
Vollstrecker (Di 11. Jul 2017, 14:47)
Vollstrecker
Beiträge: 17
Registriert: Sa 29. Okt 2016, 18:57
Hat sich bedankt: 8 Mal
Danksagung erhalten: 5 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Vollstrecker »

Hallo Baam,

vielen dank das du dich der Sache annimmst.

Anbei der Screenshot von den Globalen Einstellungen:
MFBot.JPG
MFBot.JPG (70.41 KiB) 2948 mal betrachtet
Und hier findest du die Eintrage aus der Ereignisanzeige:
Anwendung: MFBot_4640.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: Newtonsoft.Json.JsonSerializationException
bei Newtonsoft.Json.Serialization.JsonPropertyCollection.AddProperty(Newtonsoft.Json.Serialization.JsonProperty)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.CreateProperties(System.Type, Newtonsoft.Json.MemberSerialization)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(System.Type)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(System.Type)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(System.Type)
bei Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(Newtonsoft.Json.JsonWriter, System.Object, System.Type)
bei Newtonsoft.Json.JsonSerializer.SerializeInternal(Newtonsoft.Json.JsonWriter, System.Object, System.Type)
bei Newtonsoft.Json.JsonConvert.SerializeObjectInternal(System.Object, System.Type, Newtonsoft.Json.JsonSerializer)
bei de.mfbot.MFBot_NG.Basisbibliothek.Utilities.MFBotHelpCenterDefault.sendDungeonStats()
bei de.mfbot.MFBot_NG.Basisbibliothek.BaseProgram.start(System.Action)
bei de.mfbot.MFBot_NG.Gui.Program.(System.String[])


Ich hoffe ich konnte euch weiterhelfen.
Baaam
Core Developer
Beiträge: 967
Registriert: Mo 23. Dez 2013, 14:13
Hat sich bedankt: 172 Mal
Danksagung erhalten: 206 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Baaam »

Heyho,

Könntest du noch zusätzlich einen Screen deiner Arenaeinstellungen machen?

Und der Stacktrace aus der Ereignisanzeige hängt nicht mit deinem beschriebenen Fehler zusammen. Ich bin mir gerad unsicher, ob bei Ausnahmeinformation dein beschriebener Text bzgl. Index außerhalb des Arraybereiches steht, falls nicht sollte dort dann aber auf jeden fall etwas in der Richtung IndexOutOfBounds(/Range)Exception stehen. Danach bitte mal schauen, damit wir den Stacktrace kriegen, der genau mit dem Fehler zusammenhängt :-)
Folgende Benutzer bedankten sich beim Autor Baaam für den Beitrag:
Vollstrecker (Di 11. Jul 2017, 20:04)
Vollstrecker
Beiträge: 17
Registriert: Sa 29. Okt 2016, 18:57
Hat sich bedankt: 8 Mal
Danksagung erhalten: 5 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Vollstrecker »

Hallo baaam (sorry für das verschluckte a^^),

ich habe leider nur zwei Ereignisanzeigen zu dem Fehlerdatum.
Aber zuerst den Screen von den Arenaeinstellungen:
Arena.JPG
Arena.JPG (33.41 KiB) 2938 mal betrachtet


Und hier der zweite Ereignisanzeige:
Anwendung: MFBot_4640.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: Newtonsoft.Json.JsonSerializationException
bei Newtonsoft.Json.Serialization.JsonPropertyCollection.AddProperty(Newtonsoft.Json.Serialization.JsonProperty)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.CreateProperties(System.Type, Newtonsoft.Json.MemberSerialization)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.CreateObjectContract(System.Type)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.CreateContract(System.Type)
bei Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(System.Type)
bei Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(Newtonsoft.Json.JsonWriter, System.Object, System.Type)
bei Newtonsoft.Json.JsonSerializer.SerializeInternal(Newtonsoft.Json.JsonWriter, System.Object, System.Type)
bei Newtonsoft.Json.JsonConvert.SerializeObjectInternal(System.Object, System.Type, Newtonsoft.Json.JsonSerializer)
bei de.mfbot.MFBot_NG.Basisbibliothek.Utilities.MFBotHelpCenterDefault.sendDungeonStats()
bei de.mfbot.MFBot_NG.Basisbibliothek.BaseProgram.start(System.Action)
bei de.mfbot.MFBot_NG.Gui.Program.(System.String[])


Weiterhin habe ich mich getraut^^, mit den obigen Einstellungen den Bot noch mal scharf zu schalten (also mit den aktivierten Arenaeinstellungen), Fehler taucht nicht mehr auf. Leider habe ich mir den Gegner nicht gemerkt, obwohl das wahrscheinlich auch nichts zur Sache tut.

Viele Grüße
falsch verbunden
Vollstrecker
Beiträge: 17
Registriert: Sa 29. Okt 2016, 18:57
Hat sich bedankt: 8 Mal
Danksagung erhalten: 5 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Vollstrecker »

Fehler taucht nicht mehr auf. Leider habe ich mir den Gegner nicht gemerkt, obwohl das wahrscheinlich auch nichts zur Sache tut.
Man, natürlich kann ich die Kämpfe unter Post/Kämpfe einsehen :roll:
Ich sende sie dir per PN

Mfg falsch verbunden
Folgende Benutzer bedankten sich beim Autor Vollstrecker für den Beitrag:
Baaam (Mi 12. Jul 2017, 06:49)
HobbyCoder
Beiträge: 3
Registriert: Fr 14. Jul 2017, 09:15
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von HobbyCoder »

Da ich diesem Bug zwei Pilzschwunde zu verdanken habe, gebe ich auch meinen Senf dazu. Das erste Mal trat der Bug anscheinend in Verbindung mit der "Vorgeschlagene Gegner angreifen" Option in der Arena auf. Das kann ich aber nicht mehr belegen, da mir die Logs dazu fehlen, wenn ich mich aber recht erinnere war es ebenfalls wie bei dem Threadersteller die Fehlermeldung vom JsonSerializer. Als ich dann auf "Vorgeschlagene Gegner angreifen" umgestellt habe war es erstmal ruhig. Nun habe ich nach ein paar Tagen eine zweite Überraschung erlebt.
Es geht wieder um einen Arrayfehler, aber mit einer anderen Ursache. So wie es aussieht wurde durch die Exception die Wartezeit der Arena übersprungen/nicht mehr berücksichtigt und gleich der nächste Gegner angegriffen, was natürlich die Pilze gefressen hat. Den Logs nach war das hier der erste Fehler mit dem es losging:
#### Beginn am 13.07.2017 19:32
#####################################################
20170713 19:32:14 Info Core Logging in...
20170713 19:32:17 Info RequestResponse Account wurde eingeloggt.
20170713 19:32:20 Info Guild Prüfe auf Gildenkämpfe...
20170713 19:32:37 Info Fortress 27061 Erfahrung abgeholt.
20170713 19:32:38 Info Fortress 2785 Stein abgeholt.
20170713 19:32:38 Warn Fortress Holz wurde nicht eingesammelt. Lager voll!
20170713 19:40:34 Info CityGuard Stadtwache beendet. Verdientes Gold: 29100
20170713 19:40:39 Info CityGuard Der Account wurde für 1 Stunde(n) auf Stadtwache geschickt.
20170713 20:32:20 Info Guild Prüfe auf Gildenkämpfe...
20170713 20:35:56 Info Fortress 18954 Erfahrung abgeholt.
20170713 20:35:57 Info Fortress 1951 Stein abgeholt.
20170713 20:35:57 Warn Fortress Holz wurde nicht eingesammelt. Lager voll!
20170713 20:40:42 Info CityGuard Stadtwache beendet. Verdientes Gold: 2910
20170713 20:40:47 Info CityGuard Der Account wurde für 1 Stunde(n) auf Stadtwache geschickt.
20170713 21:32:20 Info Guild Prüfe auf Gildenkämpfe...
20170713 21:39:14 Info Fortress 18944 Erfahrung abgeholt.
20170713 21:39:16 Info Fortress 1951 Stein abgeholt.
20170713 21:39:16 Warn Fortress Holz wurde nicht eingesammelt. Lager voll!
20170713 21:40:54 Info CityGuard Stadtwache beendet. Verdientes Gold: 2910
20170713 21:40:58 Info CityGuard Der Account wurde für 1 Stunde(n) auf Stadtwache geschickt.
20170713 21:45:58 Info Database Neuer durchschnittlicher Edelsteinwert ist 217 bei 20 Edelsteinen
20170713 21:45:58 Info Fortress Gefundenes Minenitem vom Typ Gem auf Platz 3
20170713 21:46:04 Info Fortress Edelsteinsuche in der Mine wurde angefangen.
20170713 22:32:20 Info Guild Prüfe auf Gildenkämpfe...
20170713 22:41:01 Info CityGuard Stadtwache beendet. Verdientes Gold: 2910
20170713 22:41:05 Info CityGuard Der Account wurde für 1 Stunde(n) auf Stadtwache geschickt.
20170713 22:42:32 Info Fortress 18950 Erfahrung abgeholt.
20170713 22:42:34 Info Fortress 1951 Stein abgeholt.
20170713 22:42:35 Info Fortress 3825 Holz abgeholt.
20170713 22:57:37 Info Shop Verkaufe Item 7 für 6111,42 Gold.
20170713 23:32:20 Info Guild Prüfe auf Gildenkämpfe...
20170713 23:41:10 Info CityGuard Stadtwache beendet. Verdientes Gold: 2910
20170713 23:41:16 Info CityGuard Der Account wurde für 1 Stunde(n) auf Stadtwache geschickt.
20170713 23:45:51 Info Fortress 18954 Erfahrung abgeholt.
20170713 23:45:53 Info Fortress 1952 Stein abgeholt.
20170713 23:45:53 Warn Fortress Holz wurde nicht eingesammelt. Lager voll!
20170714 00:32:10 Info Core Logging in...
20170714 00:32:11 Info RequestResponse Account wurde eingeloggt.
20170714 00:32:15 Info WheelOfFurtune Glücksrad gedreht. Viel Holz: 8.280
20170714 00:32:20 Info Guild Prüfe auf Gildenkämpfe...
20170714 00:32:24 Info Arena Du hast Wayze2b angegriffen und gewonnen.
Ehre gewonnen: 97
Gold gewonnen: 207
Silber gewonnen: 59
20170714 00:32:24 Info Arena Zu Kampfbeginn hattest du 2082640 Lebenspunkte, dein Gegner 1944600 Lebenspunkte
Nach 13 Runden hattest du 962220 Lebenspunkte, dein Gegner -312122

20170714 00:34:28 Error Core Der Index war außerhalb des Arraybereichs.
Message: Der Index war außerhalb des Arraybereichs.
HResult: -2146233080
Source: System.Windows.Forms
StackTrace: bei System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
bei System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
bei de.mfbot.MFBot_NG.Gui.Program.runDelegate(Action action)
bei de.mfbot.MFBot_NG.Basisbibliothek.Player.NotifyPropertyChanged(String propertyName) in File99:Zeile 28.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.update(CharResponse resp, Boolean _refralbum) in File0:Zeile 953.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.(Response ) in File0:Zeile 859.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.(Response ) in File0:Zeile 932.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.send(Command command) in File0:Zeile 820.
bei de.mfbot.MFBot_NG.Basisbibliothek.FortressBuilding.finishBuild() in File50:Zeile 261.
bei de.mfbot.MFBot_NG.Basisbibliothek.FortressTasker.doBuildingUpgrade() in File7:Zeile 196.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.(Action ) in File0:Zeile 1486.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1500.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1412.
TargetSite: System.Object MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean)

20170714 00:34:37 Info Fortress I've set Fortress to priority list because it's needed for next building.
20170714 00:34:43 Error Core Der Index war außerhalb des Arraybereichs.
Message: Der Index war außerhalb des Arraybereichs.
HResult: -2146233080
Source: Basisbibliothek
StackTrace: bei de.mfbot.MFBot_NG.Basisbibliothek.DungeonTasker.(Int32 ) in File6:Zeile 271.
bei System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
bei System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
bei System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
bei de.mfbot.MFBot_NG.Basisbibliothek.DungeonTasker.useKeys() in File6:Zeile 270.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.(Action ) in File0:Zeile 1486.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1524.
bei de.mfbot.MFBot_NG.Basisbibliothek.Account.() in File0:Zeile 1412.
TargetSite: Boolean (Int32)
Ich kenne zwar den Code nicht, aber da läuft, wie man es sich denken kann, grundsätzlich etwas im Arrayhandling schief. Der Pilzschwung ist aber wahrscheinlich auf das ungünstige Exceptionhandling zurückzuführen. Ich vermute mal, dass durch das Abfangen der Exception das setzten der Wartezeit oder ähnliches übersprungen wurde. Als Zwischenlösung habe ich die Arena ausgeschalten. So verhindert man zumindest, dass die Pilze verbraucht werden.

Botversion: 4.6.4.0
System: Windows 8.1
Einstellungen und Logs (Accountname wurde ersetzt):
Acc.ini
(13.92 KiB) 309-mal heruntergeladen
General.log
(256.89 KiB) 304-mal heruntergeladen
ACC1@W1.SFGAME.NET.log
(1.85 MiB) 351-mal heruntergeladen
Baaam
Core Developer
Beiträge: 967
Registriert: Mo 23. Dez 2013, 14:13
Hat sich bedankt: 172 Mal
Danksagung erhalten: 206 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Baaam »

Wie so oft sollten Vermutungen uns überlassen werden ;) Dazu ist deine Vermutung komplett falsch. Nicht bös nehmen

Wir sind dran am Fehler und geben Rückmeldung sobald es was neues gibt. Auf jeden Fall aber auch dir danke für die Infos, das hilft uns weiter!
HobbyCoder
Beiträge: 3
Registriert: Fr 14. Jul 2017, 09:15
Hat sich bedankt: 0
Danksagung erhalten: 1 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von HobbyCoder »

Mir ist heute etwas bei der Arena aufgefallen. Ich hatte eine Liste favorisierter Gegner bei einem Account auf w18 eingestellt um das SA zu farmen, das waren etwas über die 100 Gegner. Die Liste hatte ich aus dem Crawler (aktuelle Version) über copy to clipboard. Als ich dann irgendwann später reingeschaut habe (so nach einer, zwei Stunden) waren es dann viel zu wenige, ich glaube so um die 50 oder so. Aber das kann ja gar nicht sein bei einer Wartezeit von 11-12 min und ohne Pilzeinsatz so viele abzuarbeiten. In den Logs war nichts zu sehen ob er irgendwelche Namen übersprungen hat.

Eine Idee woran es liegen kann? Oder ob es vielleicht etwas mit dem Bug hier zu tun hat?
Baaam
Core Developer
Beiträge: 967
Registriert: Mo 23. Dez 2013, 14:13
Hat sich bedankt: 172 Mal
Danksagung erhalten: 206 Mal

Re: Der Index war außerhalb des Arraybereichs

Beitrag von Baaam »

Kannst du mal ingame schauen in den Kampfnachrichten, ob da Dopplungen oder so vorkommen? Ursprünglich hatte der Arena Bug nämlich mit der favorisierten Gegner Funktion zu tun - das war die erste Meldung durch die wir auf den Bug aufmerksam wurden.
Gesperrt

Wer ist online?

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