PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ärger über das Abspeichern von Populationen



Thomasius
04.01.04, 18:23
Mich ärgert das Victoria beim Speichern von POPs auf voll Hundert abrundet, was dazu führt das bei kleinen Pops Z.B. 1000 erst nach rund 8 Jahren ein Zuwachs erreicht ist der auch abgespeichert wird. Auf diese weise verliert man sehr viel Bevölkerung und kleine POPS haben überhaupt kein Wachstum, wenn man nicht rund 8 Jahre am Stück spielt. Dieses sollte unbedingt mit 1.03 geändert werden. :confused: :confused: :confused:

Ludendorff
04.01.04, 21:29
Interessante Beobachtung! Bisher nicht festgestellt. Poste das mal als Bug im offiziellen Forum.

Caesar
04.01.04, 21:33
Äußerst scharf beobachtet!

hohe_Berge
04.01.04, 22:13
Unglaublich,

Edler Thomasiusonair wie habt Ihr den dieses festgestellt?
Jetzt habe ich wenigstens einen guten Grund meiner besseren Hälfte meine Spieldauerverlängerung plausibel zu belegen. :D

Danke ein balltreter :smoke:

Elvis
06.01.04, 17:57
Im offiziellem Bug-Forum steht, das das Absicht ist um das benötigte Volumen eines Savegames niedrig zu halten.

"Its a function of the game - need to reduce the number of significant figures to keep the game save file down to a reasonable size (its already 10 MB) . Unlikely to be changed."

Man ist stets gern zu diensten

Wilhelm I
06.01.04, 18:39
Dann sollte man mal vorschlagen, dass sie noch eine Stelle mehr speichern, von mir aus auch nur bei den niedrigen Pops... denn das ist ja kein Zustand so :confused:

Ludendorff
06.01.04, 19:20
Dann sollte man mal vorschlagen, dass sie noch eine Stelle mehr speichern, von mir aus auch nur bei den niedrigen Pops...

Grade bei denen isses mir sch. egal ;) Von denen hat man doch eh immer zigtausende auf einem Haufen, eher die höheren POPs sind davon betroffen.

Immortalitate
06.01.04, 19:58
eine stelle mehr, das ist doch nur ein byte. auch bei 1000 POPs macht das noch keinen unterschied in der größe der spielstandsdatei...

Elvis
06.01.04, 20:20
In einem anderen Thread steht das das Problem vom Moderator nochmal an Johann herangetragen wurde.
Aber solange erst mal Worked as designed :rolleyes:
Und wenn ein potenzieller Bug erstmal Wad Status hatt... Na ja, also in den nächsten Patches würd ich nicht damit rechnen das daran was geändert wird.


http://www.europa-universalis.com/forum/showthread.php?t=120161


Man ist stets gern zu diensten

Thomasius
06.01.04, 20:33
Das es kein Bug ist war mir iklar nachdem ich gesehen habe, daß im Spielstand die letzten beiden Stellen nicht abgespeichert werden. Die Begründung mit der Größe der Spielstände finde ich jedoch merkwürdig. Wenn mann sich anschaut wie umständlich viele Daten abgespeichert werden hat man eher den Eindruck das die Größe des Savegames keine Rolle spielt. z.B. könnte der Platz für eine enzige zu speichernde Population auf 1/10 verringert werden wenn alle einzelnen Daten der Population mit je einem Byte gespeichert würden und nicht mit unzähligen. :rolleyes: :rolleyes: :rolleyes:

Bethm. Hollweg
14.01.04, 21:21
Das Problem mit der Bevölkerungsabrundung beim Absspeichern hat mich auch ziemlich geärgert. Da es unmöglich ist, die Savedatei manuell nach allen Minipops abzusuchen habe ich das für mich automatisiert. Mit folgendem VB-Code wird die Savedatei nach allen Pops kleiner 1700 Personen abgesucht und bei allen kleineren auf diesen Wert erhöht:

Sub POP_Vergroessern()

Dim Pfad As String, Wert As Byte
Dim Ein As Byte, Ein2 As Byte, Ein3 As Byte
Dim X As Currency, Y As Integer, Z As Currency
Dim Anz As Currency, Anz2 As Currency
Dim EinS(1 To 12) As String, EinS2 As String


Pfad = "D:\Spiele\Victoria\scenarios\save games\PruNeu-1848-01.eug"

Open Pfad For Random As #1 Len = 1
Do
X = X + 1
Ein2 = Ein
Get #1, X, Ein

If Ein = 122 And Ein2 = 105 Then
For Z = X - 2 To X + 9
Get #1, Z, Ein3
EinS(Z - X + 3) = Chr(Ein3)
Next Z
EinS2 = ""
For Y = 1 To 12
EinS2 = EinS2 + EinS(Y)
Next Y
If Left(EinS2, 4) = "size" Then
Anz = Anz + 1
If Val(Right(EinS2, 6)) < 0.017 Then
Anz2 = Anz2 + 1
Wert = 49
Put #1, X + 8, Wert
Wert = 55
Put #1, X + 9, Wert
End If
End If
ElseIf Ein = 111 And Ein2 = 99 Then
For Z = X - 1 To X + 10
Get #1, Z, Ein3
EinS(Z - X + 2) = Chr(Ein3)
Next Z
EinS2 = ""
For Y = 1 To 11
EinS2 = EinS2 + EinS(Y)
Next Y
If EinS2 = "country = {" Then
Exit Do
End If
End If

Loop While Not EOF(1)

Close

Is´ zwar nicht besonders hübsch programmiert aber den Zweck erfüllt es. Falls jemand Fragen hierzu hat, kann er es ja hier posten. Bei mir hat das übrigens problemlos funktioniert, ich kann natürlich keine Gewähr übernehmen.

Alternativ könnte man natürlich nach jedem Abspeichern die Pops immer um 100 erhöhen (praktisch Aufrunden anstatt wie ursprünglich Abrunden der Pops).

Bethmann Hollweg