Wäre möglich, aber funktionieren tut es schon.
Wäre möglich, aber funktionieren tut es schon.
Das macht in der Diagonalen bei einer 12 Bewegungseinheit inklusive Beförderungen 3 Felder weniger aus.
klingt irgendwie sinnlos.
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)
Das ist immerhin 1/4 weniger Reichweite in der Diagonale.
betrifft damit nur Schiffe, moderne Kampfhubschrauber und eigene Straßen sowie Eisenbahnlinien.
fraglich ob wirklich jemand damit spielen wird.
Geändert von Cybah (13. September 2013 um 23:08 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)
Ich hatte ja Faktor 2 Vorgeschlagen.
edit: Wenn man eine Karte spielt, wo man in allen Richtungen über den Rand gehen kann, wäre die Einstellung ein Vorteil. Man hat sonst Diagonal schneller die Weltumseglung als Kardinal.
Hexfelder sind ganz nett, aber da Civ 4 mit Quadraten entwickelt wurde finde ich es ok so wie es ist, kann gut damit leben, dass man diagonal schneller vorankommt.
Das ist auch nur als Spieloption angedacht.
Die Umsetzung des Wunsches war schließlich einfach.
Cybah:
Was hast du schon versucht um den Sumern freie Bewässerung beizubringen?
Ganz am Ende der Funtkion müsste man nach meiner Meinung nach den Sumern fragen und setIrrigated(true); setzen.Code:void CvPlot::updateIrrigated() { PROFILE("CvPlot::updateIrrigated()"); CvPlot* pLoopPlot; FAStar* pIrrigatedFinder; bool bFoundFreshWater; bool bIrrigated; int iI; if (area() == NULL) { return; } if (!(GC.getGameINLINE().isFinalInitialized())) { return; } pIrrigatedFinder = gDLL->getFAStarIFace()->create(); if (isIrrigated()) { if (!isPotentialIrrigation()) { setIrrigated(false); for (iI = 0; iI < NUM_DIRECTION_TYPES; ++iI) { pLoopPlot = plotDirection(getX_INLINE(), getY_INLINE(), ((DirectionTypes)iI)); if (pLoopPlot != NULL) { bFoundFreshWater = false; gDLL->getFAStarIFace()->Initialize(pIrrigatedFinder, GC.getMapINLINE().getGridWidthINLINE(), GC.getMapINLINE().getGridHeightINLINE(), GC.getMapINLINE().isWrapXINLINE(), GC.getMapINLINE().isWrapYINLINE(), NULL, NULL, NULL, potentialIrrigation, NULL, checkFreshWater, &bFoundFreshWater); gDLL->getFAStarIFace()->GeneratePath(pIrrigatedFinder, pLoopPlot->getX_INLINE(), pLoopPlot->getY_INLINE(), -1, -1); if (!bFoundFreshWater) { bIrrigated = false; gDLL->getFAStarIFace()->Initialize(pIrrigatedFinder, GC.getMapINLINE().getGridWidthINLINE(), GC.getMapINLINE().getGridHeightINLINE(), GC.getMapINLINE().isWrapXINLINE(), GC.getMapINLINE().isWrapYINLINE(), NULL, NULL, NULL, potentialIrrigation, NULL, changeIrrigated, &bIrrigated); gDLL->getFAStarIFace()->GeneratePath(pIrrigatedFinder, pLoopPlot->getX_INLINE(), pLoopPlot->getY_INLINE(), -1, -1); } } } } } else { if (isPotentialIrrigation() && isIrrigationAvailable(true)) { bIrrigated = true; gDLL->getFAStarIFace()->Initialize(pIrrigatedFinder, GC.getMapINLINE().getGridWidthINLINE(), GC.getMapINLINE().getGridHeightINLINE(), GC.getMapINLINE().isWrapXINLINE(), GC.getMapINLINE().isWrapYINLINE(), NULL, NULL, NULL, potentialIrrigation, NULL, changeIrrigated, &bIrrigated); gDLL->getFAStarIFace()->GeneratePath(pIrrigatedFinder, getX_INLINE(), getY_INLINE(), -1, -1); } } gDLL->getFAStarIFace()->destroy(pIrrigatedFinder); }
Alternativ kann man auch in folgend danach fragen.
Letzteres halte ich für sinnvoller. Die Frage if ((getTeam() != NO_TEAM) && GET_TEAM(getTeam()).isIrrigation()) muss für Sumer immer true sein.Code:bool CvPlot::isPotentialIrrigation() const { if ((isCity() && !isHills()) || ((getImprovementType() != NO_IMPROVEMENT) && (GC.getImprovementInfo(getImprovementType()).isCarriesIrrigation()))) { if ((getTeam() != NO_TEAM) && GET_TEAM(getTeam()).isIrrigation()) { return true; } } return false; }
hab noch gar nichts in der richtung ausprobiert, du?
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)
Ich bin gleich mit Süßwasser durch Gebäude-Code fertig. Vielleicht mache ich es hintererher, aber eigentlich will ich erstmal den letzten Schritt des Visionscode, sprich XML anlegen, machen. Das wird zwar nicht mehr den Patchs dienen, weil letzter Patch, aber der Code ist schon fast fertig. Also sollte ich das noch fertig machen. Danach kann ich mir Sumer vornehmen.
Kannst du mal überprüfen, ob in plotFeatureRemoved
stimmt? platyping schreibt bei den fanatics, dass firaxis mist gebaut hat und pCity als featuretype übergeben wird, weshalb er if pCity == gc.getInfoTypeForString("FEATURE_FOREST") schreibt. das hieße aber, ich kann die stadt nicht überprüfen und das muss ich.PHP-Code:
pPlot = argsList[0]
iFeatureType = argsList[1]
pCity = argsList[2] # This can be null
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)
mache ich.
edit: sieht so im SDK aus: CvEventReporter::getInstance().plotFeatureRemoved(this, getFeatureType(), pCity);
this ist der plot.
edit:
Kann keinen Fehler sehen.Code:void CvEventReporter::plotFeatureRemoved(CvPlot *pPlot, FeatureTypes eFeature, CvCity* pCity) { m_kPythonEventMgr.reportPlotFeatureRemoved(pPlot, eFeature, pCity); }
hab ich auch gesehen, aber ich kann mir nicht vorstellen, dass platyping das nicht getestet hat. bin gerade dabei und berichte gleich.
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)
Hier steckt der Fehler.Code:void CvDllPythonEvents::reportPlotFeatureRemoved(CvPlot *pPlot, FeatureTypes eFeature, CvCity* pCity) { if (preEvent()) { CyArgsList eventData; eventData.add("plotFeatureRemoved"); // add key to lookup python handler fxn CyPlot* pCyPlot = new CyPlot(pPlot); eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyPlot)); CyCity* pCyCity= new CyCity(pCity); eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity)); eventData.add((int)eFeature); postEvent(eventData); delete pCyPlot; delete pCyCity; } }
Die Zeilen eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity)); und eventData.add((int)eFeature); müssen getauscht werden.
edit:
Ich setze das gleich mit um!