Das Forum ist read-only und nur noch zu Archivzwecken vorhanden. Neue Benutzer werden nicht mehr freigeschalten.
Benutzt bitte unser aktuelles Forum: http://www.battle-planet.de/pbp/main/forum_neu.php
Laut Artikel 15 in der Knowledgebase verbrauchen Flugzeuge 50% der verbleibenden "movement points". Verstehe ich das richtig? Eine Flugzeug verbraucht in der Luft z.B. 20 Treibstoff pro Feld und könnte rein theoretisch 14 Felder weit fliegen. Am Ende einer Runde in der das Flugzeug nur 8 Felder weit geflogen ist, multipliziert ASC die Anzahl der verbleibenden Felder (14-8 = 6) mit dem Treibstoff, den das Flugzeug verbraucht hätte um ein Feld weit zu fliegen (6 * 20 = 120) und dividiert diesen Wert durch 2 (120 / 2 = 60). Das Ergebnis wird vom Tankinhalt der Einheit abgezogen.
Wenn das so stimmt, dann finde ich das seltsam. Einige meiner Luftwaffen-Einheiten verbrauchen Treibstoff, wenn ich sie eine Runde lang nicht bewege andere tun dies nicht. Bei Orbiteinheiten macht es meines Erachtens nach Sinn, nichts zu verbrauchen, denn die könnten sich ja prinzipiell in einer geostationären Umlaufbahn befinden.
Ich steige nicht ganz durch. Ich habe eine "Einwegrakete" gebastelt, die zwar günstig herzustellen ist, aber mit viel Treibstoffaufwand auf high_level_flight kommt um dort einen Satelliten in den Orbit frei zu setzen. Danach habe ich mir gedacht, dass sie quasi verglüht, denn einen hightchange für eine Landung habe ich nicht definiert und die Rakete befindet sich selbst ja nicht im Orbit. Laut Artikel 15 sollte das doch gehen und die Rakete nach der Verwendung abstürzen...
Hat das evtl. mit Maximalwerten zu tun wie z.B. 255 WindResistance oder 255 Geschwindigkeit? Oder vielleicht mit Minimalwerten wie 10 Geschwindigkeit? Wahrschenlich ist es ein rein rechnerisches Problem das durch eine 0 in der Gleichung entsteht...Treibstoff-Verbrauch für den Start bringt den Tank auf 0...somit kein Rest-Movement mehr zu Verfügung...Rest-Movement = 0 multipliziert mit Treibstoff-Verbrauch pro Feld gibt 0 dividiert durch 2 gibt wieder 0???
Vielleicht hat ja gleich jemand ne Antwort parat. Danke im Voraus.
Eine sehr gute Frage von Havan(n)a Club. Das mit dem Fuelverbrauch von Flugzeugen habe ich bis heute nicht verstanden. Auch ich hoffe hier sehr auf Aufklärung.
Laut Artikel 15 in der Knowledgebase verbrauchen Flugzeuge 50% der verbleibenden "movement points". Verstehe ich das richtig? Eine Flugzeug verbraucht in der Luft z.B. 20 Treibstoff pro Feld und könnte rein theoretisch 14 Felder weit fliegen. Am Ende einer Runde in der das Flugzeug nur 8 Felder weit geflogen ist, multipliziert ASC die Anzahl der verbleibenden Felder (14-8 = 6) mit dem Treibstoff, den das Flugzeug verbraucht hätte um ein Feld weit zu fliegen (6 * 20 = 120) und dividiert diesen Wert durch 2 (120 / 2 = 60). Das Ergebnis wird vom Tankinhalt der Einheit abgezogen.
Genau so ist es. Ich habe es gerade noch einmal mit einem Scope ausprobiert - das hat genau wie beschrieben funktioniert.
Zitat von Havanna-Club Wenn das so stimmt, dann finde ich das seltsam. Einige meiner Luftwaffen-Einheiten verbrauchen Treibstoff, wenn ich sie eine Runde lang nicht bewege andere tun dies nicht. Bei Orbiteinheiten macht es meines Erachtens nach Sinn, nichts zu verbrauchen, denn die könnten sich ja prinzipiell in einer geostationären Umlaufbahn befinden.
Ich steige nicht ganz durch. Ich habe eine "Einwegrakete" gebastelt, die zwar günstig herzustellen ist, aber mit viel Treibstoffaufwand auf high_level_flight kommt um dort einen Satelliten in den Orbit frei zu setzen. Danach habe ich mir gedacht, dass sie quasi verglüht, denn einen hightchange für eine Landung habe ich nicht definiert und die Rakete befindet sich selbst ja nicht im Orbit. Laut Artikel 15 sollte das doch gehen und die Rakete nach der Verwendung abstürzen...
Hat das evtl. mit Maximalwerten zu tun wie z.B. 255 WindResistance oder 255 Geschwindigkeit? Oder vielleicht mit Minimalwerten wie 10 Geschwindigkeit? Wahrschenlich ist es ein rein rechnerisches Problem das durch eine 0 in der Gleichung entsteht...Treibstoff-Verbrauch für den Start bringt den Tank auf 0...somit kein Rest-Movement mehr zu Verfügung...Rest-Movement = 0 multipliziert mit Treibstoff-Verbrauch pro Feld gibt 0 dividiert durch 2 gibt wieder 0???
Du sagst, die hat 10 Punkte Geschwindigkeit? Das ist die Ursache: ich habe mir die Formel gerade mal angeschaut: bei kleinen Beträgen treten Rundungsfehler auf, weil ich zu früh dividiere. Vereinfacht gesagt war es so: 10 Punkte = 1 Feld ; 1 Feld / 2 = 0 Felder angerechnet; 0 Felder * Verbrauch ist immer noch 0. In der nächsten Version (2.2.100.11) stelle ich die Formel ein bischen um, dann sollte das besser funktionieren.
Ein paar Gedanken habe ich mir inzwischen noch selbst zu dem Thema gemacht. Was ich allerdings noch nicht versucht/getestet habe ist folgendes: Was passiert, wenn eine Einheit mit dem Fuel das sie noch an Bord hat genau ihr maximales Movement bewältigen kann?
...um auf mein anfängliches Beispiel zurück zu kommen: Movemet 14 Felder, Verbrauch 20 pro Feld. Zu Beginn der Runde sind noch 280 Tiger im Tank. Nach 14 Feldern steht der Tank auf 0. In der nächsten Runde rechnet ASC nach Deiner Feststellung 0 Punkte (neues Restmovement) = 0 Felder. 1 Feld / 2 = 0 anzurechnende Felder. 0 Felder * Verbrauch ist immer noch 0.
...auch über "meine" Berechnung klappt es nicht. Anzahl verbleibende Felder = 0. 0 Felder * 20 Verbrauch ist ebenfalls 0. Wenn dann 0 von 0 abgezogen wird bleibt wieder die 0.
So wie ich das sehe haben wir ein Problem so lange die Formel als Ergebnis 0 haben kann.
Eine erste Lösung kann ich mir vorstellen indem ASC sagt: Wenn der errechnete Wert = 0 ist, dann setze 1. Sprich, der Einheit wird mindestens 1 Punkt Verbrauch abgezogen. => Problem dabei: Wenn eine Einheit einen sehr hohen Verbrauchswert bei einem Movement von z.B. 10 hat (Beispiel eine Einwegrakete mit Fuelverbrauch 3500 die nur starten und dann abstürzen soll), dann muss gewährleistet sein, dass sie zumindest nicht sofort abstürzt sobald das Fuel auf 0 ist. Sprich, sie muss noch mindestens ihre Ladung absetzen können oder die Berechnung wird gestartet sobald der Zug beendet ist (oder ist das ohnehin schon so?) Ansonsten spricht glaube ich nichts gegen diese Variante.
Eine zweite Lösung wäre nach meiner Vorstellung, dass in die Formel eine Konstante eingebaut wird. Will heißen, dass hinten dran +1 gesetzt wird. => Problem dabei: Es wird ein Aufschrei (*grins*) durch die ASC-Gemeinde gehen, denn auf einmal verbraucht jede fliegende Einheit pro Runde 1 Fuel mehr - egal wie viele Felder sie gezogen wurde. Auch für den Fall, dass sie das Movement voll ausgenutzt hat...
Das kann jetzt alles wieder Quatsch sein was ich verzapfe. Wie gesagt: ich bin weder Programmierer noch Mathematiker. Ich gehe nur danach was für mich logisch wäre.
Alle Flieger die am Ende der Runde null Fuel haben, stürzen ab. In der nächsten Runde erhälst du dann eine Meldung, dass das Fluegzeug wegen Spritmangel abgestürzt ist. Auch wenn im Tank nicht mehr denug drin ist, um die Position zu halten (die besagten 50 % kosten für nicht verbrauchte Movepunkte) müsste der Fleiger in der nächsten Runde als Wrack am Boden liegen.
--------------------------------------------------------------------------------------------------- Mögen die Nurien Euch gnädig sein.
Wobei es wünschenswert wäre, wenn man die Meldung dass der Flieger abkrazt VORHER bekäme und nicht nachher ;) weil da ists eh scho ziemlich egal, das interessiert dann nur noch den Volks-Buchhalter.
Es gibt hierzu einen Bugzilla Feature Wunsch. Bitte votet doch! Dann steigt die Wahrscheinlichkeit, dass das programmiert wird.
-------------------------------------------------- I´m not here to make everybody happy. Understating, yet relentless. UFP. Wir sind die Guten!(tm) http://www.ufp.de.lv/
Vorgaben aus ASC: - Movement_max (der Wert, der auf einem Level als Movement für die Einheit definiert ist = fixe Größe) - Verbrauch (der Wert, der als FuelConsumption definiert wurde) - Tankinhalt_Rest (der Wert, den die Einheit am Ende des Zuges noch im Tank hat) - Felder_gezogen (Anzahl der Felder, die in einer Runde bewegt wurden)
Berechnung am Ende der Runde: - Felder_max = Movement_max / 10 (Anzahl der Felder die aufgrund des Movement_max gezogen werden können) - Felder_Rest = Felder_max - Felder_gezogen (Anzahl der verbleibenden Felder die in einer Runde noch gezogen werden können - unabhängig vom Treibstoffrest im Tank) - Verbrauch_Strafe = Felder_Rest * Verbrauch / 2 (Der Wert, der zur Strafe für nicht bewegte Felder abgezogen werden soll) - Tankinhalt_neu = Tankinhalt_Rest - Verbrauch_Strafe (Der Wert, der in der nächsten Runde noch im Tank sein soll)
Schlussfolgerung: Eigentlich sollte das so funktionieren. Im Beispiel 1 ergibt sich ein positiver Rest im Tank also kann die Unit weiter fliegen. Im Beispiel 2 ergibt sich ein negativer Rest im Tank also müsste ASC sagen: "negativer Wert => killUnit". Im Beispiel 3 ergibt sich 0 Rest im Tank. ASC müsste jetzt entweder sagen "das ist OK. Fliege Eine Runde weiter." (dann wäre in der nächsten Runde der Wert negativ was einen Absturz zur Folge hätte) oder "Wert = 0 oder negativ => killUnit".
Rechnet mal nach ob ihr noch Beispiel-Varianten findet, die sich beißen könnten.
Zitat von TarliesinAlle Flieger die am Ende der Runde null Fuel haben, stürzen ab. In der nächsten Runde erhälst du dann eine Meldung, dass das Fluegzeug wegen Spritmangel abgestürzt ist. Auch wenn im Tank nicht mehr denug drin ist, um die Position zu halten (die besagten 50 % kosten für nicht verbrauchte Movepunkte) müsste der Fleiger in der nächsten Runde als Wrack am Boden liegen.
Hola Tarliesin!
Dem ist eben nicht so...deshalb die ganze Diskussion.
Hast Du das nur mit deinem selbstgebauten Flieger getestet oder auch mit anderen? Und ändert sich was, wenn du den Fuelverbrauch erhöst oder reduzierst?
--------------------------------------------------------------------------------------------------- Mögen die Nurien Euch gnädig sein.
Versuche habe ich bisher mit meinem eigenen Set gemacht was nicht zwangsläufig Rückschlüsse auf Tippfehler (falls Du die unterstellen möchtest) zulässt...ich mahce nämlihc kiene ;-))) Verbrauch rauf oder runter brachte in allen Fällen nichts. Ich habe auch mit WindResistance und anderen Größen experimentiert...aber das steht ja alles schon oben. Danke trotzdem für den Hinweis!!!
Dass offensichtlich Fehler auftreten, die scheinbar durch die bisher verwendete Berechnungsformel hervorgerufen werden, haben ja auch Toby, Excalibur und Val Haris bestätigt...und letzterer muss es ja wissen.
Oben habe ich meine Lösungsansätze für das Problem gepostet. Wenn die greifen, dann ist das Problem vermutlich behoben. Ich fände es toll, wenn da mal jemand drüber schaut der mehr Ahnung hat als ich Amateur (ValHaris?). Noch toller wenn es zu einer Verbesserung führt...dann wär ich richtig stolz ;-)))
SACK ZEMENT!!! ES IST ZUM ERBRECHEN!!! Eigentlich habe ich ja längst geschrieben was mir jetzt (nach umständlicher Betrachtung) doch wieder aufgefallen ist. ICH DEPP. Mit der Null in der Gleichung geht es nicht:
Vorgabe: - Movement_max = 10 (Eine Rakete, die einfach nur starten soll) - Verbrauch = 3500 (x-beliebig hauptsache der Tank wird leer) - Tankinhalt_Rest = 0 (nach dem ersten und einzigen Zug der Einheit) - Felder_gezogen = 1 (mehr kann die Rakete ja nicht) Berechnung: - Felder_max = Movement_max / 10 => 10 / 10 = 1 - Felder_Rest = Felder_max - Felder_gezogen => 1-1 = 0 (FUCK!!!!!) - Verbrauch_Strafe = Felder_Rest * Verbrauch / 2 = 0 * 3500 / 2 = 0 - Tankinhalt_neu = Tankinhalt_Rest - Verbrauch_Strafe = 0-0 = 0
Schlussfolgerung: Wenn es funktionieren soll, denn gibt es zwei Ansätze: Entweder sagt ASC tatsächlich: "Wenn 0 erreicht ist, dann stürzt nach der Runde die Einheit ab". Oder ASC sagt: "Ich will einen negativen Wert sehen" - dann brauchen wir die 1 in der Gleichung...
Hat irgendwer ne Idee? Ich meine eine rechnerische? Klar kann ich auch Movement_max = 11 setzen oder besser gesagt grundsätzlich nicht auf 10. Dann kommt es nur darauf an ob ASC mit mindestens einer Nachkommastelle rechnet:
Vorgabe: - Movement_max = 11 (Eine Rakete, die einfach nur starten soll) - Verbrauch = 3500 (x-beliebig hauptsache der Tank wird leer) - Tankinhalt_Rest = 0 (nach dem ersten und einzigen Zug der Einheit) - Felder_gezogen = 1 (mehr kann die Rakete ja nicht) Berechnung: - Felder_max = Movement_max / 10 => 11 / 10 = 1,1 - Felder_Rest = Felder_max - Felder_gezogen => 1,1-1 = 0,1 - Verbrauch_Strafe = Felder_Rest * Verbrauch / 2 = 0,1 * 3500 / 2 = 175 - Tankinhalt_neu = Tankinhalt_Rest - Verbrauch_Strafe = 0-175 = -175
Wenn ich Dich richtig verstehe, möchtest Du keine 0 haben, aber auch nicht generell eine 1 dazu rechnen. Warum nimmst Du dann keine IF-Abfrage rein ? Wenn Wert 0, dann rechne diese 1 dazu, ansonsten rechne wie sonst auch.
Warum setzt du nicht einfach 19 dann kommt die Einheit trotzdem nur ein Feld maximal weit und ASC rechnet auch mit den Nachkommastellen und rundet auf.
Ich finde der Ansatz von Tokei Ihto klingt ganz gut. Die Frage ist nur ob sich das in ASC umsetzen lässt (was auch für meine Vorschläge gilt). Nochmal: Ich will eigentlich mit meinen Gedanken nur Anregungen für eine rechnerische Lösung bieten, damit es keine Einheiten mehr gibt, die ewig fliegen können - völlig unabhängig davon ob ich der Einheit ein Movement von 10, 11, ... 19 oder 255 verpasse. Ob oder wie die Ideen umsetzbar sind muss dann ValHaris wissen.