Ich habe deinen Vorschlag einmal umgesetzt. Der Test ergab aber leider, dass die Einheiten tatsächlich nicht an Land gesetzt werden.
Ich habe deinen Vorschlag einmal umgesetzt. Der Test ergab aber leider, dass die Einheiten tatsächlich nicht an Land gesetzt werden.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Welche meinst du? Die ohne jumpToNearestValidPlot?
Ja, die Version mit den 2 zusätzlichen Schleifen und dem anderen Kram.
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Es passiert das selbe wie vorher, nämlich nichts.
Sollte prinzipiell in dem Beispiel keinen Einfluss haben.
Aber änder mal die 0 in der Schleife auf -1 um, man weiß ja nie.
Prinzipiell seh' ich jetzt aber echt nix mehr .
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Doch, es macht einen Unterschied.
Delnan hat im ersten Post gesagt, was nicht stimmt, und wir reden tagelang darüber.
Doch, J, das macht nen Unterschied. Leider nur nen subtilen, der aber wehtun kann... Vergleich mal
mitCode:for i in range(5,0,-1) # oder range, ist egal, funktionieren beide gleich print i,
Das erste gibt "5, 4, 3, 2, 1" aus, das zweite "4, 3, 2, 1, 0". Jetzt rate mal, welches besser ist, um nen Array mit 5 Elementen von hinten aufzurollenCode:for i in xrange(4,-1,-1) # s.o. print i,
Da merkt man erst, was für ein Geschenk des Himmels Iteratoren sind... wenn Civ4 nur mehr davon hätte
Das kommt drauf an, wo der Array beginnt .
Wenn ich das selbst definieren kann, fangen die bei mir intern auch meist mit 1 an, und nicht mit 0 (also ich red' jetzt nicht von Python).
Abgesehen davon hab' ich ja auch bei 4 angefangen .
Und inhaltlich macht's gar keinen Sinn, denn dann wäre die neue Einheit ja die, die als erstes auf dem Feld hätte auftauchen müssen .
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)
Delphi/Pascal ist ne riesige Ausnahme Gut, und in Lua fangen Arrays bei 1 ab. Aber ansonsten kenne ich keine relevante Sprache, die Arrays nicht bei 0 anfangen lassen.
Und da Arrays in Python und C++ von 0 bis len-1 gehen, gibt's nen feinen Fehler, wenn man von (inklusive) len runterzählt. Sollte zumindest. Wenn aus irgendwelchen kruden Umständen heraus keiner auftritt, dann wird die Eineheit mit Index 0 übersehen.
Ich bin sowieso für for i in range (plot.getNumUnits())
Hab nen Problem
scheint Komplikationen zu geben, wenn gesklavt oder gekauft wird. dann übersteigt anscheinend die summe die restliche produktion und anstelle, dass die überschüssigen hämmer in das nächste projekt kommen, wird die produktion komplett zurückgesetzt. jemand ne idee?PHP-Code:
pIndCity.setBuildingProduction(pB, pIndCity.productionLeft())
des rätsels bugfix: einfach vorher überprüfen ob productionleft > 1 ist. voila.
Geändert von Cybah (29. Mai 2010 um 13:31 Uhr)
Pucc's Lets Plays BASE 6.0: #1 #2 #3 #4 #5
Download von BASE 6.4 [D]: HIER (klick mich!) (Stand: 08.07.2022)
Wie kann ich ein Ergebnis abhängig von der Ära machen? Ich möchte gerne, dass man bei einer Goody-Hütte später keine Krieger mehr erhält, weil es mich doch sehr ärgert, im Lategame dami abgespeist zu werden. Also muss ich irgendwie sowas einstellen:
Die Frage ist nur, wie ich die Ära am besten aufrufen kann.PHP-Code:
If Goody-Type = GOODY_WARRIOR
if ERA = EAR_CLASSIC
change Unit to Archer (da orientiere ich mich an dem schon vorhandenen)
Und mach' bloß die Fehlermeldungen an, ist wahrscheinlich nicht richtig eingerückt.PHP-Code:
def onGoodyReceived(self, argsList):
'Goody received'
iPlayer, pPlot, pUnit, iGoodyType = argsList
###new code
if iGoodyType == gc.getInfoTypeForString("GOODY_WARRIOR"):
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.getCurrentEra () ==gc.getInfoTypeForString("ERA_CLASSICAL"):
iMaxPlotUnit = pPlot.getNumUnits ()-1
for i in xrange(iMaxPlotUnit,-1,-1):
pPlotUnit = pPlot.getUnit(i)
if pPlotUnit.getUnitType ()==gc.getInfoTypeForString("UNIT_WARRIOR"):
pPlotUnit.kill(False,-1)
pPlayer.initUnit(gc.getInfoTypeForString("UNIT_ARCHER"),pPlot.getX(),pPlot.getY(),UnitAITypes.NO_UNITAI,DirectionTypes.DIRECTION_NORTH)
###new code end
Solltest du zu dem Zeitpunkt selbst mit einem Krieger in die Hütte laufen, wird evtl. dieser ersetzt statt des neuen, aber naja, wie hoch ist schon die Wahrscheinlichkeit ?
Zum Download bereit: Civ4-Mod "Mars, jetzt!"
"Frei sein heißt wählen können, wessen Sklave man sein will." (Jeanne Moreau, 1928 - )
"Immer wenn man die Meinung der Mehrheit teilt, ist es Zeit, sich zu besinnen." (Mark Twain, 1835 - 1910)