Seite 332 von 334 ErsteErste ... 232282322328329330331332333334 LetzteLetzte
Ergebnis 4.966 bis 4.980 von 4997

Thema: Der-kleine-Fragen-zum-Modding-Thread

  1. #4966
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    12.114
    Wenn zwei Spieler diese selbe Farbe haben, und ihre Länder aneinandergrenzen, zieht Civ keine Grenze dazwischen, sonder lässt die beiden Gebiete miteinander verschwimmen. Ich frage mich, warum da nicht einfach zwei parallele Linien der selben Farbe gezogen werden, und ob man das vielleicht irgendwie modden kann. Hat sich schon einmal jemand mit dem Problem auseinandergesetzt? Ist das machbar, oder ist das ein Fehler in der Spielengine?
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Kathys Mod: The british Empire - United Kingdom zum Dritten

    Alte Stories zu alten Versionen:
    Alte Storys

  2. #4967
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    13.657
    Witzig. Klingt nach Fehler in der Spiel-Engine. Dass die wirklich nach der Farbe und nicht der CIV-ID prüft? So quasi if colorA != colorB mach ne Grenze.
    anstatt if civA != civB. Böses CIV.
    Pie's Ancient Europe (PAE)
    Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins letzte Detail!
    Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features.


    ... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!

  3. #4968
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    12.114
    Ich frage mich auch, was das soll. Ich hätte es ja so erwartet, dass nur die ID des Spielers eine Rolle spielt und die Grenze generiert wird, die dann in der jeweiligen Farbe eingefärbt wird. Hat wohl jemand gedacht: "Grenze ist etwas grafisches, also gucke ich nach grafischen Daten". Vor 20-25 Jahren hätte ich das vielleicht noch logisch gefunden, weil ich damals noch nicht zwischen dem, was ich sehe, und dem, was informationstechnisch dahinter steht, unterschieden habe. Aber heute ist mir dieser Fehler unverständlich.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Kathys Mod: The british Empire - United Kingdom zum Dritten

    Alte Stories zu alten Versionen:
    Alte Storys

  4. #4969
    Registrierter Benutzer Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    8.700
    Da dieses Problem nie behoben wurde gehe ich nicht davon aus, dass es ein simpler Logik-Fehler ist. Das Grenzen-Overlay wird ja im Prinzip komplett als Shader auf der Grafikkarte berechnet werden und damals war die Anzahl der gleichzeitig verfügbaren „Seiteninformationen“ und Texturen noch sehr begrenzt.
    D.h. Farbe und Spieler-ID gleichzeitig zur Verfügung zu stellen hätte bei der primitivsten Umsetzung doppelt so viele Kanäle gebraucht.
    Damit will ich aber nicht sagen, dass es ein schwierig zu lösendes Problem wäre.

    Heutzutage kann man den Fehler immer noch umgehen, indem man die Farbinformation (get-Funktions-Rückgabe) eines Spielers minimal modifiziert durch seine Id

  5. #4970
    Porn in the USA Avatar von Maxvorstadt
    Registriert seit
    03.08.13
    Ort
    Z`Ha`Dum
    Beiträge
    1.367
    Na, ich bezweifle das es auf fehlenden Möglichkeiten basiert. Das Spiel ist von 2006, da war grafisch schon einiges möglich. Ich meine, wir reden hier nicht von den 90ern, als die Spielehersteller geschockt feststellten, dass ein PC auch Farben darstellen kann!
    Make DuckDuckGo great again!

    "Fußball ist wie Schach - nur ohne Würfel!"
    Jan Böhmermann

    I is more stronger than Darth Vapour!

  6. #4971
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    12.114
    Ich vermute, es hat etwas mit der Zahl der Spieler zu tun. Im Original ist die auf 19 (18 +1 Barbar) begrenzt, da reicht es dann, genauso viele Farben zu haben, da ein Mechanismus verhindert, dass eine bereits existierende Farbe noch einmal zugewiesen wird. Vermutlich (ich habe das jetzt nicht geprüft) gibt es genau diese Zahl an Farben, und schon sind die alle unterschiedlich und haben getrennte Grenzen. Dass die Modder die Grenze für die Höchstzahl an Spielern erhöhen kam denen wohl nicht in den Sinn.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Kathys Mod: The british Empire - United Kingdom zum Dritten

    Alte Stories zu alten Versionen:
    Alte Storys

  7. #4972
    Civ-Rentner Avatar von HeymlicH
    Registriert seit
    15.05.01
    Beiträge
    15.644
    Wie kann man Siedler teurer machen? Der Wert icost in CIV4UnitInfos.xml wird für Siedler ignoriert. Ich hab in einem Mod die Produktionskosten für Einheiten verdreifacht, und das hat auch geklappt, nur für die Siedler nicht - die kosten jetzt 381 statt 300 (marathon). Ich weiß, daß es irgendwie über Umwege geht, weil ich's vor Jahren schon mal in einem Mod gemacht habe, aber ich finde nicht mehr raus, wie.

  8. #4973
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    12.114
    Ich weiß nicht, ob dir das hilft.
    Im SDK wird der Preis für Siedler durch diese Formeln bestimmt:
    Code:
    void CvPlayer::init(PlayerTypes eID)
    .....
    		for (iI = 0; iI < GC.getNumUnitClassInfos(); ++iI)
    		{
    			UnitTypes eUnit = ((UnitTypes)(GC.getCivilizationInfo(getCivilizationType()).getCivilizationUnits(iI)));
    
    			if (NO_UNIT != eUnit)
    			{
    				if (GC.getUnitInfo(eUnit).isFound())
    				{
    					setUnitExtraCost((UnitClassTypes)iI, getNewCityProductionValue());
    				}
    			}
    		}
    	}
    
    	AI_init();
    }
    Code:
    void CvPlayer::setUnitExtraCost(UnitClassTypes eUnitClass, int iCost)
    {
    	for (std::vector< std::pair<UnitClassTypes, int> >::iterator it = m_aUnitExtraCosts.begin(); it != m_aUnitExtraCosts.end(); ++it)
    	{
    		if ((*it).first == eUnitClass)
    		{
    			if (0 == iCost)
    			{
    				m_aUnitExtraCosts.erase(it);
    			}
    			else
    			{
    				(*it).second = iCost;
    			}
    			return;
    		}
    	}
    
    	if (0 != iCost)
    	{
    		m_aUnitExtraCosts.push_back(std::make_pair(eUnitClass, iCost));
    	}
    }
    Code:
    int CvPlayer::getNewCityProductionValue() const
    {
    	int iValue = 0;
    	for (int iJ = 0; iJ < GC.getNumBuildingClassInfos(); iJ++)
    	{
    		BuildingTypes eBuilding = ((BuildingTypes)(GC.getCivilizationInfo(getCivilizationType()).getCivilizationBuildings(iJ)));
    
    		if (NO_BUILDING != eBuilding)
    		{
    			if (GC.getBuildingInfo(eBuilding).getFreeStartEra() != NO_ERA)
    			{
    				if (GC.getGameINLINE().getStartEra() >= GC.getBuildingInfo(eBuilding).getFreeStartEra())
    				{
    					iValue += (100 * getProductionNeeded(eBuilding)) / std::max(1, 100 + getProductionModifier(eBuilding));
    				}
    			}
    		}
    	}
    
    	iValue *= 100 + GC.getDefineINT("NEW_CITY_BUILDING_VALUE_MODIFIER");
    	iValue /= 100;
    
    	iValue += (GC.getDefineINT("ADVANCED_START_CITY_COST") * GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getGrowthPercent()) / 100;
    
    	int iPopulation = GC.getDefineINT("INITIAL_CITY_POPULATION") + GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation();
    	for (int i = 1; i <= iPopulation; ++i)
    	{
    		iValue += (getGrowthThreshold(i) * GC.getDefineINT("ADVANCED_START_POPULATION_COST")) / 100;
    	}
    
    	return iValue;
    }
    Ich denke also, wenn du in den Global Defines die Werte NEW_CITY_BUILDING_VALUE_MODIFIER, ADVANCED_START_CITY_COST und ADVANCED_START_POPULATION_COST anpasst kannst du mehr oder weniger direkt den Preis des Siedlers beeinflussen.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Kathys Mod: The british Empire - United Kingdom zum Dritten

    Alte Stories zu alten Versionen:
    Alte Storys

  9. #4974
    Civ-Rentner Avatar von HeymlicH
    Registriert seit
    15.05.01
    Beiträge
    15.644
    Ich hab's mal getestet, aber die Werte sind scheinbar nur für advanced starts, im normalen Spiel ändern sie nichts.

  10. #4975
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    12.114
    Ich hätte jetzt geglaubt, dass
    Code:
    iValue += (GC.getDefineINT("ADVANCED_START_CITY_COST") * GC.getGameSpeedInfo(GC.getGameINLINE().getGameSpeedType()).getGrowthPercent()) / 100;
    der entscheidende Wert ist. Denn dieser Wert hängt nicht von Startzeitalter ab.

    Allerdings ist er auch nicht 100, sondern 67. Der Siedler müsste dann in einem normalen Spiel (GrowPercent = 100) 67 kosten.

    Oder hier kommt noch etwas dazu:
    Code:
    	int iPopulation = GC.getDefineINT("INITIAL_CITY_POPULATION") + GC.getEraInfo(GC.getGameINLINE().getStartEra()).getFreePopulation();
    	for (int i = 1; i <= iPopulation; ++i)
    	{
    		iValue += (getGrowthThreshold(i) * GC.getDefineINT("ADVANCED_START_POPULATION_COST")) / 100;
    	}
    Initial Population ist 1, Free Population von "ERA_ANCIENT" (also normaler Start) ist 0, iPopulation ist also 1, zu iValue muss also einmal getGrowthThreshold(i) * GC.getDefineINT("ADVANCED_START_POPULATION_COST")/100 dazuaddiert werden, wobei ich getGrowthThreshold(i) nicht kenne. Aber vielleicht erklärt das die fehlenden 33

    All die Änderungen sollten nur in neuen Spielen wirken, da der Wert bei der Initialisierung des Spielers gesetzt und gespeichert wird.
    Soweit mein Verständnis von dem Code.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Kathys Mod: The british Empire - United Kingdom zum Dritten

    Alte Stories zu alten Versionen:
    Alte Storys

  11. #4976

  12. #4977
    Civ-Rentner Avatar von HeymlicH
    Registriert seit
    15.05.01
    Beiträge
    15.644
    hab's nochmal getestet, und es ist so, wie du vermutet hast. ADVANCED_START_POPULATION_COST zu erhöhen erhöht auch die Siedlerkosten. Ich bin nicht sicher, ob fortgeschrittene Starts dann noch sinnvoll funktionieren, aber das ist egal, da ich nur ANCIENT spiele.

    Danke dir

  13. #4978
    Registrierter Benutzer Avatar von klops
    Registriert seit
    20.05.16
    Ort
    Hannover
    Beiträge
    2.695
    machst du einen kleinen Privatmod um alle Städte mit allen Gebäuden zu verschönern?
    (die sind ja im Vergleich zu Einheiten dann billiger)

  14. #4979
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    12.114
    Nur Siedler werden damit teurer, andere Einheiten nicht.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Kathys Mod: The british Empire - United Kingdom zum Dritten

    Alte Stories zu alten Versionen:
    Alte Storys

  15. #4980
    Civ-Rentner Avatar von HeymlicH
    Registriert seit
    15.05.01
    Beiträge
    15.644
    Ich mach einen Mod mit höheren Techkosten, wodurch das Spiel insgesamt länger wird. Die teuren Einheiten sind hauptsächlich nötig, damit die Stacks nicht so riesig werden und es nicht so viele Generäle gibt. Außerdem verträgt der Multiple Production Mod sich nicht mit dem 52 Civ Mod, was Stadtspezialisierung irgendwie sinnlos macht.

Seite 332 von 334 ErsteErste ... 232282322328329330331332333334 LetzteLetzte

Berechtigungen

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