Seite 9 von 162 ErsteErste ... 56789101112131959109 ... LetzteLetzte
Ergebnis 121 bis 135 von 2421

Thema: BASE: SDK & Python Diskussion (Coder's Lair)

  1. #121
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Wäre möglich, aber funktionieren tut es schon.

  2. #122
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Das macht in der Diagonalen bei einer 12 Bewegungseinheit inklusive Beförderungen 3 Felder weniger aus.

  3. #123
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    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)

  4. #124
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Das ist immerhin 1/4 weniger Reichweite in der Diagonale.

  5. #125
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    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)

  6. #126
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    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.

  7. #127
    Registrierter Benutzer Avatar von Seulessliathan
    Registriert seit
    19.07.11
    Beiträge
    1.663
    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.

  8. #128
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Das ist auch nur als Spieloption angedacht.

    Die Umsetzung des Wunsches war schließlich einfach.

  9. #129
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    Cybah:

    Was hast du schon versucht um den Sumern freie Bewässerung beizubringen?

    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);
    }
    Ganz am Ende der Funtkion müsste man nach meiner Meinung nach den Sumern fragen und setIrrigated(true); setzen.

    Alternativ kann man auch in folgend danach fragen.

    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;
    }
    Letzteres halte ich für sinnvoller. Die Frage if ((getTeam() != NO_TEAM) && GET_TEAM(getTeam()).isIrrigation()) muss für Sumer immer true sein.

  10. #130
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    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)

  11. #131
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    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.

  12. #132
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    Kannst du mal überprüfen, ob in plotFeatureRemoved
    PHP-Code:
            pPlot argsList[0]
            
    iFeatureType argsList[1]
            
    pCity argsList[2# This can be null 
    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.
    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)

  13. #133
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    mache ich.

    edit: sieht so im SDK aus: CvEventReporter::getInstance().plotFeatureRemoved(this, getFeatureType(), pCity);

    this ist der plot.

    edit:

    Code:
    void CvEventReporter::plotFeatureRemoved(CvPlot *pPlot, FeatureTypes eFeature, CvCity* pCity)
    {
    	m_kPythonEventMgr.reportPlotFeatureRemoved(pPlot, eFeature, pCity);
    }
    Kann keinen Fehler sehen.

  14. #134
    Waddehaddedudeda Avatar von Cybah
    Registriert seit
    01.09.06
    Beiträge
    30.455
    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)

  15. #135
    Civ4 BASE Coder Avatar von rucivfan
    Registriert seit
    10.07.11
    Ort
    Antarktika
    Beiträge
    19.017
    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;
    	}
    }
    Hier steckt der Fehler.

    Die Zeilen eventData.add(gDLL->getPythonIFace()->makePythonObject(pCyCity)); und eventData.add((int)eFeature); müssen getauscht werden.

    edit:

    Ich setze das gleich mit um!

Seite 9 von 162 ErsteErste ... 56789101112131959109 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •