Neue Moddingmöglichkeiten in BtS (Civ4): Unterschied zwischen den Versionen

Aus CivWiki
Wechseln zu: Navigation, Suche
Zeile 335: Zeile 335:
 
: USE_ON_UNIT_CREATED_CALLBACK
 
: USE_ON_UNIT_CREATED_CALLBACK
 
: USE_ON_UNIT_LOST_CALLBACK
 
: USE_ON_UNIT_LOST_CALLBACK
<br>
+
<br><br>
 
Denke daran, dass diese Pythonfunktionen ausgewählt wurden, weil sie oft genug aufgerufen wurden, um merklich Rechenleistung zu benötigen, wenn sie aktiviert sind. Wenn du sie also aktiviert, um sie in deiner Mod zu verwenden, erwarte einen Performanceeinbruch auf langsameren Rechnern.
 
Denke daran, dass diese Pythonfunktionen ausgewählt wurden, weil sie oft genug aufgerufen wurden, um merklich Rechenleistung zu benötigen, wenn sie aktiviert sind. Wenn du sie also aktiviert, um sie in deiner Mod zu verwenden, erwarte einen Performanceeinbruch auf langsameren Rechnern.
 +
 +
== 10.0    Neue Attribute ==
 +
 +
Dieser Artikel wird nicht all die neuen Attribute in BtS abdecken können. Aber ich habe die neuen Attribute einiger der am häufigsten modifizierten Elemente des Spiels herausgesucht. Die meisten sind für diejenigen, die sich mit den Benennungsrichtlinien von Firaxis auskennen, selbsterklärend und für die von besonderem Interesse habe ich Notizen hinzugefügt.
 +
Viele dieser Attribute wurden für ein spezielles BtS-Szenario hinzugefügt (und zwar so, dass Modder diese Funktionen einfach benutzen können). Nimm nicht an, dass, nur weil ein Attribut hier existiert, dieses im normalen Spiel verwendet wird.
 +
 +
=== 10.1    Einheiten ===
 +
 +
Help- (optional) siehe Kapitel 6
 +
<br><br>
 +
: '''bQuickCombat''' - Bringt die Einheit dazu, quick combat (schnellen Kampf) zu nutzen
 +
: '''bSpy''' - Einheit kann in feindlichem Gelände Spionagemissionen durchführen
 +
: '''bCanMoveAllTerrain''' - Ob die Einheit jedes Gelände (inkl. Land- und Wasserfelder) passieren kann
 +
: '''bRenderAlways''' - ? nicht im SDK
 +
: '''bSuicide''' - Wenn „true“ stirbt die Einheit nach einem Angriff ihrerseits
 +
: '''bLineofSight''' - Erlaubt der Einheit lediglich geradeaus zu schauen
 +
: '''bHiddenNationality''' - Wenn „true“ können andere Spieler die Nationalität nicht erkennen und die Einheit kann ohne Krieg angreifen
 +
: '''bAlwaysHostile''' - Die Einheit ist unabhängig vom diplomatischen Status ein Feind
 +
: '''FlankingStrikes''' - Ermöglicht der Einheit Flankenangriffe gegen angegebene Einheitenklassen
 +
: '''CorporationSpread''' - Ermöglicht der Einheit, Konzerne zu verbreiten
 +
: '''PrereqCorporation''' - Einheit kann nur in Städten mit dem angegebenen Konzern ausgebildet werden
 +
: '''iAdvancedStartCost''' - Kosten, diese Einheit beim fortgeschrittenen Start zu erzeugen
 +
: '''iAdvancedStartCostIncrease''' - Zusätzliche Kosten pro Einheit, die beim fortgeschrittenen Start gekauft wird
 +
: '''bNoRevealMap''' - Einheit kann kein unerforschtes Gelände aufdecken
 +
: '''iAirUnitCap''' - Wie viel Luftkapazität die Einheit in einer Stadt aufnimmt
 +
: '''iDropRange''' - Ob die Einheit als Fallschirmscpringer genutzt werden kann
 +
: '''iEspionagePoints''' - Menge der Spionagepunkte, die die Arbeit eines großen Spions bereitstellt
 +
: '''TerrainPassableTechs''' - Schaltet die Fähigkeit frei, sich durch das Gelände zu bewegen, wenn die entsprechende Technologie bekannt ist
 +
: '''FeaturePassableTechs''' - Schaltet die Fähigkeit frei, sich durch die (Gelände-)Eigenschaft zu bewegen, wenn die entsprechende Technologie bekannt ist
 +
: '''iCombatLimit''' - maximaler Schaden, den diese Einheit anrichten kann, in Prozent. Auf 100 gesetzt, können andere Einheiten getötet werden.
 +
: '''TerrainAttacks''' - Modifikator für Angriffe in das angegebene Gelände
 +
: '''FeatureAttacks''' - Modifikator für Angriffe in die angegebene Geländeeigenschaft
 +
: '''FormationType''' - genutzter Formationstyp, siehe Kap. 1.1
 +
: '''Button''' - Das Button-Attribut wurde von der Einheitendefinition zur UnitArtDef  verschoben.
 +
 +
=== 10.2    Beförderungen ===
 +
 +
Help- s.Kap. 6
 +
<br><br>
 +
: '''LayerAnimationPath''' - Wird verwendet, um Beförderungen das Aussehen von Einheiten verändern zu lassen
 +
: '''StateReligionPrereq''' - Sorgt dafür, dass die Beförderung die ausgewählte Staatsreligion benötigt
 +
: '''iAirRangeChange''' - Verändert die Luftreichweite der Einheit
 +
: '''iInterceptChange''' - Verändert die Abfangwahrscheinlichkeit der Einheit
 +
: '''iEvasionChange''' - Verändert die Fluchtchance der Einheit
 +
: '''iCargoChange''' - Verändert die Ladekapazität der Einheit
 +
: '''TerrainAttacks''' - Prozentmodifikator bei einem Angriff auf das angegebene Gelände
 +
: '''FeatureAttacks''' - Prozentmodifikator bei einem Angriff auf die angegebene Eigenschaft
 +
 +
=== 10.3    Gebäude ===
 +
 +
Help- s.Kap. 6
 +
<br><br>
 +
: '''bStateReligion''' - Wenn „true“ kann das Gebäude nicht gebaut werden, wenn der Spieler keine Staatsreligion hat
 +
: '''PrereqCorporation''' - benötigt den angegebenen Konzern
 +
: '''FoundsCorporation''' - Bau des Gebäudes wird den angegebenen Konzern gründen
 +
: '''GlobalCorporationCommerce''' - Hier angegebene Werte verändern die Kommerzrate der Konzerne
 +
: '''NoBonus''' - If the building blocks are resource
 +
: '''DiploVoteType''' -ersetzt bDiploVote
 +
: '''bAllowsNukes''' - Ob ein Gebäude Nuklearraketen erlaubt, ähnlich wie aktuelle Projekte
 +
: '''iAdvancedStartCost''' - Die Kosten, das Gebäude beim fortgeschrittenen Spielstart zu erzeugen
 +
: '''iAdvancedStartCostIncrease''' - Zusatzkosten pro beim fortgeschrittenen Start gekauftem Gebäude
 +
: '''iGoldenAgeModifier''' - Prozentuale Veränderung auf die Länge eines Goldenenn Zeitalters für den Besitzer durch das Gebäude
 +
: '''iAirUnitCapacity''' - Ob das Gebäude die in der Stadt lagerbare Anzahl an Lufteineinheiten betrifft
 +
: '''iEnemyWarWearinessModifier'''- Feinde erleiden diese prozentuale Veränderung zur Kriegsunzufriedenheit
 +
: '''iForeignTradeRouteModifier''' - Prozentuale Veränderung der Erträge interkontinentaler Handelswege
 +
: '''iEspionageDefense''' - Prozentuale Verteidigung gegen Spionagemissionen
 +
: '''RiverPlotYieldChanges''' - Veränderte die Flussfelderträge für diese Stadt
 +
: '''ImprovementFreeSpecialists''' - Stellt freie Spezialisten für jedes Auftreten dieser Verbesserung zur Verfügung
 +
 +
=== 10.4    LeaderHeads ===
 +
 +
: '''iEspionageWeight''' - Setzt die KI-Vorliebe für Spionage
 +
: '''iFreedomAppreciation''' - Setzt die KI-Vorliebe für Kolonisation
 +
: '''FavoriteReligion''' -Legt die Lieblingsreligion der KI fest
 +
 +
=== 10.5    Technologien ===
 +
 +
Help- s.Kap.6
 +
<br><br>
 +
: '''iAdvancedStartCost''' - Kosten, beim fortgeschrittenen Start mit dieser Technologie zu beginnen
 +
: '''iAdvancedStartCostIncrease''' - Zusätzliche Kosten pro beim fortgeschrittenen Start gekaufter Technologie
 +
: '''bRiverTrade''' - ermöglicht Handel entlang der Flüsse
 +
 +
=== 10.6    Features  ===
 +
 +
Help- s. Kap. 6
 +
<br><br>
 +
: '''iTurnDamage''' -  Bringt das Feature (die Geländeeigenschaft) dazu, die Einheiten auf dem Feld zu beschädigen
 +
: '''bVisibleAlways''' -Ob die Geländeeigenschaft immer angezeigt wird
 +
: '''bNukeImmune''' - Ob die Geländeeigenschaft von Nuklearwaffen unberührt bleibt
 +
: '''OnUnitChangeTo''' - Wenn eine Einheit sich darauf bewegt, verändert sich die Geländeeigenschaft zu der angegebenen
 +
: '''iAdvancedStartRemoveCost''' - Kosten, die Geländeeigenschaft beim fortgeschrittenen Start zu entfernen
 +
 +
=== 10.7    Verbesserungen ===
 +
 +
Help- s. Kap. 6
 +
<br><br>
 +
: '''iAdvancedStartCost''' -Kosten beim fortgeschrittenen Start
 +
: '''iAdvancedStartCostIncrease''' - zusätzliche Kosten pro gekaufter Geländeverbesserung beim fortgeschrittenen Start
 +
: '''iFeatureGrowth''' - Verändert die Wachstumsrate einer Geländeeigenschaft auf dem jeweiligen Feld
 +
: '''iHappiness''' - Ob die Geländeverbesserung einen Zufriedenheitsbonus ergibt
 +
: '''bOutsideBorders''' - Ob die Geländeverbesserung außerhalb der Grenzen gebaut werden kann
 +
 +
== 11.0    Neue Global Defines ==
 +
 +
In Warlords gab es 17 neue global defines (globale Festlegungen). Es ist gerecht, zu sagen, dass Firaxis sich auch hier selbst übertroffen hat, Moddern einfache Kontrolle über noch mehr Funktionen zu geben. Denke daran, dass alle globalen Festlegungen in der GlobalDefinesAlt.xml vorgenommen werden sollten.
 +
<br><br>
 +
: '''RECON_VISIBILITY_RANGE''' - Gibt die Reichweite für Aufklärungsmissionen an
 +
: '''CITY_FREE_CULTURE_GROWTH_FACTOR''' - Modifikator für die Kulturwachstumsrate in Feldern
 +
: '''GREAT_WORKS_CULTURE_TURNS''' - Nach so vielen Runden wird die Kultur großer Werke ausgelöscht
 +
: '''NUM_CORPORATION_PREREQ_BONUSES''' - Größte Anzahl an Rohstoffen, die ein Konzern benötigen kann
 +
: '''NUM_ROUTE_PREREQ_OR_BONUSES''' - Größte Anzahl von Bonusvoraussetzungen für eine Route
 +
: '''MAX_NATIONAL_WONDERS_PER_CITY_FOR_OCC''' - Legt fest, wie viel Kleidung die Anführer haben, schau dir Pacal nicht nackt an!
 +
: '''POWER_HEALTH_CHANGE''' - Auswirkung von Elektrizität auf die Gesundheit der Städte
 +
: '''INTERCEPTION_MAX_ROUNDS''' - Größte Anzahl von Kampfrunden während Abfangen
 +
: '''MAX_INTERCEPTION_DAMAGE''' - Größtmögliche Menge an Schaden während des Abfangens
 +
: '''MIN_INTERCEPTION_DAMAGE''' - Kleinstmögliche Menge an Schaden während des Abfangens
 +
: '''RANGE_COMBAT_DAMAGE''' - Grundlegender Fernkampfschaden, verändert durch die relative Stärke der zwei Einheiten
 +
: '''FOUND_CORPORATION_CITY_RAND''' -Je höher die Zahl, desto zufälliger die Zuweisung der Konzerne
 +
: '''GOLDEN_AGE_GREAT_PEOPLE_MODIFIER''' - Modifikator auf Zuwachs an Großen Persönlichkeiten während goldener Zeitalter
 +
: '''OVERSEAS_TRADE_MODIFIER''' - Modifikator auf interkontinentale Handelsrouten
 +
: '''DEFY_RESOLUTION_POP_ANGER''' - Menge des von der KI erzeugten Ärgers, wenn du dich über eine Resolution hinwegsetzt
 +
: '''DEFY_RESOLUTION_ANGER_DIVISOR''' - Je höher diese Zahl, desto länger brauchen die KI-Staatsoberhäupter, ihren Ärger über deinen Resolutionsbruch zu vergessen
 +
: '''TEMP_HAPPY''' - Menge der Zufriedenheit durch Ereignisse
 +
: '''CORPORATION_FOREIGN_SPREAD_COST_PERCENT''' - Modifikator auf Konzernverbreitungskosten
 +
: '''MAX_INTERCEPTION_PROBABILITY''' - Größte Abfangwahrscheinlichkeit
 +
: '''MAX_EVASION_PROBABILITY''' - Größtmögliche Fluchtchance (du wusstest das richtig!)
 +
: '''FOW_WAS_VISIBLE_COLOR''' - ? Nicht im SDK, ich nehme an, diese Einstellung legt die Farbe des Kriegsnebels fest
 +
: '''FOW_MINIMAP_WAS_VISIBLE_COLOR''' - ? Nicht im SDK, ich nehme an, diese Einstellung legt die Farbe des Kriegsnebels auf der Minikarte fest
 +
: '''CITY_SCREEN_FOG_ENABLED''' - Wenn dies auf „true“ gesetzt ist, erscheint der Nebel des Krieges im Stadtbildschirm
 +
: '''AI_CAN_DISBAND_UNITS''' - Setze diesen Wert auf „false“, um die KI davon abzuhalten, Einheiten auflösen zu können
 +
: '''CITY_SCREEN_CLICK_WILL_EXIT''' - Ob ein Klick auf den Bildschirm den Stadtbildschirm schließen wird
 +
: '''WATER_POTENTIAL_CITY_WORK_FOR_AREA''' - Ob eine Stadt Wasserfelder bearbeiten kann
 +
: '''LAND_UNITS_CAN_ATTACK_WATER_CITIES''' - Ob Landeinheiten Städte auf Wasser angreifen können
 +
: '''CITY_MAX_NUM_BUILDINGS''' - Für den Fall, dass Modder eine Maximalanzahl von Gebäuden pro Stadt festlegen wollen
 +
: '''RANGED_ATTACKS_USE_MOVES''' - Ob eine Fernkampfattacke Bewegungspunkte verbraucht
 +
: '''AI_SHOULDNT_MANAGE_PLOT_ASSIGNMENTS''' - ? Nicht im SDK
 +
: '''ROUTE_Z_BIAS''' - ? Nicht im SDK
 +
: '''RIVER_Z_BIAS''' - ? Nicht im SDK
 +
: '''NEW_CITY_BUILDING_VALUE_MODIFIER''' - Modifikator auf die KI-Vorliebe, in einer neuen Stadt ein Gebäude zu bauen
 +
: '''IGNORE_PLOT_GROUP_FOR_TRADE_ROUTES''' - Wenn das gesetzt ist, muss der Spieler Felder nicht besitzen, um durch sie Handel zu treiben
 +
: '''EVENT_PROBABILITY_ROLL_SIDES''' - Je höher diese Zahl, desto ungerner treten Events auf
 +
: '''FIRST_EVENT_DELAY_TURNS''' - Events werden nicht vor der hier eingestellten Runde auslösen
 +
: '''CIVILOPEDIA_SHOW_ACTIVE_CIVS_ONLY''' - Ob die Zivilopädie nur aktive Zivilisationen aufführt
 +
: '''CITY_AIR_UNIT_CAPACITY''' - Standard-Lufteinheitenkapazität der Städte
 +
: '''COLONY_NUM_FREE_DEFENDERS''' - Menge der geschenkten Einheiten, wenn eine Kolonie abgespalten wird
 +
: '''SHIP_BLOCKADE_RANGE''' - Umkreis in Feldern, in dem ein feindliches Schiff Handelsrouten verhindert
 +
: '''PATH_DAMAGE_WEIGHT''' - Je höher dies, desto stärker wird die KI es vermeiden, durch schädigendes Gelände zu ziehen
 +
: '''RENDER_AREABORDER_UNDER_FEATURES''' - Ob das Spiel Grenzen under Geländeeigenschaften anzeigen soll
 +
: '''RENDER_GLOBEVIEW_CLOUDS''' - Ob das Spiel beim Rauszoomen Wolken anzeigen soll
 +
: '''RENDER_WATER''' - Ob das Spiel Wasser aktiv rendern soll
 +
: '''USE_MODDERS_PLAYEROPTION_1''' - Erzwingt Spieleroption 1 wie in CIV4PlayerOptionInfos.xml festgelegt
 +
: '''USE_MODDERS_PLAYEROPTION_2''' - Erzwingt Spieleroption 2 wie in CIV4PlayerOptionInfos.xml festgelegt
 +
: '''USE_MODDERS_PLAYEROPTION_3''' - Erzwingt Spieleroption 3 wie in CIV4PlayerOptionInfos.xml festgelegt
 +
<br><br>
 +
Die folgenden Festlegungen geben Moddern mehr Kontrolle über die Kameraeinstellungen:
 +
<br><br>
 +
: '''DISABLE_CLOSE_ZOOM_MODE'''
 +
: '''CAMERA_UPPER_PITCH'''
 +
: '''CAMERA_LOWER_PITCH'''
 +
: '''CAMERA_MIN_SCROLL_SPEED'''
 +
: '''CAMERA_MAX_SCROLL_SPEED'''
 +
: '''CAMERA_MIN_YAW'''
 +
: '''CAMERA_MAX_YAW'''
 +
: '''CAMERA_MAX_TURN_OFFSET'''
 +
: '''CAMERA_FORCE_TO_SMALLEST_MAX_DISTANCE'''
 +
: '''CAMERA_NEAR_FAR_PLANE_RATIO'''
 +
: '''CAMERA_FAR_CLIP_Z_HEIGHT'''
 +
: '''CAMERA_CITY_TURN'''
 +
: '''CAMERA_CITY_NO_PITCH'''
 +
: '''CAMERA_SPECIAL_PITCH'''
 +
<br><br>
 +
Die folgenden Festlegungen werden auf die zugehörige Spionagemission als prozentuale Kostenanpassungen angewandt:
 +
<br><br>
 +
: '''ESPIONAGE_CITY_POP_EACH_MOD'''
 +
: '''ESPIONAGE_CITY_TRADE_ROUTE_MOD'''
 +
: '''ESPIONAGE_CITY_RELIGION_STATE_MOD'''
 +
: '''ESPIONAGE_CITY_HOLY_CITY_MOD'''
 +
: '''ESPIONAGE_CULTURE_MULTIPLIER_MOD'''
 +
: '''ESPIONAGE_DISTANCE_MULTIPLIER_MOD'''
 +
: '''ESPIONAGE_SPENDING_MULTIPLIER_MOD'''
 +
: '''ESPIONAGE_EACH_TURN_UNIT_COST_DECREASE'''
 +
: '''ESPIONAGE_INTERCEPT_SPENDING_MAX'''
 +
: '''ESPIONAGE_INTERCEPT_COUNTERSPY'''
 +
: '''ESPIONAGE_INTERCEPT_COUNTERESPIONAGE_MISSION'''
 +
: '''ESPIONAGE_INTERCEPT_RECENT_MISSION'''
 +
: '''ESPIONAGE_SPY_REVEAL_IDENTITY_PERCENT'''
 +
: '''ESPIONAGE_SPY_INTERCEPT_MOD'''
 +
: '''ESPIONAGE_SPY_NO_INTRUDE_INTERCEPT_MOD'''
 +
: '''ESPIONAGE_SPY_MISSION_ESCAPE_MOD'''
 +
<br><br>
 +
Die folgenden Festlegungen werden beim fortgeschrittenen Start im Falle von Kostenoptionen genutzt:
 +
<br><br>
 +
: '''ADVANCED_START_ALLOW_UNITS_OUTSIDE_CITIES'''
 +
: '''ADVANCED_START_MAX_UNITS_PER_CITY'''
 +
: '''ADVANCED_START_SIGHT_RANGE'''
 +
: '''ADVANCED_START_CITY_COST'''
 +
: '''ADVANCED_START_CITY_COST_INCREASE'''
 +
: '''ADVANCED_START_POPULATION_COST'''
 +
: '''ADVANCED_START_POPULATION_COST_INCREASE'''
 +
: '''ADVANCED_START_CULTURE_COST'''
 +
: '''ADVANCED_START_CULTURE_COST_INCREASE'''
 +
: '''ADVANCED_START_VISIBILITY_COST'''
 +
: '''ADVANCED_START_VISIBILITY_COST_INCREASE'''
 +
: '''ADVANCED_START_CITY_PLACEMENT_MAX_RANGE'''
 +
<br><br>
 +
Die folgenden globalen Festlegungen haben in BtS neue Werte:#
 +
<br><br>
 +
: '''CIV4_VERSION''' - Geändert zu 300
 +
: '''SAVE_VERSION''' - Geändert zu 300
 +
: '''BASE_GOLDEN_AGE_UNITS''' - Von 2 auf 1 gesetzt
 +
: '''UNIT_TRAIL_RESOLUTION''' - Von 10.0 auf 5.0 herabgesetzt
 +
<br><br>
 +
Die folgenden globalen Festlegungen wurden aus BtS entfernt:
 +
<br><br>
 +
: '''DIPLO_VOTE_TURN_FREQUENCY'''
 +
: '''COMBAT_SYNCH_DIE_FADE'''
 +
 +
== 12.0    Was kannst du jetzt machen? ==
 +
 +
Es ist ein guter Zeitpunkt, alles nochmal durchzusehen, was du in deiner Mod hast, und in Erwägung zu ziehen, Elemente, die nicht so gut funktioniert haben wie erhofft, herauszunehmen. Bei SDK- und Pythonmods sieh deinen Code durch und suche nach Möglichkeiten, ihn aufzuräumen oder Teile, auf die du auch verzichten kannst, zu entfernen.
 +
Wenn du kein Changelog für deine Mod führst, solltest du deine Veränderungen durchgehen und dokumentieren. Ich schlage vor, „Beyond Compare“ ([http://www.scootersoftware.com| http://www.scootersoftware.com]) über deine und die Originaldatein laufen zu lassen (Wenn du eine Warlordsmodifikation bist, zwischen deinen Dateien und den Warlordsdateien, wenn du eine Vanillamod bist, zwischen deiner Mod und den Vanilla-Dateien). Es gibt eine Menge kleiner Veränderungen, die wir vornehmen und dann vergessen; das wird dich all diese kleinen Veränderungen einfangen lassen.
 +
<br><br>
 +
Dieser Artikel sollte dir genug Informationen darüber geben, was mit BtS kommt, um mit der Planung für Ergänzungen für deine Mod zu beginnen. Ereignisse, die du ergänzen möchtest, neue pythonfunktionen, aus denen du einen Vorteil ziehen möchtest, usw. Vielleicht sogar einige Dinge zu überarbeiten, sodass sie die neuen Features nutzen. All diese Designarbeit kann jetzt getan werden. Befor du BtS spielst, frage dich selbst, wie du Ereignisse gern eingebaut wüsstest (aus Spielersicht) und welche Art von Ereignissen du gerne sähest. Wenn dann BtS rauskommt, wirst du vielleicht überrascht sein zu sehen, dass sie so sind, wie du dir gedacht hast, oder sogar noch besser oder vielleicht magst du deine Idee dann lieber und hast dann alles, was du brauchst, um sie auszuprobieren.
  
 
== Quelle ==
 
== Quelle ==

Version vom 11. Juli 2007, 15:02 Uhr


Ein Modder-Leitfaden zu Beyond the Sword
(Original unter: http://forums.civfanatics.com/showthread.php?t=229557

Über die Autoren: Kael – Chefdesigner des BtS-Szenarios „Fall from Heaven: Age of Ice“ Impaler[WrG]- Chefdesigner und Programmierer der Einheitendarstellungsarten- und „Modulares XML“-Eigenschaften BtS', Teamleiter des CCCP (Civ4 Community Core Project) Solver- Designberater und Programmierer für Beyond the Sword

Wir haben Artikel gelesen, die das in BtS kommende neue Gameplay beschreiben und spannende Hinweise, was es anbieten wird. Dieser Artikel wurde geschrieben, um einige der neuen Features genauer zu beschreiben, die vielleicht dem Durchschnittsspieler nicht viel bedeuten, aber für Modder wichtig sein werden.

Disclaimer: Bis BtS ausgeliefert werden wird, ist noch nichts endgültig festgelegt. Alles in diesem Leitfaden kann noch geändert werden. ALLES, das in BtS so ist oder nicht so ist wie hier beschrieben, kann auf letzte Änderungen oder meine Fehler beim Dokumentieren zurückzuführen sein.


1.0 Weniger Routinearbeit

Zuallererst zwei Dinge, die BtS entfernt: Modder kennen die Dateien Civ4FormationInfos.xml und Civ4CityLSystem.xml sehr gut. In Vanilla und Warlords müssen alle zum Spiel hinzugefügten Einheiten in der „formation“-Datei und alle Gebäude in der „CityLSystem“-Datei ergänzt werden. BtS schafft die Notwendigkeit ab, diese Dateien mit jedem neuen Eintrag auf den neuesten Stand bringen zu müssen.

1.1 CIV4FormationInfos.xml

Stattdessen enthält die formation-Datei alle Formationsarten. Wenn du eine neue Einheit erstellst, definierst du ihre Formationsart (z.B. FORMATION_TYPE_ANIMAL) und es verwendet diese Formationsdefinition mit der Einheit, anstatt dass eine solche für jede Einheit festgelegt werden muss. Das Folgende wäre also das Attribut einer Einheit in der CIV4UnitInfos.xml-Datei:

<FormationType>FORMATION_TYPE_DEFAULT</FormationType>

Ich werde hier eine Kopie der Definitionen einer Formationsdatei hier einfügen. Aber in der Regel werden Modder sie niemals anrühren müssen. Ich selbst habe meine verändert um einige größere Gruppen als die üblichen hinzuzufügen. Aber selbst das war einfacher als in Vanilla oder Warlords, weil ich lediglich die neue Formation erstellen und FORMATION_TYPE_DEFAULT (oder welchen Formationstyp ich auch immer verwenden wollte) zuweisen musste und die Einheiten sie zu nutzen begannen.

<UnitFormation>

               <Name>IDLE (1)</Name>
               <FormationType>FORMATION_TYPE_DEFAULT</FormationType>
               <EventMaskList>
                       <EventType>ENTITY_EVENT_IDLE</EventType>
                       <EventType>ENTITY_EVENT_SURRENDER</EventType>
                       <EventType>ENTITY_EVENT_CAPTURED</EventType>
                       <EventType>ENTITY_EVENT_GREAT_EVENT</EventType>
                       <EventType>ENTITY_EVENT_FOUND</EventType>
                       <EventType>ENTITY_EVENT_BUILD</EventType>
                       <EventType>ENTITY_EVENT_PARADROP</EventType>
                       <EventType>ENTITY_EVENT_SHOVEL</EventType>
                       <EventType>ENTITY_EVENT_DIE_ANIMATION</EventType>
               </EventMaskList>
               <UnitEntry>
                       <UnitEntryType>UNIT</UnitEntryType>
                       <Position>
                               <x>-0.0201342281879</x>
                               <y>-0.201342281879</y>
                       </Position>
                       <PositionRadius>13.0384048104</PositionRadius>
                       <Direction>3.14159265359</Direction>
                       <DirVariation>0.188679622641</DirVariation>
               </UnitEntry>
               <UnitEntry>
                       <UnitEntryType>GENERAL</UnitEntryType>
                       <Position>
                               <x>-0.332214765101</x>
                               <y>0.694630872483</y>
                       </Position>
                       <PositionRadius>22.0</PositionRadius>
                       <Direction>3.11129889367</Direction>
                       <DirVariation>0.440454310911</DirVariation>
               </UnitEntry>
               <UnitEntry>
                       <UnitEntryType>SIEGE</UnitEntryType>
                       <Position>
                               <x>-0.573825503356</x>
                               <y>-0.53355704698</y>
                       </Position>
                       <PositionRadius>25.0</PositionRadius>
                       <Direction>2.44685437739</Direction>
                       <DirVariation>0.521536192416</DirVariation>
               </UnitEntry>
       </UnitFormation>

1.2 CIV4CityLSystem.xml

Genauso wird die Lsystem-Größe eines Gebäudes in seiner „art“-Definition gesetzt (z.B. LSYSTEM_3x2) anstatt jedes Gebäude in der Lsystem-Datei definieren zu müssen.

<BuildingArtInfo>

               <Type>ART_DEF_BUILDING_PALACE</Type>
               <LSystem>LSYSTEM_3x2</LSystem>
               <bAnimated>0</bAnimated>
               <fScale>1.15</fScale>
               <fInterfaceScale>0.43</fInterfaceScale>
               <NIF>Art/Structures/Buildings/Palace/Palace.nif</NIF>
               <KFM/>
               <Button>,Art/Interface/Buttons/Buildings/Palace.dds,Art/Interface/Buttons/Buildings_Atlas.dds,6,5</Button>
       </BuildingArtInfo>

Das war's schon. Das Spiel kümmert sich um den Rest.

2.0 Modulares XML

Schonmal vorgehabt, eine neue Einheit zu einer Mod hinzuzufügen, ohne auch nur eine der Originaldateien anzurühren? Oder neue Objekte zu ergänzt und dann veränderte sich die Grundmodifikation und du musstest deine ganze Arbeit nochmal machen? Modulares XML erlaubt dem Spiel, mehrere verschiedene XML-Dateien als eine einzige zu laden.
Damit kannst du eine neue Einheit, Einheitenklasse und Einheitendarstellungsklasse hinzufügen, die nur die Daten deiner neuen Einheit enthält. Verändert sich die Mod, betrifft das deine Dateien in keinster Weise und du musst deine Veränderungen nicht erneut vornehmen.
Das ist noch vielversprechender, wenn man die Möglichkeit bedenkt, mehrere XML-Mods zusammenzufügen. Du könntest 3 verschiedene Mods nutzen, die jeweils eine neue Zivilisation, einzigartige Einheiten und Gebäude hinzufügen, und sie zusammen spielen, allein indem du sie in den entsprechenden Ordner kopierst. Keine Notwendigkeit, PHP zusammenzupuzzlen und wenn die Modder ihre Dateien updaten, ist es leicht genug, das zu übernehmen, ohne alles andere in deinem Spiel zu verändern.
Für detailliertere Informationen über modulares XML siehe Anhang A.

3.0 Einheitendarstellungsarten

Eine Menge phantastischer Arbeit, neue Einheitenmodelle für CivIV zu erstellen, ist verrichtet worden. Viele dieser Einheiten wurden als „Gewürz-“einheiten implementiert, mit gleichen Eigenschaften, aber hinzugefügt, um das Aussehen verschiedener Zivilisationen zu variieren. Leider erfordert das, dass im Spiel eine neue Einheit ergänzt wird, beispielsweise ein Schwertkämpfer, der in jeder Hinsicht, außer der „art definition“, ein Duplikat ist.
BtS erlaubt uns, „unit art types“ zu definieren, ähnlich den „building art types“ in Warlords. Dadurch kann man eine Einheitendefinition haben, aber verschiedene Zivilisationen unterschiedliche Graphiken für diese Einheit benutzen lassen. SO kann der griechische Scout dazu gebracht werden, anders auszusehen als der atztekische, ohne dass eine neue Einheit hinzugefügt werden müsste.
Um das zu ermöglichen, sind 3 Schritte nötig

3.1 Schritt 1: CIV4CivilizationsInfos.xml

In dieser Datei müssen wir den „Unit Art Style“ der Zivilisationen wie folgt festlegen:

<CivilizationInfo>

               <Type>CIVILIZATION_AMERICA</Type>
               <Description>TXT_KEY_CIV_AMERICA_DESC</Description>
               <ShortDescription>TXT_KEY_CIV_AMERICA_SHORT_DESC</ShortDescription>
               <Adjective>TXT_KEY_CIV_AMERICA_ADJECTIVE</Adjective>
               <Civilopedia>TXT_KEY_CIV_AMERICA_PEDIA</Civilopedia>
               <DefaultPlayerColor>PLAYERCOLOR_BLUE</DefaultPlayerColor>
               <ArtDefineTag>ART_DEF_CIVILIZATION_AMERICA</ArtDefineTag>
               <ArtStyleType>ARTSTYLE_EUROPEAN</ArtStyleType>
               [B]<UnitArtStyleType>UNIT_ARTSTYLE_EUROPEAN</UnitArtStyleType>[/B]


Das ist der Art, auf die Stadtanzeigearten in Warlords festgelegt wurden, sehr ähnlich, aber als ein anderes Attribut festgelegt, sodass Modder unterschiedliche Einheiten- und Stadtbauten-Anzeigearten verwenden können. Ein Wert „NONE“ wird die Zivilisation dazu bringen, die Standardmodelle der Einheiten zu verwenden.

3.2 Schritt 2: CIV4UnitArtStyleTypeInfos.xml

Das ist eine neue XML-Datei in BtS. Sie enthält die Definitionen für die Einheitenanzeigearten und erlaubt es, neue Einheitenmeshes für eine festgelegte Einheit zu nutzen. Im Beispiel unten ist die ART_DEF_UNIT_ARCHER_EURASIAN die frühe Anzeigeeinstellung, die für einen Bogenschützen benutzt wird, ART_DEF_UNIT_ARCHER_EUROPEAN wird in den mittleren und späteren Perioden verwendet. Der Bogenschütze hat, wie die meisten Einheiten, nur ein einziges UnitMesh, wie in seinem CIV4UnitInfos.xml-Element festgelegt ist. Aber Einheiten können in der Tat beliebig viele Meshes(3D-Modelle) haben - die Siedlereinheiten sind die einzigen Einheiten im Originalspiel, die mehr als ein Mesh nutzen – und um diese zu verändern, führ die Ersetzungsmeshes einfach als <UnitMeshGroup>-Elemente auf und sie werden in der Reihenfolge mit den CIV4UnitInfos-Meshes passend gemacht und ersetzen diese nacheinander. Jede Anzahl an Meshes kann in einer Einheit vorhanden seinund alle können auf diese Art ersetzt werden.
Jede Einheit, für die in einem StyleType keine Ersetzungen angegeben werden werden, wird einfach das Aussehen aus der UnitInfos.xml-Datei als Standard übernehmen und alle ARTDEFs können beliebig oft und in beliebig vielen StyleTypes aufgerufen werden, indem sie Teilen und Erstellen von Styles , die sich nur zu bestimmten Zeiten unterscheiden, um Kulturaufsplittung und -zusammenwachsen darzustellen, erlauben.

<UnitArtStyleTypeInfo>

               <Type>UNIT_ARTSTYLE_EUROPEAN</Type>
               <StyleUnits>
                       <StyleUnit>
                               <UnitType>UNIT_ARCHER</UnitType>
                               <UnitMeshGroup>
                                       <EarlyArtDefineTag>ART_DEF_UNIT_ARCHER_EURASIAN</EarlyArtDefineTag>
                                       <LateArtDefineTag>ART_DEF_UNIT_ARCHER_EUROPEAN</LateArtDefineTag>
                                       <MiddleArtDefineTag> ART_DEF_UNIT_ARCHER_EUROPEAN </MiddleArtDefineTag>
                               </UnitMeshGroup>
                       </StyleUnit>
                       <StyleUnit>
                               <UnitType>UNIT_SETTLER</UnitType>
                               <UnitMeshGroup>
                                       <EarlyArtDefineTag>ART_DEF_SETTLER_MALE_EUROPEAN</EarlyArtDefineTag>
                                       <LateArtDefineTag> ART_DEF_SETTLER_MALE_EUROPEAN </LateArtDefineTag>
                                       <MiddleArtDefineTag> ART_DEF_SETTLER_MALE_EUROPEAN </MiddleArtDefineTag>
                               </UnitMeshGroup>
                               <UnitMeshGroup>
                                       <EarlyArtDefineTag>ART_DEF_SETTLER_FEMALE </EarlyArtDefineTag>
                                       <LateArtDefineTag>ART_DEF_SETTLER_FEMALE </LateArtDefineTag>
                                       <MiddleArtDefineTag>ART_DEF_SETTLER_FEMALE </MiddleArtDefineTag>
                               </UnitMeshGroup>
                       </StyleUnit>
               </StyleUnits>
       </UnitArtStyleTypeInfo>

3.3 Schritt 3: CIV4ArtDefines_Unit.xml

Genau wie in Civ IV muss Einheitendarstellungsinformation für die Einheit existieren. Aber anstatt die der Einheit in der Civ4UnitInfos.xml (ART_DEF_UNIT_ARCHER beispielsweise) zugewiesenen Standardaussehen zu verwenden, erlaubt uns Unit Art Styles ein anderes, so wie dieses, zu nutzen:


<UnitArtInfo>

               <Type>ART_DEF_UNIT_ARCHER_EUROPEAN</Type>
               <Button>,Art/Interface/Buttons/Units/Archer.dds,Art/Interface/Buttons/Unit_Resource_Atlas.dds,4,1</Button>
               <fScale>0.44</fScale>
               <fInterfaceScale>1.0</fInterfaceScale>
               <bActAsLand>0</bActAsLand>
               <bActAsAir>0</bActAsAir>
               <NIF>Art/Units/Archer_European/Archer_European.nif</NIF>
               <KFM>Art/Units/Archer_European/Archer.kfm</KFM>
               <SHADERNIF>Art/Units/Archer_European/Archer_European_fx.nif</SHADERNIF>
               <ShadowDef>
                       <ShadowNIF>Art/Units/01_UnitShadows/UnitShadow.nif</ShadowNIF>
                       <ShadowAttachNode>BIP Pelvis</ShadowAttachNode>
                       <fShadowScale>0.85</fShadowScale>
               </ShadowDef>
               <fBattleDistance>0.35</fBattleDistance>
               <fRangedDeathTime>0.31</fRangedDeathTime>
               <bActAsRanged>1</bActAsRanged>
               <TrainSound>AS2D_UNIT_BUILD_UNIT</TrainSound>
               <AudioRunSounds>
                       <AudioRunTypeLoop/>
                       <AudioRunTypeEnd/>
               </AudioRunSounds>
       </UnitArtInfo>


Beachte, dass die Graphik für den Einheitenbutton in der UnitArtInfo definiert wird, sie wird nicht länger in der CIV4UnitInfos.xml-Datei festgelegt. Das ermöglicht uns, verschiedene Buttons für verschiedene Einheitendarstellungsarten zu verwenden. Diese Änderung wird es auch notwendig machen, dass Modder, die ältere Mods zu BtS konvertieren, all ihre Buttoninfos in die Darstellungsdatei verschieben.

Durch Veränderung des SDK kannst du alternative Arten der Einheitendarstellungslogik mit ihren eigenen XML-Dateien und logischen Strukturen erstellen, wie zum Beispiel Einheiten, die unterschiedliches Aussehen zeigen, jenachdem, wie stark sie beschädigt sind, oder welche Beförderungen sie haben.


4.0 Mod-spezifische Anzeige

Das blaue Standardinterface von Firaxis ist recht schön, aber es ist nicht allen Mods angemessen. Es ist bereits in Vanilla und Warlords möglich, die Anzeige zu verändern, aber das ist eine Spieleinstellung und kann nicht gemoddet werden. BtS ändert das. Modder können Farbe der Anzeige, Schriftarten, Leisten, alles, was sie für ihre Mod wollen, verändern.
Alles in den Unterordnern von “..\Sid Meier's Civilization 4\Resource” kann durch passende Dateien im “..\Sid Meier's Civilization 4\Beyond the Sword\Mods\[ModName]\Resource”-Ordner überschrieben werden. Dieser Ordner muss eine Civ4.thm-Datei enthalten, die wie folgt zu den zugehörigen modspezifischen Ressourcen umleitet:
// *** Control Bitmap Theme file
// Set the resource resource_path "Mods/[ModName]/Resource";
// Setup common properties include "Mods/[ModName]/Resource/Themes/Civ4/Civ4Theme.thm";
Alle möglichen Optionen detailliert auszuführen, die sich so verändern lassen, ist nicht Ziel dieses Leitfadens, es handelt sich grundsätzlich um alles, das in den früheren Versionen getan werden konnte, aber jetzt können diese Themes in Mods eingebaut werden, anstatt auf das gesamte Spiel angewendet werden zu müssen. Wenn du vorhast, ein Theme für eine eigene Mod zu erstellen, kannst du jetzt damit anfangen, indem du es in dem Vanilla- oder Warlords- „Ressource“-Ordner erstellst (denke daran, eine Sicherungskopie des Originals anzufertigen). Sobald BtS rauskommt, kannst du es in deinen Mod-Ordner kopieren und anfangen, es zu benutzen.

5.0 Neue Python-Funktionen

Firaxis hat hart daran gearbeitet, neue Python-Funktionen hinzuzufügen, ebenso wie Stellen, an denen wir Funktionen unterbrechen und unsere eigene Logik, um Geschehnisse (wie es Einheiten unmöglich zu machen, bestimmte Orte zu betreten (in der Funktion unitCannotMoveInto)zu verhindern, anwendenoder die Aktionen (wie z.B. neue Erfahrungspunktanforderungen in getExperienceNeeded zu erstellen) verändern zu können

5.1 CvEventManager.py

Diese Pythonfunktionen machen das Spiel nicht von Natur aus besser. Aber sie bieten kreativen Moddern eine Möglichkeit, phantastische Dinge zu tun. Mit wenigen Zeilen Python wird es leicht, Atombombenexplosionen abzufangen und die Welt vor ihrem Gebrauch zu warnen, ihre Wirkung zu verstärken oder gar stärkste post-apokalyptische Effekte zu triggern.

plotFeatureRemoved - der Punkt, das entfernte Feature und die Stadt (wenn der Punkt eine Stadt war) werden übergeben
plotPicked - ? nicht vom SDK aus aufgerufen
nukeExplosion -der Punkt und die explosionsverursachende Einheit werden übergeben
gotoPlotSet - ? nicht vom SDK aus aufgerufen
cityHurry - Immer aufgerufen, wenn die Produktion in einer Stadt beschleunigt wird
unitSpreadReligionAttempt - Einheit, Religion und ob die Religionsverbreitung erfolgreich war, werden übergeben
UnitGifted - Übergibt die Einheit, den alten Besitzer der Einheit und den Ort, an dem die Einheit sich befindet
unitBuildImprovement - Einheit, Art der Geländemodernisierung und ob diese fertiggestellt ist, werden übergeben
corporationFounded - Unternehmen und gründender Spieler werden übergeben
corporationSpread - Unternehmen, das sich verbreitet, besitzender Spieler und Stadt werden übergeben
corporationRemove - Unternehmen, das entfernt wurde, besitzender Spieler und Stadt werden übergeben
playerChangeStateReligion - Spieler, neue und alte Religion werden übergeben
playerGoldTrade - Geld gebender Spieler, Geldempfänger und die Geldsumme werden übergeben

5.2 CvGameUtils.py

isVictory - Ermöglicht eine Überprüfung, ob es bereits einem Spieler erlaubt ist, zu gewinnen
canDeclareWar - Um es Moddern zu möglich zu machen, Kriegserklärungen dynamisch zu ermöglichen oder nicht
unitCannotMoveInto - Um Bewegungen an Orte nach irgendwelchen Kriterien zu verhindern
canBuild - Um Bauaufträge nach irgendwelchen Kriterien zu verhindern
cannotFoundCity - Spieler und Koordinaten werden übergeben
cannotSpreadReligion - Um die Fähigkeit zur Religionsverbreitung abzuschalten
citiesDestroyFeatures - Um das Feature der Zerstörung ein- oder auszuschalten, wenn Städte erzeugt werden
canFoundCitiesOnWater - Um Städten zu ermöglichen, auf Wasserfeldern erzeugt zu werden
doCombat - um die SDK-Kampffunktion durch einen Python-Prozess zu ersetzen
getConscriptUnitType - um den durch Einberufung bereitgestellten Einheitentyp zu liefern
getCityFoundValue - Um die KI-Vorlieben für Stadtstandorte zu verändern
canPickPlot - ? nicht vom SDK aus aufgerufen
getUnitCostMod - Um Einheitenkosten dynamisch anzupassen
getBuildingCostMod - Um Gebäudekosten dynamisch anzupassen
canUpgradeAnywhere - Damit eine Einheit überall modernisiert werden kann
getWidgetHelp - Um der Maus über Hilfe zusätzlichen Text hinzuzufügen
getUpgradePriceOverride - Um Upgradekosten durch einen neuen Wert zu ersetzen
getExperienceNeeded - Um das Erfahrungssystem durch andere Werte zu ersetzen


Dies ist zur Ergänzung für zusätzliche Informationen, die an andere Python-Funktionen gesandt werden. Beispielsweise bekommt die onUnitMove-Funktion nun auch den alten Ort übergeben. Wenn du also eine Python-Aktion durchführen willst, wenn eine Einheit die kulturellen Grenzen verlässt, ist das jetzt leichter.

6.0 Help-Attribut

Dies mag nach einer Kleinigkeit ausshen, ist aber so wirkungsvoll und leicht zu benutzen, dass es besondere Erwähnung verdient. Es gibt ein neues Schemenattribut „Help“ zu Eigenschaften, Einheiten, Beförderungen, Gelände, Gebäuden, Features und Technologien. Help ist dafür vorgesehen, eine Text-Zeichenkette wie TXT_KEY_UNIT_GIANT_DEATH_ROBOT_HELP zu enthalten und alles, was diese Zeichenkette enthält wird für dieses Objekt an der Maus als Hilfetext angezeigt. In früheren Versionen mussten Modder, um zusätzliche Hilfetexte anzuzeigen, das SDK verändern. So ist das viel einfacher.


7.0 Beförderungen können das Aussehen von Einheiten verändern

Ich möchte mich im Voraus für das Fehlen von Details in diesem Abschnitt entschuldigen. Ich bin kein Graphiker und habe dieses Feature nicht selbst benutzt. Aber ich habe mit manchen Einheiten herumgespielt, die es verwenden. Grundsätzlich ist es möglich, ein Modell in Abhängigkeit von den Beförderungen, die es hat, zu verändern.
Du könntest beispielsweise ein Bombermodell machen, das, wenn es die richtige Beförderung hat, eine Bombe an seiner Unterseite zeigt. Wenn dann die Beförderung entfernt wird, sagen wir, durch eine Bombardierungsaktion, würde sich das Modell verändern, sodass die Bombe nicht länger sichtbar ist. Das Selbe könnte man mit der Anzeige von Schwertern und Äxten in den Händen der Einheiten machen, mit ihren Rüstungen, Einheiten, die von Wolken fauligen Gases oder Radioaktivität umgeben werden...
Ich möchte betonen, dass das nicht so einfach ist wie eine Beförderung zu erstellen, sie auf die Graphik zeigen zu lassen und alles funktionieren zu sehen. Das Modell muss mit eingebautem „Anhang“ erstellt werden. Standardmäßig wird er nicht angezeigt, aber mit der Beförderung erscheint er. Es wird also bedeutende Modellierungsarbeit sein, diese Funktion zu benutzen, aber ich zweifele nicht daran, dass die phantastischen Künstler hier bei den civfanatics eine Menge Spaß mit diesem Feature haben werden.


8.0 Events

Zufallsereignisse, die von Zufriedenheits- und Diplomatieboni bis zu freien Beförderungen und technologischen Durchbrüchen reichen, sind eines der neuen Spielelemente in BtS. Das Ereignissystem stellt Moddern eine große Basis zur Verfügung, darauf zu bauen, da alle Events gemodded werden können und sich neue ergänzen lassen. Man kann ein großes Feld möglicher Ereignisse allein durch XML-Modden erzeugen, aber die Events können für größere Vielseitigkeit auch durch Python verbessert werden. Anhang B dieses Leitfadens enthält einige Beispiele für Ereignisse, die eingepflegt werden können. Die hier beschriebenen Events können, zusammen mit einigen anderen, in einer Event-Mod von Solver gefunden werden. Stell dir die Mod als eine Ergänzung zu diesem Leitfaden vor, wenn du willst. Sie kann unter: (mod wird nach BtS-Release verlinkt) gefunden werden.
Es ist wichtig, die beiden grundlegenden Blöcke des Event-Systems zu verstehen: Trigger und Events. „Trigger“ sind eine Sammlung von Parametern, die Bedingungen anzeigen, wenn sie auslösen können. Trigger überprüfen, ob du die nötige Technologie, Bevölkerung, etc. hast. Wenn die Bedingungen erfüllt sind, hat der Trigger eine Chance, auszulösen. Wenn ein Trigger auslöst, eröffnet er dem Spieler die Wahl zwischen ein oder mehreren Ereignissen („Events“) (nungut, wenn es lediglich ein Ereignis ist, gibt es keine Wahl). Events selbst sind das, was die zugehörigen Ergebnisse zur Verfügung stellt, die dann den Spieler betreffen.
Spieler mögen geneigt sein, das Eventsystem als aus Ereignissen und Wahlmöglichkeiten bestehend anzusehen – das ist nicht wirklich angebracht. Jede Wahlmöglichkeit ist ein eigenes Event und der Trigger ist das, was die Auswahl zur Verfügung stellt.
Wie die meisten anderen Dinge in Civ 4 werden Events in erster Linie im SDK behandelt. Events werden von der Klasse CvEventInfo beschrieben, die die XML-Beschreibung der Events imitiert. Anhang B enthält eine Beschreibung der Ereignis-Tags in der XML-Datei. Wenn du C++ lesen kannst, möchtest du vielleicht einen Blick auf die Definition von CvEventInfo werfen. Die Übereinstimmung der Member-Funktionen der Klasse mit den XML-Werten sollte geradezu offensichtlich sein.
Event-Trigger werden in Civ4EventTriggerInfos.xml gehalten und diese Datei wird, mit Triggern im Allgemeinen, nach der Ereignisbeschreibungserklärung beschrieben werden. Für mehr Details zu Events lies den Eventführer in Anhang B durch.


9.0 Die „Python Callback Defines“-Datei

BtS ist schnell. Eine der Maßnahmen, die Firaxis ergriffen hat, um das Spiel zu beschleunigen, war, eine PythonCallbackDefines.xml-Datei einzubauen. Diese Datei hat Einträge für viele rechenintensive Pythonfunktionen, wie z.B. die folgenden

<Define>

               <DefineName>USE_CANNOT_FOUND_CITY_CALLBACK</DefineName>
               <iDefineIntVal>0</iDefineIntVal>
       </Define>


Standardmäßig (wie oben eingestellt) wird die Pythonroutine „ Found City“ nie aufgerufen werden. Möchtest du diese Funktion in deiner Mod nutzen, musst du eine modifizierte Kopie der PythonCallbackDefines.xml mit dem auf 1 gesetzten iDefineIntVal beilegen, um diesen Pythonaufruf zu ermöglichen. Die folgenden Funktionen sind standardmäßig deaktiviert:

USE_CANNOT_FOUND_CITY_CALLBACK
USE_CAN_FOUND_CITIES_ON_WATER_CALLBACK
USE_IS_PLAYER_RESEARCH_CALLBACK
USE_CAN_RESEARCH_CALLBACK
USE_CANNOT_DO_CIVIC_CALLBACK
USE_CAN_DO_CIVIC_CALLBACK
USE_CANNOT_CONSTRUCT_CALLBACK
USE_CAN_CONSTRUCT_CALLBACK
USE_CAN_DECLARE_WAR_CALLBACK
USE_CANNOT_RESEARCH_CALLBACK
USE_GET_UNIT_COST_MOD_CALLBACK
USE_GET_BUILDING_COST_MOD_CALLBACK
USE_GET_CITY_FOUND_VALUE_CALLBACK
USE_CANNOT_HANDLE_ACTION_CALLBACK
USE_CAN_BUILD_CALLBACK
USE_CANNOT_TRAIN_CALLBACK
USE_CAN_TRAIN_CALLBACK
USE_UNIT_CANNOT_MOVE_INTO_CALLBACK
USE_CANNOT_SPREAD_RELIGION_CALLBACK
USE_FINISH_TEXT_CALLBACK
USE_ON_UNIT_SET_XY_CALLBACK
USE_ON_UNIT_SELECTED_CALLBACK
USE_ON_UPDATE_CALLBACK
USE_ON_UNIT_CREATED_CALLBACK
USE_ON_UNIT_LOST_CALLBACK



Denke daran, dass diese Pythonfunktionen ausgewählt wurden, weil sie oft genug aufgerufen wurden, um merklich Rechenleistung zu benötigen, wenn sie aktiviert sind. Wenn du sie also aktiviert, um sie in deiner Mod zu verwenden, erwarte einen Performanceeinbruch auf langsameren Rechnern.

10.0 Neue Attribute

Dieser Artikel wird nicht all die neuen Attribute in BtS abdecken können. Aber ich habe die neuen Attribute einiger der am häufigsten modifizierten Elemente des Spiels herausgesucht. Die meisten sind für diejenigen, die sich mit den Benennungsrichtlinien von Firaxis auskennen, selbsterklärend und für die von besonderem Interesse habe ich Notizen hinzugefügt. Viele dieser Attribute wurden für ein spezielles BtS-Szenario hinzugefügt (und zwar so, dass Modder diese Funktionen einfach benutzen können). Nimm nicht an, dass, nur weil ein Attribut hier existiert, dieses im normalen Spiel verwendet wird.

10.1 Einheiten

Help- (optional) siehe Kapitel 6

bQuickCombat - Bringt die Einheit dazu, quick combat (schnellen Kampf) zu nutzen
bSpy - Einheit kann in feindlichem Gelände Spionagemissionen durchführen
bCanMoveAllTerrain - Ob die Einheit jedes Gelände (inkl. Land- und Wasserfelder) passieren kann
bRenderAlways - ? nicht im SDK
bSuicide - Wenn „true“ stirbt die Einheit nach einem Angriff ihrerseits
bLineofSight - Erlaubt der Einheit lediglich geradeaus zu schauen
bHiddenNationality - Wenn „true“ können andere Spieler die Nationalität nicht erkennen und die Einheit kann ohne Krieg angreifen
bAlwaysHostile - Die Einheit ist unabhängig vom diplomatischen Status ein Feind
FlankingStrikes - Ermöglicht der Einheit Flankenangriffe gegen angegebene Einheitenklassen
CorporationSpread - Ermöglicht der Einheit, Konzerne zu verbreiten
PrereqCorporation - Einheit kann nur in Städten mit dem angegebenen Konzern ausgebildet werden
iAdvancedStartCost - Kosten, diese Einheit beim fortgeschrittenen Start zu erzeugen
iAdvancedStartCostIncrease - Zusätzliche Kosten pro Einheit, die beim fortgeschrittenen Start gekauft wird
bNoRevealMap - Einheit kann kein unerforschtes Gelände aufdecken
iAirUnitCap - Wie viel Luftkapazität die Einheit in einer Stadt aufnimmt
iDropRange - Ob die Einheit als Fallschirmscpringer genutzt werden kann
iEspionagePoints - Menge der Spionagepunkte, die die Arbeit eines großen Spions bereitstellt
TerrainPassableTechs - Schaltet die Fähigkeit frei, sich durch das Gelände zu bewegen, wenn die entsprechende Technologie bekannt ist
FeaturePassableTechs - Schaltet die Fähigkeit frei, sich durch die (Gelände-)Eigenschaft zu bewegen, wenn die entsprechende Technologie bekannt ist
iCombatLimit - maximaler Schaden, den diese Einheit anrichten kann, in Prozent. Auf 100 gesetzt, können andere Einheiten getötet werden.
TerrainAttacks - Modifikator für Angriffe in das angegebene Gelände
FeatureAttacks - Modifikator für Angriffe in die angegebene Geländeeigenschaft
FormationType - genutzter Formationstyp, siehe Kap. 1.1
Button - Das Button-Attribut wurde von der Einheitendefinition zur UnitArtDef verschoben.

10.2 Beförderungen

Help- s.Kap. 6

LayerAnimationPath - Wird verwendet, um Beförderungen das Aussehen von Einheiten verändern zu lassen
StateReligionPrereq - Sorgt dafür, dass die Beförderung die ausgewählte Staatsreligion benötigt
iAirRangeChange - Verändert die Luftreichweite der Einheit
iInterceptChange - Verändert die Abfangwahrscheinlichkeit der Einheit
iEvasionChange - Verändert die Fluchtchance der Einheit
iCargoChange - Verändert die Ladekapazität der Einheit
TerrainAttacks - Prozentmodifikator bei einem Angriff auf das angegebene Gelände
FeatureAttacks - Prozentmodifikator bei einem Angriff auf die angegebene Eigenschaft

10.3 Gebäude

Help- s.Kap. 6

bStateReligion - Wenn „true“ kann das Gebäude nicht gebaut werden, wenn der Spieler keine Staatsreligion hat
PrereqCorporation - benötigt den angegebenen Konzern
FoundsCorporation - Bau des Gebäudes wird den angegebenen Konzern gründen
GlobalCorporationCommerce - Hier angegebene Werte verändern die Kommerzrate der Konzerne
NoBonus - If the building blocks are resource
DiploVoteType -ersetzt bDiploVote
bAllowsNukes - Ob ein Gebäude Nuklearraketen erlaubt, ähnlich wie aktuelle Projekte
iAdvancedStartCost - Die Kosten, das Gebäude beim fortgeschrittenen Spielstart zu erzeugen
iAdvancedStartCostIncrease - Zusatzkosten pro beim fortgeschrittenen Start gekauftem Gebäude
iGoldenAgeModifier - Prozentuale Veränderung auf die Länge eines Goldenenn Zeitalters für den Besitzer durch das Gebäude
iAirUnitCapacity - Ob das Gebäude die in der Stadt lagerbare Anzahl an Lufteineinheiten betrifft
iEnemyWarWearinessModifier- Feinde erleiden diese prozentuale Veränderung zur Kriegsunzufriedenheit
iForeignTradeRouteModifier - Prozentuale Veränderung der Erträge interkontinentaler Handelswege
iEspionageDefense - Prozentuale Verteidigung gegen Spionagemissionen
RiverPlotYieldChanges - Veränderte die Flussfelderträge für diese Stadt
ImprovementFreeSpecialists - Stellt freie Spezialisten für jedes Auftreten dieser Verbesserung zur Verfügung

10.4 LeaderHeads

iEspionageWeight - Setzt die KI-Vorliebe für Spionage
iFreedomAppreciation - Setzt die KI-Vorliebe für Kolonisation
FavoriteReligion -Legt die Lieblingsreligion der KI fest

10.5 Technologien

Help- s.Kap.6

iAdvancedStartCost - Kosten, beim fortgeschrittenen Start mit dieser Technologie zu beginnen
iAdvancedStartCostIncrease - Zusätzliche Kosten pro beim fortgeschrittenen Start gekaufter Technologie
bRiverTrade - ermöglicht Handel entlang der Flüsse

10.6 Features

Help- s. Kap. 6

iTurnDamage - Bringt das Feature (die Geländeeigenschaft) dazu, die Einheiten auf dem Feld zu beschädigen
bVisibleAlways -Ob die Geländeeigenschaft immer angezeigt wird
bNukeImmune - Ob die Geländeeigenschaft von Nuklearwaffen unberührt bleibt
OnUnitChangeTo - Wenn eine Einheit sich darauf bewegt, verändert sich die Geländeeigenschaft zu der angegebenen
iAdvancedStartRemoveCost - Kosten, die Geländeeigenschaft beim fortgeschrittenen Start zu entfernen

10.7 Verbesserungen

Help- s. Kap. 6

iAdvancedStartCost -Kosten beim fortgeschrittenen Start
iAdvancedStartCostIncrease - zusätzliche Kosten pro gekaufter Geländeverbesserung beim fortgeschrittenen Start
iFeatureGrowth - Verändert die Wachstumsrate einer Geländeeigenschaft auf dem jeweiligen Feld
iHappiness - Ob die Geländeverbesserung einen Zufriedenheitsbonus ergibt
bOutsideBorders - Ob die Geländeverbesserung außerhalb der Grenzen gebaut werden kann

11.0 Neue Global Defines

In Warlords gab es 17 neue global defines (globale Festlegungen). Es ist gerecht, zu sagen, dass Firaxis sich auch hier selbst übertroffen hat, Moddern einfache Kontrolle über noch mehr Funktionen zu geben. Denke daran, dass alle globalen Festlegungen in der GlobalDefinesAlt.xml vorgenommen werden sollten.

RECON_VISIBILITY_RANGE - Gibt die Reichweite für Aufklärungsmissionen an
CITY_FREE_CULTURE_GROWTH_FACTOR - Modifikator für die Kulturwachstumsrate in Feldern
GREAT_WORKS_CULTURE_TURNS - Nach so vielen Runden wird die Kultur großer Werke ausgelöscht
NUM_CORPORATION_PREREQ_BONUSES - Größte Anzahl an Rohstoffen, die ein Konzern benötigen kann
NUM_ROUTE_PREREQ_OR_BONUSES - Größte Anzahl von Bonusvoraussetzungen für eine Route
MAX_NATIONAL_WONDERS_PER_CITY_FOR_OCC - Legt fest, wie viel Kleidung die Anführer haben, schau dir Pacal nicht nackt an!
POWER_HEALTH_CHANGE - Auswirkung von Elektrizität auf die Gesundheit der Städte
INTERCEPTION_MAX_ROUNDS - Größte Anzahl von Kampfrunden während Abfangen
MAX_INTERCEPTION_DAMAGE - Größtmögliche Menge an Schaden während des Abfangens
MIN_INTERCEPTION_DAMAGE - Kleinstmögliche Menge an Schaden während des Abfangens
RANGE_COMBAT_DAMAGE - Grundlegender Fernkampfschaden, verändert durch die relative Stärke der zwei Einheiten
FOUND_CORPORATION_CITY_RAND -Je höher die Zahl, desto zufälliger die Zuweisung der Konzerne
GOLDEN_AGE_GREAT_PEOPLE_MODIFIER - Modifikator auf Zuwachs an Großen Persönlichkeiten während goldener Zeitalter
OVERSEAS_TRADE_MODIFIER - Modifikator auf interkontinentale Handelsrouten
DEFY_RESOLUTION_POP_ANGER - Menge des von der KI erzeugten Ärgers, wenn du dich über eine Resolution hinwegsetzt
DEFY_RESOLUTION_ANGER_DIVISOR - Je höher diese Zahl, desto länger brauchen die KI-Staatsoberhäupter, ihren Ärger über deinen Resolutionsbruch zu vergessen
TEMP_HAPPY - Menge der Zufriedenheit durch Ereignisse
CORPORATION_FOREIGN_SPREAD_COST_PERCENT - Modifikator auf Konzernverbreitungskosten
MAX_INTERCEPTION_PROBABILITY - Größte Abfangwahrscheinlichkeit
MAX_EVASION_PROBABILITY - Größtmögliche Fluchtchance (du wusstest das richtig!)
FOW_WAS_VISIBLE_COLOR - ? Nicht im SDK, ich nehme an, diese Einstellung legt die Farbe des Kriegsnebels fest
FOW_MINIMAP_WAS_VISIBLE_COLOR - ? Nicht im SDK, ich nehme an, diese Einstellung legt die Farbe des Kriegsnebels auf der Minikarte fest
CITY_SCREEN_FOG_ENABLED - Wenn dies auf „true“ gesetzt ist, erscheint der Nebel des Krieges im Stadtbildschirm
AI_CAN_DISBAND_UNITS - Setze diesen Wert auf „false“, um die KI davon abzuhalten, Einheiten auflösen zu können
CITY_SCREEN_CLICK_WILL_EXIT - Ob ein Klick auf den Bildschirm den Stadtbildschirm schließen wird
WATER_POTENTIAL_CITY_WORK_FOR_AREA - Ob eine Stadt Wasserfelder bearbeiten kann
LAND_UNITS_CAN_ATTACK_WATER_CITIES - Ob Landeinheiten Städte auf Wasser angreifen können
CITY_MAX_NUM_BUILDINGS - Für den Fall, dass Modder eine Maximalanzahl von Gebäuden pro Stadt festlegen wollen
RANGED_ATTACKS_USE_MOVES - Ob eine Fernkampfattacke Bewegungspunkte verbraucht
AI_SHOULDNT_MANAGE_PLOT_ASSIGNMENTS - ? Nicht im SDK
ROUTE_Z_BIAS - ? Nicht im SDK
RIVER_Z_BIAS - ? Nicht im SDK
NEW_CITY_BUILDING_VALUE_MODIFIER - Modifikator auf die KI-Vorliebe, in einer neuen Stadt ein Gebäude zu bauen
IGNORE_PLOT_GROUP_FOR_TRADE_ROUTES - Wenn das gesetzt ist, muss der Spieler Felder nicht besitzen, um durch sie Handel zu treiben
EVENT_PROBABILITY_ROLL_SIDES - Je höher diese Zahl, desto ungerner treten Events auf
FIRST_EVENT_DELAY_TURNS - Events werden nicht vor der hier eingestellten Runde auslösen
CIVILOPEDIA_SHOW_ACTIVE_CIVS_ONLY - Ob die Zivilopädie nur aktive Zivilisationen aufführt
CITY_AIR_UNIT_CAPACITY - Standard-Lufteinheitenkapazität der Städte
COLONY_NUM_FREE_DEFENDERS - Menge der geschenkten Einheiten, wenn eine Kolonie abgespalten wird
SHIP_BLOCKADE_RANGE - Umkreis in Feldern, in dem ein feindliches Schiff Handelsrouten verhindert
PATH_DAMAGE_WEIGHT - Je höher dies, desto stärker wird die KI es vermeiden, durch schädigendes Gelände zu ziehen
RENDER_AREABORDER_UNDER_FEATURES - Ob das Spiel Grenzen under Geländeeigenschaften anzeigen soll
RENDER_GLOBEVIEW_CLOUDS - Ob das Spiel beim Rauszoomen Wolken anzeigen soll
RENDER_WATER - Ob das Spiel Wasser aktiv rendern soll
USE_MODDERS_PLAYEROPTION_1 - Erzwingt Spieleroption 1 wie in CIV4PlayerOptionInfos.xml festgelegt
USE_MODDERS_PLAYEROPTION_2 - Erzwingt Spieleroption 2 wie in CIV4PlayerOptionInfos.xml festgelegt
USE_MODDERS_PLAYEROPTION_3 - Erzwingt Spieleroption 3 wie in CIV4PlayerOptionInfos.xml festgelegt



Die folgenden Festlegungen geben Moddern mehr Kontrolle über die Kameraeinstellungen:

DISABLE_CLOSE_ZOOM_MODE
CAMERA_UPPER_PITCH
CAMERA_LOWER_PITCH
CAMERA_MIN_SCROLL_SPEED
CAMERA_MAX_SCROLL_SPEED
CAMERA_MIN_YAW
CAMERA_MAX_YAW
CAMERA_MAX_TURN_OFFSET
CAMERA_FORCE_TO_SMALLEST_MAX_DISTANCE
CAMERA_NEAR_FAR_PLANE_RATIO
CAMERA_FAR_CLIP_Z_HEIGHT
CAMERA_CITY_TURN
CAMERA_CITY_NO_PITCH
CAMERA_SPECIAL_PITCH



Die folgenden Festlegungen werden auf die zugehörige Spionagemission als prozentuale Kostenanpassungen angewandt:

ESPIONAGE_CITY_POP_EACH_MOD
ESPIONAGE_CITY_TRADE_ROUTE_MOD
ESPIONAGE_CITY_RELIGION_STATE_MOD
ESPIONAGE_CITY_HOLY_CITY_MOD
ESPIONAGE_CULTURE_MULTIPLIER_MOD
ESPIONAGE_DISTANCE_MULTIPLIER_MOD
ESPIONAGE_SPENDING_MULTIPLIER_MOD
ESPIONAGE_EACH_TURN_UNIT_COST_DECREASE
ESPIONAGE_INTERCEPT_SPENDING_MAX
ESPIONAGE_INTERCEPT_COUNTERSPY
ESPIONAGE_INTERCEPT_COUNTERESPIONAGE_MISSION
ESPIONAGE_INTERCEPT_RECENT_MISSION
ESPIONAGE_SPY_REVEAL_IDENTITY_PERCENT
ESPIONAGE_SPY_INTERCEPT_MOD
ESPIONAGE_SPY_NO_INTRUDE_INTERCEPT_MOD
ESPIONAGE_SPY_MISSION_ESCAPE_MOD



Die folgenden Festlegungen werden beim fortgeschrittenen Start im Falle von Kostenoptionen genutzt:

ADVANCED_START_ALLOW_UNITS_OUTSIDE_CITIES
ADVANCED_START_MAX_UNITS_PER_CITY
ADVANCED_START_SIGHT_RANGE
ADVANCED_START_CITY_COST
ADVANCED_START_CITY_COST_INCREASE
ADVANCED_START_POPULATION_COST
ADVANCED_START_POPULATION_COST_INCREASE
ADVANCED_START_CULTURE_COST
ADVANCED_START_CULTURE_COST_INCREASE
ADVANCED_START_VISIBILITY_COST
ADVANCED_START_VISIBILITY_COST_INCREASE
ADVANCED_START_CITY_PLACEMENT_MAX_RANGE



Die folgenden globalen Festlegungen haben in BtS neue Werte:#

CIV4_VERSION - Geändert zu 300
SAVE_VERSION - Geändert zu 300
BASE_GOLDEN_AGE_UNITS - Von 2 auf 1 gesetzt
UNIT_TRAIL_RESOLUTION - Von 10.0 auf 5.0 herabgesetzt



Die folgenden globalen Festlegungen wurden aus BtS entfernt:

DIPLO_VOTE_TURN_FREQUENCY
COMBAT_SYNCH_DIE_FADE

12.0 Was kannst du jetzt machen?

Es ist ein guter Zeitpunkt, alles nochmal durchzusehen, was du in deiner Mod hast, und in Erwägung zu ziehen, Elemente, die nicht so gut funktioniert haben wie erhofft, herauszunehmen. Bei SDK- und Pythonmods sieh deinen Code durch und suche nach Möglichkeiten, ihn aufzuräumen oder Teile, auf die du auch verzichten kannst, zu entfernen. Wenn du kein Changelog für deine Mod führst, solltest du deine Veränderungen durchgehen und dokumentieren. Ich schlage vor, „Beyond Compare“ (http://www.scootersoftware.com) über deine und die Originaldatein laufen zu lassen (Wenn du eine Warlordsmodifikation bist, zwischen deinen Dateien und den Warlordsdateien, wenn du eine Vanillamod bist, zwischen deiner Mod und den Vanilla-Dateien). Es gibt eine Menge kleiner Veränderungen, die wir vornehmen und dann vergessen; das wird dich all diese kleinen Veränderungen einfangen lassen.

Dieser Artikel sollte dir genug Informationen darüber geben, was mit BtS kommt, um mit der Planung für Ergänzungen für deine Mod zu beginnen. Ereignisse, die du ergänzen möchtest, neue pythonfunktionen, aus denen du einen Vorteil ziehen möchtest, usw. Vielleicht sogar einige Dinge zu überarbeiten, sodass sie die neuen Features nutzen. All diese Designarbeit kann jetzt getan werden. Befor du BtS spielst, frage dich selbst, wie du Ereignisse gern eingebaut wüsstest (aus Spielersicht) und welche Art von Ereignissen du gerne sähest. Wenn dann BtS rauskommt, wirst du vielleicht überrascht sein zu sehen, dass sie so sind, wie du dir gedacht hast, oder sogar noch besser oder vielleicht magst du deine Idee dann lieber und hast dann alles, was du brauchst, um sie auszuprobieren.

Quelle

übertragen aus dem Civforum

Übersetzt von Swoon