Ist oder sind die Fehler in dem Fall doch schon lokalisiert?
Gute Frage. Das ist sehr wahrscheinlich, aber nicht 100% sicher.
Ich versuche mal, zu veranschaulichen, wie ich glaube, dass die Fehlerbehebung vonstatten geht:
Ich glaube, dass die Programmierer zunächst einen aussuchen, der sich um das Problem kümmert. Dieser sucht dann im Code die betreffenden Stellen zusammen, viele Stellen dürften das nicht sein. Dann versucht er oder sie, den Code zu begreifen (man kann sich ja nicht alles merken). Dann ändert er den fehlerhaften Code und schwupps sollten alle Konsequenzen dieses Fehlers behoben sein. Ob es ein Update braucht oder nicht und warum, verstehe ich leider nicht. Ich arbeite sehr viel mit Excel in letzter Zeit, das ist so ähnlich. Eine Liste, worauf sich der Bug bezieht, zu schreiben, macht für mich darum nur Sinn, wenn man die Behebung aufschieben müsste.
Falls es tatsächlich so ist, dass Wunder nicht betroffen sind, ist da vermutlich mehr Code als nötig, denn wenn ich das machen würde, würde ich zunächst nach "Einheit gehört dem Spieler" fragen und nur dann alle betreffenden Boni anrechnen.
Es sollte nicht etwa für den Phönix eine neue Funktion aufgemacht werden (es sei denn, es ist eine separate "welche sind gefüttert?"-Abfrage) und dabei die Anfangsfrage vergessen werden. Ich würde auch nicht bei einer neuen Einheit eine neue Funktion aufmachen, denn es geht ja um dieselbe Sache, die möglichen Einheiten haben sich lediglich vermehrt.
Es gibt keine Gebäude, die die Gegner selbst beeinflussen. Gäbe es solche, würde man die hinter der ersten Frage per SONST-Anweisung anrechnen.
Kurz gesagt:
Für jede(Einheit auf dem Schlachtfeld){Wenn(sie dem Spieler gehört){dann gib der Einheit Kampfboni;} sonst {gib dem Gegner einen Fluch oder so;}}
"{dann gib der Einheit Kampfboni;}" ist freilich der Ort, wo alle Boni-Abfragen (möglicherweise viele Unterfunktionen mit Rückgabewert) getätigt und ermittelte Boni angewendet werden.
Falls meine Behauptung zweifelhaft ist, also jemand meint "der Ranger ist doch eine Einheit für sich", sage ich: Da ist ein Kampf und der besteht zu Anfang aus dem Feld, den Hindernissen und den Werten aller Einheiten inklusive Name, Boni, HP, etc, etc. Die Frage beginnt also nicht mit dem Ranger, sondern mit "welche Einheiten sind im Kampf, wem gehören sie, welche Boni haben sie deswegen". Natürlich könnte zumindest die Einheitenauswahl vor dem Kampf ganz anders programmiert sein, aber:
Die gleiche Kampfdatenberechnung sollte auch dem Infofenster vor dem Kampf zugrunde gelegt werden, denn vor dem Kampf gibt es kein Mouseover. - Das ist vielleicht auch der Grund, warum viele Spieler auch im Kampf die Infofenster beachten - ich habe das auch gemacht.
Aus meiner Beschreibung lässt sich entnehmen, dass der Fehler entweder durch eine nicht nötige zusätzliche Funktion resultiert (also eine zweite Boni-Funktion), die die Frage "ist Einheit des Spielers?" übergeht oder dass die Abfrage nicht nach "ist Einheit des Spielers" fragt, sondern nach "ist Einheit des Armeelagers" - letzteres würde aber überhaupt keinen Sinn machen, da eine solche Variable keinen Sinn machen würde und demnach nicht existieren dürfte.
P.S. Auch wenn gemäß dieser Erklärung die Behebung des Fehlers extrem einfach aussieht, ist der Code doch 1000x größer und da dort nicht nur ein Programmierer sitzt, muss sich auch abgesprochen werden, damit nicht mehrere zugleich am selben Ort was verändern. Ich hoffe, sie haben es leichter als auf github, wo jede einzelne Codezeilenänderung dokumentiert wird und jeder nen ganzen Fork erstellen muss und das dann immer vom Original.
Wenn jeder sofort sehen kann "die Datei wird gerade bearbeitet von ..." oder "die Datei wurde seit dem letzten Update geändert von ..." und alle fertig geänderten Dateien in einem Ausgangsordner landen, sollte da kein Problem bestehen, aber was weiß ich, wie das läuft. Vielleicht ist die Programmiersprache viel komplizierter als Javascript. C++ z.B. ist der Horror, finde ich. Selbst Javascript hat sich in den letzten Jahren verkompliziert, weil geändert.
Falls sich jetzt einer fragt, warum ich euch was über Programmieren erzähle: Wüsstet ihr alle, dass es so einfach ist, würde keiner meckern oder um Hinweise bitten, sondern einfach darauf vertrauen, dass es schnell behoben wird. Und wäre es komplizierter, wäre Gemecker erst recht nicht angebracht.
Also lasst die Entwickler das Spiel doch einmal auf einen für alle akzeptablen Stand bringen und dann ist auch gut so.
Wenn die Entwickler dann von sich aus glauben, sie müßten mal wieder etwas verschlimmbessern, kann man ja mal wieder nörgeln.
Stimme dir voll zu. Programmierer dürfen sich auch mal entspannen. Den ganzen Tag vor dem Bildschirm zu sitzen ist genug Stress. Deswegen möchte ich sie mal loben, dass sie so vieles bewerkstelligt haben. Und auch, dass sie viel Feedback umsetzen.
Ob mein Post den Programmierern bei der Fehlersuche hilft, bezweifele ich mal hoffnungsvoll.
Die Mods (oder bots
) haben wohl leider keinen Zugriff auf serverseitigen Code, sonst hätten sie sicher längst den Code selbst repariert und den Programmierern die Korrektur zugeschickt. Schade eigentlich. Darf ich an dieser Stelle fragen, ob welche aus dem Team zum Programmierer aufgestiegen sind? Ich bin da ganz ehrlich, ich hätte dazu keine Lust. Ich Kunde, ich König, ich genieße, ich nix meckern.
Darum möchte ich auch allen Testern und Mods danke sagen für ihre Mühen, denn ein Blick in den Code würde es ihnen viel leichter machen. So müssen auch sie abwarten, bis die Programmierer uns entweder antworten oder den Fehler beheben.
Eine Aussage war, dass alle Einheiten von Trainingsgelände betroffen seien. Das denke ich nicht.
Das würde ich genauer formulieren: Im Wiki ist genau aufgelistet, ob ein Gegner eine alternative Provinzversion ist oder eine für den Spieler ebenso verfügbare. Demnach sollten Zerberusse betroffen sein, Ork-Deserteure (Spieler: Ork-Strategen) und Höllenhunde aber nicht. Dasselbe sollte für das Söldnerlager gelten, Wespenreiter sollten also betroffen sein, Rosendornen-Magier (Spieler: Blütenmagier) aber nicht. Ob diese verbesserte Info nun zutrifft oder überhaupt falsch ist, weiß ich nicht, aber so sollte es jedem möglich sein, genau nachzuschauen, welche Einheiten wahrscheinlich betroffen sind.
Für das kommende Elixier-Turnier käme also nur der Wespenreiter für den Bug infrage. Aber Vorsicht: Ich fand den letztes Mal schon sehr schwer, obwohl in der betreffenden Kleinstadt nicht mal ein einziges Wunder stand. Es muss also nicht der Bug schuld sein, falls jemand den Wespenreiter zu stark findet.
Ich würde denjenigen, die Elixier-Relikte brauchen, sogar empfehlen, den Phönix zu füttern, denn selbst wenn der Wespenreiter dadurch stärker wird - auf eurer Seite wird alles stärker.
Liebe Grüße, Rikku