Bauliste - Quirk

Bugs aus der Alpha1 Version von BotE können in diesem Bereich mitgeteilt werden
Antworten
Benutzeravatar
Mentat
Offizier
Offizier
Beiträge: 217
phpbb forum styles
Registriert: Donnerstag 12. Januar 2006, 17:45

Bauliste - Quirk

Beitrag von Mentat »

Also ich habe noch zwei kleine Quirks in der Bauliste entdeckt.

A.) Spezialgebäude wie z.B. Konföderiertenkongress verschwinden von der Bauauswahl, wenn man sie von der aktuellen Bauliste nimmt. Erst im nächsten Zug wird das Gebäude dann wieder baubar.

B.) Auch wenn man die nötigen Ressourcen für nur mehr ein Schiff hat, kann man multiple Schiffe in die Bauliste geben. Am Ende der Runde (bzw. Beginn der Nächsten) wird dann geprüft, ob die Ressourcen vorhanden sind, und nicht erfüllbare Bauaufträge werden gelöscht. Das ist soweit ok, aber eine direkte Plausibilitätsprüfung wäre weit komfortabler für den Spieler. Man könnte dann ja eine akute Meldung ausgeben, dass für dieses Bauvorhaben nicht genug Resourcen da sind.
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Beitrag von Sir Pustekuchen »

zu A:
Das ist mir bekannt, läßt sich aber nur schwer lösen. Dies kommt vor, wenn das Gebäude nur X mal pro Imperium baubar ist. Im Algorithmus muss dies dann anders behandelt werden. Vlt. fällt mir mal eine Lösung ein. Derzeit darf man die Gebäude also nicht aus der Bauliste nehmen, wenn man es gleich wieder reinsetzen will. Die folgende Runde ist aber wieder alles korrekt.

zu B:
Meinst du wirklich? Bis jetzt prüft er nur die Ressourcen, die zum Bau benötigt werden. Er zieht sie ja nicht sofort ab, sondern erst dann, wenn der Auftrag an die erste Stelle rückt. Wenn es dann nicht reicht, wird der Auftrag gelöscht. Ich finde dies gerade einfacher, da man so nicht mitdenken muss. Man sollte ja noch bedenken, dass man später durch Minen auch Ressourcen pro Runde dazubekommt.
Benutzeravatar
Mentat
Offizier
Offizier
Beiträge: 217
Registriert: Donnerstag 12. Januar 2006, 17:45

Beitrag von Mentat »

ad B.) Ach die Resourcenförderung hatte ich vergessen. Du hast natürlich recht.
Benutzeravatar
N8schichtler
Offizier
Offizier
Beiträge: 126
Registriert: Montag 28. August 2006, 12:21

Beitrag von N8schichtler »

ad A.) Wie hast du es denn realisiert, dass ein Gebäude nur x-mal gabaut werden darf? Ich bin kein Programmierer, stelle mir aber vor, dass en dafür eine Variable gibt, die die noch zu bauende Gebäudeanzahl bestimmt und immer um 1 reduziert wird, wenn es in eine Bauliste gezogen wird. Entsprechend könnte man diese Variable also auch wieder um 1 erhöhen, wenn es aus der Bauliste (manuell oder durch nicht vorhandene Ressourcen) wieder entfernt wird, ohne dass es gebaut wurde.
Somit ist also das "Entfernen aus der Bauliste" diejenige Stelle, an der man das Problem lösen könnte.

Falls du es jedoch ganz anders realisiert hast, erkläre uns wie - wir finden bestimmt eine Lösung.
Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4183
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Beitrag von Sir Pustekuchen »

So einfach ist das nicht. Man kann es ja auch wieder rausnehmen und sofort wieder reinsetzen, wenn es in der Runde davor nicht in der Bauliste stand. Wenn man aber schon eine oder mehr Runden daran gebaut hatte, das Gebäude dann rausnimmt, dann ist es erst die Runde darauf wieder in der Bauliste.

Grob gesagt funktioniert das so: Gebäude, welche nur X mal pro Imperium gebaut werden können werden in einer Variable (GlobalBuildingsArray) abgelegt. Darin kann ich dann schnell nachschauen, wie oft dieses Gebäude schon auf der Map existiert. Somit könnte z.B. der Klingone Sol erobern, diese tollen Födgebäude besitzen und die Föd kann sie dann trotzdem nicht nochmal bauen, weil irgendwer auf dieser Map das Gebäude besitzt. Also gilt das auch, wenn sie nicht mehr im Imperium sind, aber schon vom Imperium gebaut wurden. Wäre ja blöd wenn die Föd ein neues Daystrom Institut bauen könnte, dann Sol zurückerobert und im Prinzip 2 davon hätte.
Zu jeder neuen Runde wird für alle System berechnet, welche Gebäude baubar sind. Dabei werden auch diese GlobalBuildings beachtet. Wenn die maximale Anzahl erreicht wurde, dann kann man nix mehr bauen. Wenn sie noch nicht erreicht wurde, dann kann man das Gebäude bauen. Wenn man es jetzt in die Bauliste setzt, wird eine AuftragsCheck Funktion aufgerufen, die dieses Gebäude in die GlobalBuildings Variable schreibt. Wenn man es wieder rausnimmt, wird dieses Gebäude dort auch wieder entfernt. Der AuftragsCheck funktioniert so, dass er die Gebäude freischaltet, die immer ohne Beachtung der Auftragsliste in dem System baubar sind. Dann wird die Auftragsliste beachtet und die Bauliste modifiziert. So weit so gut und alles funktiomiert noch. Wichtig hierbei war, dass dieses nur X mal pro Imperium baubare Gebäude vor dem Auftragscheck noch in der Liste der baubaren Gebäude zu finden war.
Wenn man jetzt eine Runde weiter klickt, so wird wieder berechnet, welche Gebäude baubar sind. Doch nun ist dieses Gebäude auch nicht mehr in der Liste der vor dem AuftragsCheck gemachten Liste. Ich kann es aber auch nicht so einfach in diese hineinsetzen, wenn man es aus der Bauliste entfernt. Ich muss halt im Quellcode mal schauen ob das irgendwie funktioniert. Wichtig ist auch, das dies rassenübergreifend funktionieren muss. Wie oben schonmal beschrieben, muss man auch noch beachten wenn Systeme erobert werden.
Antworten

Zurück zu „Alpha1“