Oh. Ja, äh, auch gut
Ok, danke. Ein paar Sachen:
-) Weißt du, ob die Listen noch gespeichert bleiben, wenn man das Spiel neulädt? Und wenn nicht, würde es funktionieren, das Listen füllen (also Teil 2/3) auch zu onLoadGame zu schreiben?
-) Bei der Überflutung steht das hier:
PHP-Code:
if pPlot.isCoastalLand() and not pPlot.isCity() and not pPlot.isHills() and pPlot.getBonusType(-1) == -1:
if sScenarioScriptData == "SchmelzEuro" and y >= 28: self.IceCoast.append(pPlot)
else: self.IceCoast.append(pPlot)
1. Die Bedingung not pPlot.isPeak() hab ich noch hinzugefügt.
2. Die letzten zwei Zeilen sollten wohl eher so sein, oder?
PHP-Code:
if sScenarioScriptData == "SchmelzEuro":
if y >= 28: self.IceCoast.append(pPlot)
else: self.IceCoast.append(pPlot)
Weil, sonst bringt es ja irgendwie nichts, wenn im if und im else dasselbe drinsteht So wird dann auf der Europakarte nichts unter y=28 überflutet.
3. Frage: Bei pPlot.getBonusType(-1) steht ja die -1 für den Besitzer, also eigentlich kein Besitzer (oder Besitzer egal? Glaube eigentlich kein Besitzer). In Runde 0 ist natürlich alles kein Besitzer, aber sollten die Listen später im Spiel auch noch gefüllt werden müssen, sollte da besser pPlot.getOwner() in die Klammer, oder?
-)
PHP-Code:
iWahrscheinlichkeit = 10
if sScenarioScriptData == "SchmelzWelt":
iWahrscheinlichkeit = 8
kann einfach zu iWahrscheinlichkeit = 8 (also immer) gemacht werden, die 10 waren mir etwas zu niedrig.
-)
PHP-Code:
#Schnee -> Tundra
if len(self.IceSnow):
for pPlot in self.IceSnow:
iRand = self.myRandom(iWahrscheinlichkeit, None)
if iRand == 1:
pPlot.setTerrainType(eTundra,1,1)
self.IceSnow.remove(pPlot)
#Tundra -> Gras (25%) oder Ebene (75%)
if len(self.IceTundra):
for pPlot in self.IceTundra:
iRand = self.myRandom(iWahrscheinlichkeit, None)
if iRand == 1:
iRand = self.myRandom(4, None)
if iRand == 1: pPlot.setTerrainType(eGras,1,1)
else: pPlot.setTerrainType(eEbene,1,1)
self.IceTundra.remove(pPlot)
1. Schneefelder, die zu Tundrafeldern werden, sollten dann auch auf die Tundraliste gesetzt werden (und nicht nur aus der Schneeliste entfernt werden), find ich.
2. Dass auf der Europakarte Felder mit iX >= 42 und iY >= 49 nur ein Drittel der Schmelzwahrscheinlichkeit haben, wär mir noch relativ wichtig, fehlt hier aber (glaub ich).
-) Ebenso wie bei Schneefelder, die zu Tundrafeldern werden, sollten Seefelder in Afrika, die zu Ebenen austrocknen, zu IceDesertEbene hinzugefügt werden, damit die ehemaligen Seefelder keine Ebene bleiben.
Sorry für all die Anmerkungen Liegt ja auch teilweise daran, dass du scheinbar noch meinen alten Code (den im Download-Paket) genommen hast. Sorry.
Noch ein paar Verständnisfragen von mir:
1.
PHP-Code:
if len(self.IceSnow):
heißt "wird ausgeführt, wenn IceSnow einen Inhalt hat (also Länge != 0)"?
2. Kannst du mir sagen, wieso meins nicht funktioniert hat? Dein
PHP-Code:
for pPlot in self.IceSnow:
ist zwar wesentlich eleganter als meine Lösung, erst die Länge der Liste zu bestimmen und dann
PHP-Code:
for i in range(iLaengeSchnee):
pPlot = self.SchneeArray[i]
zu machen, aber müsste da nicht dasselbe rauskommen? Oder ist self.SchneeArray[i] ein ungültiger Befehl oder sowas?
Habe fertig