Seite 1 von 12 1234511 ... LetzteLetzte
Ergebnis 1 bis 15 von 173

Thema: Beschiffbare Flüsse

  1. #1
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896

    Beschiffbare Flüsse

    Anfang des Jahres wurde im Eurasia-Kartenthread über die Möglichkeit von großen Flüssen diskutiert. Ich habe mich nun entschlossen doch erst einmal den Ansatz von Thorgal für die Flüsse umzusetzen. D.h. die normale Küste wird mit Bäumen aufgepeppt, um den Küstenverlauf zu kaschieren und ihn etwas schmaler erscheinen zu lassen.
    Habe mich erst einmal auf XML+Python konzentriert und alle grafischen Effekte weg gelassen. Hoffe bis zum nächsten WE ein Archiv mit den notwendigen Änderungen hier posten zu können.

    Zitat Zitat von Thorgal Beitrag anzeigen
    Überhaupt nicht. Ich find's toll, da ne Entwicklung zu sehen.

    Mir ist noch ein anderer Weg eingefallen, den Fluss attraktiver zu machen. Ich kenn mich mit Grafiken nicht aus, aber vielleicht ist der sogar leichter hinzubekommen. Wir könnten einfach Wald auf den Fluss setzen, das geht ja jetzt auch schon. Kommt dann immer auf die entsprechende Grafik an, beim Dichten Wald wird z.B. der gesamte Fluss bewaldet, bei der Savanne nur sporadisch die Ränder.

    Bild
    Umsetzung:
    1. Es gibt zwei neue Terrains, TEARRAIN_RIVER und TERRAIN_RIVER_FURT,
    und zwei neue Features, FEATURE_RIVER und FEATURE_RIVER_FURT.
    Um Grafikprobleme zu vermeiden ist es wichtig, dass beide Terrains den gleichen ArtDefineTag erhalten.
    Der Plottyp ist 'Ozean', so dass Flüsse das Land in unterschiedliche „Kontinente“ unterteilen können.
    2. Bei allen Landeinheiten wurde die Option aktiviert bei der sie auch Wasserfelder betreten können.
    3. Allen Landeinheiten wurde verboten, dass sie TERRAIN_OCEAN, TERRAIN_COAST oder TERRAIN_RIVER betreten.
    => Landeinheiten können in einer Furt Flüsse überqueren. (Dies könnte man theoretisch auch an eine Technologie knüpfen.)

    4. Die Features sind bis hierhin überflüssig. Sie werden aber für einige Dinge benötigt, die über Terrain-Eigenschaften nicht gesetzt werden können:
    4.1 Grafikoptionen sind bei Features reichhaltiger (Varianten, Effekte und DummyTags (kaum bekannte Option!))
    4.2. Features erlauben Frischwassertag (bAddsFreshWater)
    4.3. Verhindern von Standgründungen (bNoCity)
    Was man nicht setzen darf ist bImpassable, denn dann wäre das Feld nicht mehr bearbeitbar.

    5. Über Python kann man allen angrenzenden Feldern das zusätzliche Goldstück zuschanzen.
    Achtung Spoiler:

    Code:
     3605   def onLoadGame(self, argsList):
     3606     # Ramk/RIVER. Add gold nearby river tiles:
     3607     iMapW = gc.getMap().getGridWidth()
     3608     iMapH = gc.getMap().getGridHeight()
     3609     RIVER_TERRAINS = [
     3610             gc.getInfoTypeForString("TERRAIN_RIVER"),
     3611             gc.getInfoTypeForString("TERRAIN_RIVER_FURT") ]
     3612     neighbours_indizies = [(-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(1,-1),(1,0),(1,1)]
     3613     goldYield = 2
     3614     for x in range(iMapW):
     3615       for y in range(iMapH):
     3616         loopPlot = gc.getMap().plot(x,y)
     3617         if loopPlot.isRiver() or loopPlot.getTerrainType() in RIVER_TERRAINS:
     3618             # hm, die IDs spielen leider nur bei der Kartengenerierung eine Rolle.
     3619             #CyEngine().addLandmark(loopPlot, str(loopPlot.getRiverID()) )
     3620             continue
     3621         neighbours = [ gc.getMap().plot(x+n[0],y+n[1]) for n in neighbours_indizies ]
     3622         for nPlot in neighbours:
     3623             if nPlot == None:
     3624                 continue
     3625             if nPlot.getTerrainType() in RIVER_TERRAINS:
     3626                iYield = loopPlot.getYield(YieldTypes(goldYield))
     3627                iImprovement = loopPlot.getImprovementType()
     3628                if iImprovement > -1:
     3629                  iYield -= loopPlot.calculateImprovementYieldChange(iImprovement, YieldTypes(goldYield), loopPlot.getOwner(), False)
     3630                if iYield == 0:
     3631                  CyGame().setPlotExtraYield(loopPlot.getX(), loopPlot.getY(), goldYield, iYield + 1) # hm, das ist keine Set-Route, sondern wirkt wie eine Change-Routine?!
     3632                #loopPlot.setRiverID(100)
     3633                break
     3634     # End - Ramk/RIVER.


    Was funktioniert:
    • Schiffe können die neuen Terrains befahren und Einheiten die Furten.
    • Frischwasser und Extrakommerz werden wie bei normalen Flüssen vergeben.
    • Auf Furt-Feldern werden Einheiten beschädigt. Man soll sich dort nicht verschanzen können.
    • Handel über die neuen Terrains, wenn man sie bei einer Technologie frei gibt. Habe die gleiche (müsste Warenhandel sein) wie bei Küste genommen.

    Was nicht funktioniert:
    • Schiffe können auf FEATURE_RIVER nicht betreten werden. (Es würde nur gehen, wenn man stattdessen das Betreten von TERRAIN_RIVER für Landeinheiten sperrt. Allerdings können die Flüsse dann sofort betreten werden sobald sich dort ein Feature (FEATURE_RIVER!) befindet.

    • Große Flüsse verhalten sich in Kombination mit Straßen nicht wie normale Flüsse. Für Handelsrouten muss man eine Stadt
    am Fluss bauen oder auf Modernisierungen wie die Festung zurück greifen ( bActsAsCity-Option)
    Man kann diese Auswirkung reduzieren indem man kurze Zuflüsse auf der Karte platziert.
    Per SDK könnte man das übrigens wahrscheinlich beheben, indem man die Rückgabe von
    Code:
    5690 int CvPlot::getRiverCrossingCount() const
    5691 {
    5692   return m_iRiverCrossingCount;
    5693 }
    5694
    bei den neuen Flussfeldern um eins erhöht. Damit sollte Civ diese Felder genau so behandeln als ob dort ein normaler Fluss entlang läuft.

    Noch offen:
    • Graphisches Ausschmücken
    • Straßen/Brücken-Modernisierung auf Furten (wahrscheinlich nicht möglich)
    • Andere Modernisierungen auf Flussfeldern.
    • Evtl. noch ein Feature (Stromschnellen) mit der man Schiffe blockieren kann.
    • Feldertrag der Flussfelder?!
    • Furten könnten für Tiere gesperrt werden.
    Geändert von Ramkhamhaeng (15. August 2015 um 11:05 Uhr)

  2. #2
    Moderator Avatar von Kathy
    Registriert seit
    11.10.07
    Beiträge
    16.920
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    3. Allen Landeinheiten wurde verboten, dass sie TERRAIN_OCEAN, TERRAIN_COAST oder TERRAIN_RIVER betreten.
    => Landeinheiten können in einer Furt Flüsse überqueren. (Dies könnte man theoretisch auch an eine Technologie knüpfen.)
    Das klingt sehr interessant. Allerdings solltest du bei diesem Punkt teste, ob die Landeinheiten dann nicht im eigenen Kulturbereich die gesperrten Felder betreten können. Schiffe jedenfalls können alle Wasserfelder in der eigenen Kultur betreten, auch wenn das Terrain für sie verboten ist (Trireme-> Ozean in BtS). Im Kulturbereich scheint zumindest bei Wassereinheiten nur dias Feature (ICE) wirklich zu sperren.
    That's why I am here: Mein Mod
    Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude

    Die aktuelle Story zum Mod:
    Die Vereinigten Staaten von Amerika

    Alte Stories zu alten Versionen:
    Alte Storys

  3. #3
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Zitat Zitat von Kathy Beitrag anzeigen
    Das klingt sehr interessant. Allerdings solltest du bei diesem Punkt teste, ob die Landeinheiten dann nicht im eigenen Kulturbereich die gesperrten Felder betreten können. Schiffe jedenfalls können alle Wasserfelder in der eigenen Kultur betreten, auch wenn das Terrain für sie verboten ist (Trireme-> Ozean in BtS). Im Kulturbereich scheint zumindest bei Wassereinheiten nur dias Feature (ICE) wirklich zu sperren.
    Das wurde bereits getestet


    ======

    Wahrscheinlich gibt es einen Bug beim Handeln über große Flüsse außerhalb der eigenen Kultur
    Ich habe den Handel über Flussfelder bei den Technologien freigeschaltet:
    Achtung Spoiler:
    Code:
     4799       <TerrainTrades>
     4800         <TerrainTrade>
     4801           <TerrainType>TERRAIN_COAST</TerrainType>
     4802           <bTerrainTrade>1</bTerrainTrade>
     4803         </TerrainTrade>
     4804         <TerrainTrade>
     4805           <TerrainType>TERRAIN_RIVER</TerrainType>
     4806           <bTerrainTrade>1</bTerrainTrade>
     4807         </TerrainTrade>
     4808         <TerrainTrade>
     4809           <TerrainType>TERRAIN_RIVER_FURT</TerrainType>
     4810           <bTerrainTrade>1</bTerrainTrade>
     4811         </TerrainTrade>

    Bild
    Der Handel zwischen Luxor und Rachotis kommt aber nur zustande, wenn das Feld 2-2 von Rachotis Küste ist. :-/ Tippe mal darauf dass im Code nicht alle Features getestet werden sondern nur COAST und OCEAN
    Angehängte Grafiken Angehängte Grafiken

  4. #4
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Wunderbar Ramk,

    aber mein Senf dazu: wieso reicht nicht einfach das Terrain und Feature der FURT.
    Durch die Größe/Länge der Küste werden ja Süßwasserseen oder Meere definiert. Wenn man also mehrere Furten hat, hat man auch "Seen" und das Süßwassersystem funktioniert. Weiters funktioniert auch der Handel über "Küsten"/Ufern weil COAST.
    Hm?
    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!

  5. #5
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Soll bei deinem Vorschlag die Furt ein Landfeld sein?

  6. #6
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Nein, nein. Eh ein Ozean. Das heißt, die UnitInfo müsste komplett angepasst werden. Aber die breiten Flüsse könnten ja die bisherigen Küsten bleiben. Nur halt mit dem Unterschied, dass sie keine Kommerz bringen, aber das kann ich ja mit nem Hafengebäude beisteuern.
    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!

  7. #7
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Der Fehler mit dem fehlenden Handel über RIVER-Terrain hat sich erledigt Da hatte sich im Spielstand ein inkonsistenter Zustand eingestellt, der bei einem neuen Spiel dann weg war.

    Zitat Zitat von Pie Beitrag anzeigen
    Wunderbar Ramk,

    aber mein Senf dazu: wieso reicht nicht einfach das Terrain und Feature der FURT.
    Durch die Größe/Länge der Küste werden ja Süßwasserseen oder Meere definiert. Wenn man also mehrere Furten hat, hat man auch "Seen" und das Süßwassersystem funktioniert. Weiters funktioniert auch der Handel über "Küsten"/Ufern weil COAST.
    Hm?
    Wenn die Furten Ozeanfelder sind, dann sollte das mit den Süßwasserseen/Meeren nicht funktionieren. Dann sollte doch der gesamte Fluss zum Meer hinter der Mündung gezählt werden.

    Nun zu deinem Vorschlag mit der Minimalmenge "Normale Küste + Furt-Feature". Man muss meiner Meinung nach mindestens zwei Dinge hinzu nehmen.
    1. Man benötigt auch noch ein Furt-Terrain weil man bei Einheiten nur verbieten kann ein Terrain/Feature betreten zu können. Wenn ich also
    den Einheiten verbiete die Küste zu betreten brauche ich einen anderen Untergrund.
    2. Außerdem benötigt man ein Fluss-Feature, weil man ansonsten keine Möglichkeit hat den Fluss graphisch zu gestalten. Der Fluss wäre dann graphisch nicht von der Küste zu unterscheiden.

    Das wäre dann schon fast mein Vorschlag mit den vier neuen Einträgen. Den Vierten, TERRAIN_RIVER, könnte man weg lassen. Mit dem Terrain hat man
    ein paar Vorteile:
    1. Man kann im Tooltip einen anderen Text anzeigen lassen.
    2. Man könnte eine andere Textur als auf Küste wählen.
    3. Evtl. erleichtert es später den Einbau von Fluss-Modernisierungen/ anderen Flussfeaturen.
    4. Man könnte Flussfelder leichter von bestimmten Einheiten (Bautrupps) betreten lassen.
    5. In Python kann ich Küste leichter von Flüssen unterscheiden und automatisch das Fluss-Feature setzen.


    Für deinen Vorschlag (mit Küste) spricht aber vermutlich das Problem, dass man sonst keine Schiffe auf Flussfeldern betreten kann. Daran scheitert es beim mir gerade
    Edit: Ah, gefunden. Habe FEATURE_RIVER und TERRAIN_COAST gesperrt. Das hat unterschiedliche Auswirkungen.
    Schiff auf unpassierbarem Gelände: Kann betreten werden
    Schiff auf unpassierbarem Feature: Kann nicht betreten werden.
    Geändert von Ramkhamhaeng (15. August 2015 um 00:54 Uhr)

  8. #8
    PAE.Macht.Antike! Avatar von Pie
    Registriert seit
    25.01.08
    Ort
    Noricum
    Beiträge
    16.342
    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Der Fehler mit dem fehlenden Handel über RIVER-Terrain hat sich erledigt Da hatte sich im Spielstand ein inkonsistenter Zustand eingestellt, der bei einem neuen Spiel dann weg war.
    oh, ok

    Wenn die Furten Ozeanfelder sind, dann sollte das mit den Süßwasserseen/Meeren nicht funktionieren. Dann sollte doch der gesamte Fluss zum Meer hinter der Mündung gezählt werden.
    Achja, stimmt.

    Das wäre dann schon fast mein Vorschlag mit den vier neuen Einträgen. Den Vierten, TERRAIN_RIVER, könnte man weg lassen. Mit dem Terrain hat man
    ein paar Vorteile:
    1. Man kann im Tooltip einen anderen Text anzeigen lassen.
    2. Man könnte eine andere Textur als auf Küste wählen.
    3. Evtl. erleichtert es später den Einbau von Fluss-Modernisierungen/ anderen Flussfeaturen.
    4. Man könnte Flussfelder leichter von bestimmten Einheiten (Bautrupps) betreten lassen.
    5. In Python kann ich Küste leichter von Flüssen unterscheiden und automatisch das Fluss-Feature setzen.
    versteh

    Für deinen Vorschlag (mit Küste) spricht aber vermutlich das Problem, dass man sonst keine Schiffe auf Flussfeldern betreten kann. Daran scheitert es beim mir gerade
    Edit: Ah, gefunden. Habe FEATURE_RIVER und TERRAIN_COAST gesperrt. Das hat unterschiedliche Auswirkungen.
    Schiff auf unpassierbarem Gelände: Kann betreten werden
    Schiff auf unpassierbarem Feature: Kann nicht betreten werden.
    Update alle notwendigen Dinge bitte gleich in deinem ersten Post, damit ich da nix vergesse. Auch deine Antwort zu den TerrainTrades.
    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!

  9. #9
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Ja, ich will den ersten Beitrag ab und zu ergänzen.

    Zitat Zitat von Ramkhamhaeng Beitrag anzeigen
    Edit: Ah, gefunden. Habe FEATURE_RIVER und TERRAIN_COAST gesperrt. Das hat unterschiedliche Auswirkungen.
    Schiff auf unpassierbarem Gelände: Kann betreten werden
    Schiff auf unpassierbarem Feature: Kann nicht betreten werden.
    Zu früh gefreut. Wenn man ein TERRAIN sperrt ist das Feld trotzdem betretbar wenn auf ihm ein Feature ist :-/
    Man sieht die Ursache gut im Code. Man beachte im C++-Code auch, dass "bIgnoreLoad" nur im else-Zweig (kein Feature) Verwendung findet
    Achtung Spoiler:
    Auszug aus CvUnit::canMoveInto
    Code:
    		if (pPlot->getFeatureType() != NO_FEATURE)
    		{
    			if (m_pUnitInfo->getFeatureImpassable(pPlot->getFeatureType()))
    			{
    				TechTypes eTech = (TechTypes)m_pUnitInfo->getFeaturePassableTech(pPlot->getFeatureType());
    				if (NO_TECH == eTech || !GET_TEAM(getTeam()).isHasTech(eTech))
    				{
    					if (DOMAIN_SEA != getDomainType() || pPlot->getTeam() != getTeam())  // sea units can enter impassable in own cultural borders
    					{
    						return false;
    					}
    				}
    			}
    		}
    		else
    		{
    			if (m_pUnitInfo->getTerrainImpassable(pPlot->getTerrainType()))
    			{
    				TechTypes eTech = (TechTypes)m_pUnitInfo->getTerrainPassableTech(pPlot->getTerrainType());
    				if (NO_TECH == eTech || !GET_TEAM(getTeam()).isHasTech(eTech))
    				{
    					if (DOMAIN_SEA != getDomainType() || pPlot->getTeam() != getTeam())  // sea units can enter impassable in own cultural borders
    					{
    						if (bIgnoreLoad || !canLoad(pPlot)) 
    						{ 
    							return false;
    						}
    					}
    				}
    			}
    		}


    => Ich müsste FEATURE_RIVER raus schmeißen. Vielleicht kann ich die graphische Gestaltung der Felder auch über die Effekt-Mechanismen gestalten?!

  10. #10
    Registrierter Benutzer
    Registriert seit
    21.03.12
    Beiträge
    22.397
    Zu früh gefreut. Wenn man ein TERRAIN sperrt ist das Feld trotzdem betretbar wenn auf ihm ein Feature ist :-/
    Wie sieht das in BtS mit Wald auf Küste aus? Ist soweit ich weiß nicht betretbar.

  11. #11
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Bei BTS ja, aber hier würden die Einheiten bCanMoveAllTerrain=1 erhalten. Dann ist Wald auf einem Wasserfeld betretbar.

  12. #12
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Heute Abend hänge ich mal wieder an einer nervigen Stelle.
    Aber trotzdem muss ich mal erwähnen, dass ich am WE einen kleinen Durchbruch bei den 3D-Modellen hatte. Ich kann nun immerhin Straßen, Flüsse und andere Objekte über die Flussgrafiken legen Im Februar war ich daran noch verzweifelt!
    (Bei den Kulturgrenzen scheint mein Ansatz nicht zu klappen.)

    Bild
    (Hier sind bei Straßen/Flüssen noch ein paar kleinere Fehler sichtbar, die noch behoben würden.)
    Angehängte Grafiken Angehängte Grafiken

  13. #13
    Registrierter Benutzer Avatar von JohnDay
    Registriert seit
    26.12.12
    Beiträge
    4.819
    Wenn der bisher "normale" Fluss, der kleinste wäre und der in einen breiteren und dann in einen noch breiteren übergehen könnte/würde ... wie das gepostete Bild fast vermuten läßt. Vor allem, wenn bis auf den kleinsten die Flüsse auch noch schiffbar wären wie auf dem Bild dargestellt. Mir gefällt das sehr!

    Was auch immer am Ende dabei heraus kommt, das da etwas passiert ist toll!

    Grüße John

  14. #14
    Registrierter Benutzer
    Registriert seit
    06.02.14
    Beiträge
    2.243
    Ramkhamhaeng bin von deiner Arbeit sehr begeistert und bin schon sehr gespannt welche Möglichkeiten die Schiffbaren Flüsse für uns Spieler in einer zukünftigen PAE Version hergeben werden.

    Markus1978
    Markus1978

    PAE-Neuling

    Storys:
    Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Julius Caesar - Sieg oder Niederlage Ergebnis: Niederlage
    Abgeschlossene Storys: Wo: Civ4 - Einzelspieler-Storys Titel: PAE Szenario: PAE_LimesGermanicusSmall - Chaos ohne Ende wie man es nicht macht! Ergebnis: Sieg

  15. #15
    ε•ω=1 Avatar von Ramkhamhaeng
    Registriert seit
    19.07.10
    Ort
    Aralkum
    Beiträge
    9.896
    Verflixt, jetzt bin ich wieder auf ein vorher erfolgreich verdrängtes Problem gestoßen. Wenn man in den NIF-Modellen die Option „OFFSET1=...“ nutzen will, um die Geländehöhe zu berücksichtigen, muss man auch <TileArtType>TILE_ART_TYPE_TREES</TileArtType>
    im XML eintragen. Dann werden die Modelle aber auf die Ecken der Felder gesetzt und man kann einem Feld nicht mehr eindeutig ein Modell zuordnen :-(

    Das ist schade weil ich schon einen Weltenbauer-Screen für die Flussbearbeitung erstellt habe und da jetzt nur noch die "Dekorationen" wie Bäume, integrieren wollte.
    Bild


    Es werden nicht weniger Baustellen
    Angehängte Grafiken Angehängte Grafiken

Seite 1 von 12 1234511 ... LetzteLetzte

Berechtigungen

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