汉魂管理 发表于 2015-3-1 01:00:32

增加新的文化 Adding a new culture

The process of adding a new culture is very simple and does not require the vanillia data to be changed. However you can only add one new culture, any more and the game will crash. Though it is possible to remove an existing culture and replace it with a new culture without the game crashing (as tested by SigniferOne).

1) Making a new culture

1) Open the descr_cultures.txt, copy one of the cultures, paste it at the bottom (make sure it's seperated by a row of ;), change the 'culture' and 'portrait_mapping' lines to the name of your culture (in this case 'myth'). The end result should look like this:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

culture                              myth
portrait_mapping      myth
rebel_standard_index      1
{
village
{
      normal                              data/models_strat/residences/northern_european_village.CAS,                settlement_eastern_level_1
      card                              data/ui/southern_european/cities/graeco-roman_village.tga
}
moot_and_bailey
{
      normal                              data/models_strat/residences/northern_european_wooden_castle.CAS,                settlement_eastern_level_1
      card                              data/ui/southern_european/cities/graeco-roman_village.tga
}
town
{
      normal                              data/models_strat/residences/northern_european_town.CAS,                        settlement_eastern_level_2
      card                              data/ui/southern_european/cities/graeco-roman_town.tga
}
wooden_castle
{
      normal                              data/models_strat/residences/northern_european_stone_keep.CAS,                        settlement_eastern_level_2
      card                              data/ui/southern_european/cities/graeco-roman_town.tga
}
large_town
{
      normal                              data/models_strat/residences/northern_european_large_town.CAS,      settlement_eastern_level_3
      card                              data/ui/southern_european/cities/graeco-roman_large_town.tga
}
castle
{
      normal                              data/models_strat/residences/northern_european_castle.CAS,      settlement_eastern_level_3
      card                              data/ui/southern_european/cities/graeco-roman_large_town.tga
}
city
{
      normal                              data/models_strat/residences/northern_european_city.CAS,                        settlement_eastern_level_4
      card                              data/ui/southern_european/cities/graeco-roman_city.tga
}
fortress
{
      normal                              data/models_strat/residences/northern_european_large_castle.CAS,                        settlement_eastern_level_4
      card                              data/ui/southern_european/cities/graeco-roman_city.tga
}
large_city
{
      normal                              data/models_strat/residences/northern_european_large_city.CAS,      settlement_eastern_level_5
      card                              data/ui/southern_european/cities/graeco-roman_large_city.tga
}
citadel
{
      normal                              data/models_strat/residences/northern_european_fortress.CAS,      settlement_eastern_level_5
      card                              data/ui/southern_european/cities/graeco-roman_large_city.tga
}
huge_city
{
      normal                              data/models_strat/residences/northern_european_huge_city.CAS,                settlement_eastern_level_6
      card                              data/ui/southern_european/cities/graeco-roman_huge_city.tga
}
}
fort                              data/models_strat/residences/NE_fort_buildings.CAS,                                                      fort_barbarian
fort_cost                        500
fort_wall                        data/models_strat/residences/NE_fort_walls.CAS
fishing_village                data/models_strat/residences/NE_port_villiage.CAS,                              port_barbarian_level_1
port_land                        data/models_strat/residences/NE_port_02_buildings.CAS,                                        port_barbarian_level_2
port_sea                        data/models_strat/residences/NE_port_02_wall.CAS
port_land                        data/models_strat/residences/NE_port_03_buildings.CAS,                                        port_barbarian_level_3
port_sea                        data/models_strat/residences/NE_port_03_wall.CAS
port_land                        data/models_strat/residences/NE_port_04_buildings.CAS,                                        port_barbarian_level_4
port_sea                        data/models_strat/residences/NE_port_04_wall.CAS
watchtower                        data/models_strat/residences/NE_watchtower.CAS,                                        watchtower_barbarian
watchtower_cost                200
spy                        spy.tga                        spy_info.tga                        spy.tga                350      1      1
assassin                assassin.tga                assassin_info.tga                assassin.tga      500      1      1
diplomat                diplomat.tga                diplomat_info.tga                diplomat.tga      250      1      1
admiral                        admiral.tga                admiral_info.tga                admiral.tga      100      1      1
merchant                merchant.tga                merchant_info.tga                merchant.tga      550      1      1
priest                        priest.tga                priest_info.tga                        priest.tga      200      1      1
2) Open the descr_sm_factions.txt, scroll down to the faction whose culture you want to change, change the 'culture' line to the name of your culture(in this case 'myth', while the faction is mythological).The end result should look like this:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

faction                                                Mythological
culture                                                myth
religion                                        heretic
symbol                                                models_strat/symbol_myth.CAS
rebel_symbol                              models_strat/symbol_rebels.CAS
primary_colour                              red 51, green 101, blue 215
secondary_colour                        red 227, green 209, blue 4
loading_logo                              loading_screen/symbols/symbol128_slaves.tga
standard_index                              7
logo_index                                        FACTION_LOGO_MYTH
small_logo_index                        SMALL_FACTION_LOGO_MYTH
triumph_value                              5
intro_movie                                        faction/minor_intro.bik
victory_movie                              faction/minor_win.bik
defeat_movie                              faction/minor_lose.bik
death_movie                                        faction/minor_lose.bik
custom_battle_availability      no
can_sap                                                yes
prefers_naval_invasions                no
can_have_princess                              no
has_family_tree                                        yes

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Note: you should be able to assign battle_models and strat_models to your new culture (descr_character.txt), though I do not know how to do this or make them.

You've created a new culture. However you will not be able to recruit any units or build and building because they have not be assigned to your culture (except for those that are specifically assigned to your faction).


1.1) Naming your culture
After making my culture I discovered an odd bug, when the player double clicked on any settlement owned by the new culture the game would CTD. Fortunately alpaca found the solution, this culture needs to be added to the data\text\expanded.txt. To add the new culture you need to find the following entries:
{EMT_SOUTHERN_EUROPEAN_PRIEST}      Priest
{EMT_SOUTHERN_EUROPEAN_PRIEST_1}      Bishop
{EMT_SOUTHERN_EUROPEAN_PRIEST_2}      Cardinal

{SOUTHERN_EUROPEAN}      Southern European

Next you need to create a new version of these for your new culture. DO NOT change these entries of the game won't work properly. The new entry should contain the name of your culture and what it will be called in the game. In the example below the culture is 'myth' and its in game name is 'Mythological'. The part refering to priests allows your culture to recruit priests.

{EMT_SOUTHERN_EUROPEAN_PRIEST}      Priest
{EMT_SOUTHERN_EUROPEAN_PRIEST_1}      Bishop
{EMT_SOUTHERN_EUROPEAN_PRIEST_2}      Cardinal

{SOUTHERN_EUROPEAN}      Southern European

{EMT_MYTH_PRIEST}      Priest
{EMT_MYTH_PRIEST_1}      Bishop
{EMT_MYTH_PRIEST_2}      Cardinal

{MYTH}      Mythological
Once this has been done your new culture will function correctly.

1.2) Settlements and ports
SigniferOne pointed out that to prevent CTDs during battles you need to add your culture to the data/descr_offmap_models.txt. To do this you need to copy the 'settlement' entry for an existing culture (see below).
settlement
{
      culture southern_european
      {      
                level village                  
      {
            data/models_building/offmap_village_dummy.cas                200         0
      }

                level town                  
      {
            data/models_building/offmap_town_roman.cas                200         0
                }

                level large_town            
      {
            data/models_building/offmap_town_roman.cas                200         0
      }

                level city                  
      {
            data/models_building/offmap_city_roman.cas               200         0
      }

                level large_city               
      {
            data/models_building/offmap_city_roman.cas               200         0
      }

                level huge_city               
      {
            data/models_building/offmap_city_roman.cas                200         0
      }
      }
Then make a new version with your new culture's name (not not overwrite the existing culture).
settlement
{
      culture myth
      {      
                level village                  
      {
            data/models_building/offmap_village_dummy.cas                200         0
      }

                level town                  
      {
            data/models_building/offmap_town_roman.cas                200         0
                }

                level large_town            
      {
            data/models_building/offmap_town_roman.cas                200         0
      }

                level city                  
      {
            data/models_building/offmap_city_roman.cas               200         0
      }

                level large_city               
      {
            data/models_building/offmap_city_roman.cas               200         0
      }

                level huge_city               
      {
            data/models_building/offmap_city_roman.cas                200         0
      }
      }

      culture southern_european
      {      
                level village                  
      {
            data/models_building/offmap_village_dummy.cas                200         0
      }

                level town                  
      {
            data/models_building/offmap_town_roman.cas                200         0
                }

                level large_town            
      {
            data/models_building/offmap_town_roman.cas                200         0
      }

                level city                  
      {
            data/models_building/offmap_city_roman.cas               200         0
      }

                level large_city               
      {
            data/models_building/offmap_city_roman.cas               200         0
      }

                level huge_city               
      {
            data/models_building/offmap_city_roman.cas                200         0
      }
      }
Next you need to copy the 'port' entry for an existing culture (see below).
      port
{
      culture myth
      {      
                level fishing_village
                {
                        data/models_building/offmap_fishing_village_roman.CAS                200         0
                }

                level sea_port
                {
            data/models_building/offmap_port_roman.cas                200         0
                }

                level shipwright
                {
            data/models_building/offmap_port_roman.cas                200         0
                }

                level dockyard
                {
            data/models_building/offmap_port_roman.cas                200         0
                }
      }

      culture southern_european
      {      
                level fishing_village
                {
                        data/models_building/offmap_fishing_village_roman.CAS                200         0
                }

                level sea_port
                {
            data/models_building/offmap_port_roman.cas                200         0
                }

                level shipwright
                {
            data/models_building/offmap_port_roman.cas                200         0
                }

                level dockyard
                {
            data/models_building/offmap_port_roman.cas                200         0
                }
      }
2) Assigning buildings and units

1) Open the export_descr_buildings.txt, scroll down to the building you want to add (Plaza del Toro in this example):
building bullring
{
    levels plaza_del_toro
    {
      plaza_del_toro city requires factions { portugal, spain, }
      {
            capability
            {
                recruit_pool "Jinetes"1   0.5   40requires factions { spain, portugal, }
                happiness_bonus bonus 1
            }
            material wooden
            construction4
            cost4800
            settlement_min city
            upgrades
            {
            }
      }
    }
    plugins
    {
    }
}
Add your culture's name or your faction to the **building** requires factions brackets (remember to seperate it with a comma). It should look like this.
building bullring
{
    levels plaza_del_toro
    {
      plaza_del_toro city requires factions { portugal, spain, myth, }
      {
            capability
            {
                recruit_pool "Jinetes"1   0.5   40requires factions { spain, portugal, }
                happiness_bonus bonus 1
            }
            material wooden
            construction4
            cost4800
            settlement_min city
            upgrades
            {
            }
      }
    }
    plugins
    {
    }
}
This will assign the building to your culture. To assign a unit add your faction's name, not the culture, to the 'recruit_pool' line.
building bullring
{
    levels plaza_del_toro
    {
      plaza_del_toro city requires factions { portugal, spain, myth, }
      {
            capability
            {
                recruit_pool "Jinetes"1   0.5   40requires factions { spain, portugal, mythological, }
                happiness_bonus bonus 1
            }
            material wooden
            construction4
            cost4800
            settlement_min city
            upgrades
            {
            }
      }
    }
    plugins
    {
    }
}
Repeat with all the units and buildings you want to add to your culture.

Now your culture has buildings and units, however they have no information and the buildings only have the default images. All this information has to be copied and modified (unless your faction is unplayable, then it doesn't matter).

NB: If you are creating a new faction you may see the default images for your units as well. To resolve this you need to create a 'unit' and 'unit_info' folder for your faction's units and agents. This problem is not related to the new culture.


3) Giving your culture the right images

To do this you will need to a folders in the data/ui folder for your culture.
It is easier to just copy one of the existing culture's folder (such as southern european) and modify it for your needs.

1) A folder with your faction's name (in this case 'myth'). If you copied one of the existing cultures this folder can contain up to 6 images (#fort.tga, #watchtower.tga, advisor battlemap.tga, and advisor stratmap.tga are the only important ones) and three folders 'Buildings', 'Cities', and 'Portraits'.

2) The data\ui\*culture name*\buildings folder contains all the images of buildings that appear on the information scroll, while its subfolder 'Construction' contains the images of the buildings that appear in the settlement's list of buildings. All of the buildings in this folder have to be named in the following format #"culture's name"_"building's name"_constructed.tga (picture with the information) or #"culture's name"_"building's name".tga (icon). For example the Dragon's Den would be #myth_dragon_den_constructed.tga. All the buildings in the Construction subfolder have to be named #"culture's name"_"building's name".tga, eg #myth_dragon_den.tga. If a building does not have the correct name it will not have the correct images (though it will function properly).

3) The data\ui\*culture name*\cities folder contains what each level of the cities and towns will look like. The default is South European. For these images to function they must be named in the following formate "culture's name"_"building's name".tga eg myth_city.tga.

4) The data\ui\*culture name*\portraits folder contains the images of every agent, general and family members. These images need to be in the correct folder to function but they do not require a special name. The default is Southern European.

This will give your culture the right images for their buildings.

4) Giving your culture the right information

The two files you need to edit are the data\text\export_buildings.txt and the data\text\event_strings.txt.The former contains all the information about all the buildings and the latter contains descriptions about all the events.

The all the buildings in the export_buildings.txt needs to be edited for your culture, even if you cannot build the building. Below are two examples.

For buildings your faction possesses you need to add the building's name and 2 descrptions (the bold red text shows what needs to be added, substitute 'myth' for your culture's name):
{army_barracks}      army_barracks
{army_barracks_desc}      DO NOT TRANSLATE
{army_barracks_desc_short}      DO NOT TRANSLATE
{army_barracks_eastern_european}      Army Barracks
{army_barracks_eastern_european_desc}      Army barracks allow the training and housing of full-time soldiers, rather than militias and citizens-in-arms. Here men can be taught the basics of the bloody business of warfare and brought to a high standard of combat readiness. Barracks usually exist to keep soldiers separate from the ill-disciplined civilian world.
{army_barracks_eastern_european_desc_short}      Army Barracks are the first training facilities capable of training full-time professional soldiers.
{army_barracks_greek_desc}      Army barracks allow the training and housing of full-time soldiers, rather than militias and citizens-in-arms. Here men can be taught the basics of the bloody business of warfare and brought to a high standard of combat readiness. Barracks usually exist to keep soldiers separate from the ill-disciplined civilian world.
{army_barracks_greek_desc_short}      Army Barracks are the first training facilities capable of training full-time professional soldiers.
{army_barracks_myth}      Giant Ritual Sanctuary
{army_barracks_myth_desc}      The Giant Ritual Sanctuary allows full-time human transformations, rather than sporadic transformations. Here men can be transformed from basic humans into monster, werebeasts, and demons that possess a high standard of combat readiness. Ritual Sanctuaries exist to keep transformed soldiers separate from the resource bank that is the civilian world.
{army_barracks_myth_desc_short}      Giant Ritual Sanctuaries are the first training facilities capable of creating first-class fighters.
{army_barracks_middle_eastern}      Army Barracks
{army_barracks_middle_eastern_desc}      Army barracks allow the training and housing of full-time soldiers, rather than militias and citizens-in-arms. Here men can be taught the basics of the bloody business of warfare and brought to a high standard of combat readiness. Barracks usually exist to keep soldiers separate from the ill-disciplined civilian world.
{army_barracks_middle_eastern_desc_short}      Army Barracks are the first training facilities capable of training full-time professional soldiers.
{army_barracks_northern_european}      Army Barracks
{army_barracks_northern_european_desc}      Army barracks allow the training and housing of full-time soldiers, rather than militias and citizens-in-arms. Here men can be taught the basics of the bloody business of warfare and brought to a high standard of combat readiness. Barracks usually exist to keep soldiers separate from the ill-disciplined civilian world.
{army_barracks_northern_european_desc_short}      Army Barracks are the first training facilities capable of training full-time professional soldiers.
{army_barracks_southern_european}      Army Barracks
{army_barracks_southern_european_desc}      Army barracks allow the training and housing of full-time soldiers, rather than militias and citizens-in-arms. Here men can be taught the basics of the bloody business of warfare and brought to a high standard of combat readiness. Barracks usually exist to keep soldiers separate from the ill-disciplined civilian world.
{army_barracks_southern_european_desc_short}      Army Barracks are the first training facilities capable of training full-time professional soldiers.
{artist_gallery_mesoamerican_desc}      DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE
{artist_gallery_mesoamerican_desc_short}      DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE
A building your culture does not have just needs 'DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE' in place of the decription, it does not require the building's name:
{c_paved_roads}      c_paved_roads
{c_paved_roads_desc}      DO NOT TRANSLATE
{c_paved_roads_desc_short}      DO NOT TRANSLATE
{c_paved_roads_eastern_european}      Paved Roads
{c_paved_roads_eastern_european_desc}      Paved Roads outside of a settlement are somewhat opulent in the Medieval age, but offer the best possible surface for both armies and traders to traverse quickly. They are particularly useful for kingdoms and empires that have distant boundaries that need a means to send troops to the front quickly enough to be effective.
{c_paved_roads_eastern_european_desc_short}      Paved Roads maximise the movement speed of units that travel along them. They also improve trade in the region.
{c_paved_roads_greek}      Paved Roads
{c_paved_roads_greek_desc}      Paved Roads outside of a settlement are somewhat opulent in the Medieval age, but offer the best possible surface for both armies and traders to traverse quickly. They are particularly useful for kingdoms and empires that have distant boundaries that need a means to send troops to the front quickly enough to be effective.
{c_paved_roads_greek_desc_short}      Paved Roads maximise the movement speed of units that travel along them. They also improve trade in the region.
{c_paved_roads_mesoamerican_desc}      DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE
{c_paved_roads_mesoamerican_desc_short}      DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE
{c_paved_roads_myth_desc}      DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE
{c_paved_roads_myth_desc_short}      DO NOT TRANSLATE - NOT MEANT FOR THIS CULTURE
{c_paved_roads_middle_eastern}      Paved Roads
{c_paved_roads_middle_eastern_desc}      Paved Roads outside of a settlement are somewhat opulent in the Medieval age, but offer the best possible surface for both armies and traders to traverse quickly. They are particularly useful for kingdoms and empires that have distant boundaries that need a means to send troops to the front quickly enough to be effective.
{c_paved_roads_middle_eastern_desc_short}      Paved Roads maximise the movement speed of units that travel along them. They also improve trade in the region.
{c_paved_roads_northern_european}      Paved Roads
{c_paved_roads_northern_european_desc}      Paved Roads outside of a settlement are somewhat opulent in the Medieval age, but offer the best possible surface for both armies and traders to traverse quickly. They are particularly useful for kingdoms and empires that have distant boundaries that need a means to send troops to the front quickly enough to be effective.
{c_paved_roads_northern_european_desc_short}      Paved Roads maximise the movement speed of units that travel along them. They also improve trade in the region.
{c_paved_roads_southern_european}      Paved Roads
{c_paved_roads_southern_european_desc}      Paved Roads outside of a settlement are somewhat opulent in the Medieval age, but offer the best possible surface for both armies and traders to traverse quickly. They are particularly useful for kingdoms and empires that have distant boundaries that need a means to send troops to the front quickly enough to be effective.
{c_paved_roads_southern_european_desc_short}      Paved Roads maximise the movement speed of units that travel along them. They also improve trade in the region.
The event_strings.txt is even longer and needs to be filled in in much the same manner http://domod.kupai.me/data/attachment/forum/201211/27/133656uqraxvk4aizaiht7.gif . Below is an example. If your culture can do the event replace 'DO NOT TRANSLATE' with a description (the event will work without a description but all it will say is do not translate).
{acquisition_attempt_body_eastern_european}      A shrewd plan by foreign merchants has driven your own out of business. His assets were seized forcibly, and he has no means to prove the dastardly deed took place.
{acquisition_attempt_body_greek}      A shrewd plan by foreign merchants has driven your own out of business. His assets were seized forcibly, and he has no means to prove the dastardly deed took place.
{acquisition_attempt_body_mesoamerican}      DO NOT TRANSLATE
{acquisition_attempt_body_myth}      DO NOT TRANSLATE
{acquisition_attempt_body_middle_eastern}      A shrewd plan by foreign merchants has driven your own out of business. His assets were seized by force, and he has no means to prove the vile treachery that has befallen him.
{acquisition_attempt_body_northern_european}      A shrewd plan by foreign merchants has driven your own out of business. His assets were seized forcibly, and he has no means to prove the dastardly deed took place.
{acquisition_attempt_body_southern_european}      A shrewd plan by foreign merchants has driven your own out of business. His assets were seized forcibly, and he has no means to prove the dastardly deed took place.
Once both of these have been finished your culture is complete.

5)Sound files

This isn't necessary but if you want to remake the sound files you can add your new culture to them. In all the examples 'myth' will be the new culture.

1) Download the Sound Text Files here:
http://www.twcenter.net/forums/downl...o=file&id=1110

This guide explains how to remake the sound files:
http://www.twcenter.net/forums/showthread.php?t=77905

2) Open the 'descr_sounds_stratmap.txt' and edit the following entries:
BANK: stratmap_object

      what settlement
                culture      southern_european, northern_european, middle_eastern, mesoamerican, greek, eastern_european, myth
                level      village, town, large_town
                        event
                              folder data/sounds/SFX/Environment/Structures
                              ;village
                        end

      what settlement
                culture      southern_european, northern_european, middle_eastern, mesoamerican, greek, eastern_european, myth
                level city, large_city, huge_city
                        event
                              folder data/sounds/SFX/Environment/Structures
                              ;city
                        end

      what port
                culture      southern_european, northern_european, middle_eastern, mesoamerican, greek, eastern_european, myth
                level      fishing_village, sea_port, shipwright, dockyard
                        event
                              folder data/sounds/SFX/Environment/Structures
                              ;port_01
                        end

3) Open the 'descr_sounds_units_ambient.txt' and edit the following entries:
BANK: ambient_anims

      culture mesoamerican, eastern_european, middle_eastern, greek, northern_european, southern_european, myth
4) Open the 'descr_sounds_generic.txt' and add the following entry:
;;; myth
event END_TURN_CULTURE_6 volume -15 priority 260 streamed
folder data/sounds/SFX/interface/campaign
   _end_turn_mtw2_bell_01.mp3
   _end_turn_mtw2_bell_02.mp3
   _end_turn_mtw2_chimes_01.mp3
   _end_turn_mtw2_chimes_02.mp3

end

Obviously if your new culture isn't 6th one listed in the descr_cultures.txt you should edit the other entries to ensure each culture has the correct end of turn bell sound.

a1109713080 发表于 2015-6-30 21:39:01

很不错

a1109713080 发表于 2015-6-30 22:01:15

楼主是超人

帝国铁骑 发表于 2015-6-30 21:50:51

顶顶多好

金狗奖导演 发表于 2015-6-30 21:31:42

难得一见的好帖

AILU19948012 发表于 2015-6-30 22:00:32

很好哦

明行赋 发表于 2015-7-1 17:00:42

说的非常好

汉魂管理 发表于 2015-7-1 17:30:01

很好哦

ws19940118 发表于 2015-7-1 16:50:08

不错不错

暴君 发表于 2015-7-1 17:37:44

LZ真是人才
页: [1] 2
查看完整版本: 增加新的文化 Adding a new culture