Надеюсь, вы прочитали это.
Вот я сделал прогу для расширения списка карт, а не слова не сказал про то что она изменяет и как работает.
Список карт хранится в Scripts.xml. Это файл в разделе XDataBank имеет список ид карт(ссылок на контейнеры). Вот его начало:
Code
<XDataBank id='id-0'>
<Section>0</Section>
<ContainerResources href='Challenge.Accuracy'/>
<ContainerResources href='Challenge.CrateCollect'/>
<ContainerResources href='Challenge.Icarus'/>
<ContainerResources href='Challenge.JetPack'/>
<ContainerResources href='Challenge.Navigation'/>
<ContainerResources href='Challenge.SSheep'/>
<ContainerResources href='Challenge.Shotgun'/>
<ContainerResources href='Challenge.SniperRifle'/>
<ContainerResources href='Deathmatch.1'/>
<ContainerResources href='Deathmatch.10'/>
<ContainerResources href='Deathmatch.2'/>
Выберем одну из карт например и найдём соответствующий контейнер. Вот он
Code
<XContainerResourceDetails id='Challenge.JetPack'>
<Value href='Challenge.JetPack-0'/>
<Name>Challenge.JetPack</Name>
<Flags>80</Flags>
</XContainerResourceDetails>
<WXFE_LevelDetails id='Challenge.JetPack-0'>
<Frontend_Name>FETXT.Chall.JetPack.MissionName</Frontend_Name>
<Frontend_Briefing>FETXT.Chall.JetPack.Brief</Frontend_Briefing>
<Frontend_Image>GibbonTake.tga</Frontend_Image>
<Level_ScriptName>ChallengeJetpack</Level_ScriptName>
<Level_FileName>ChallengeJetpack</Level_FileName>
<Objectives></Objectives>
<Level_Number>1</Level_Number>
<Level_Type>8</Level_Type>
<Lock></Lock>
<Theme_Type>5</Theme_Type>
<Preview_Type>0</Preview_Type>
<BonusTime>120</BonusTime>
</WXFE_LevelDetails>
Как видно здесь хранятся все настройки карты. Стоит отметить, что каждой карте должны соответсвовать следующие файлы:
файл xml с именем из тега в папке /databanks/
файлы xan и hmp с именем из тега в папке /maps/
файл tga с именем из тега в папке /Frontend/Levels/
и несколько файлов lua в папке /scripts/-это луа скрипты. Прочитать о них можно тут(http://www.lua.org) или тут(http://lua-users.org/wiki/)
Теперь о файле xml в папке /databanks/. Как я понял, там хранятся различные данные, относящиеся к конкретным картам, но каждый такой файл должен содержать следующие контейнеры:
Code
<XUintResourceDetails id='Databank.CustomDetailBank'>
<Value>2</Value>
<Name>Databank.CustomDetailBank</Name>
<Flags>72</Flags>
</XUintResourceDetails>
<XUintResourceDetails id='Databank.CustomTextureBank'>
<Value>0</Value>
<Name>Databank.CustomTextureBank</Name>
<Flags>72</Flags>
</XUintResourceDetails>
<XStringResourceDetails id='Databank.MaterialFile'>
<Value>ThemeArabian\ThemeArabian.txt</Value>
<Name>Databank.MaterialFile</Name>
<Flags>64</Flags>
</XStringResourceDetails>
<XStringResourceDetails id='Databank.Theme'>
<Value>ARABIAN</Value>
<Name>Databank.Theme</Name>
<Flags>64</Flags>
</XStringResourceDetails>
<XStringResourceDetails id='Databank.TimeOfDay'>
<Value>EVENING</Value>
<Name>Databank.TimeOfDay</Name>
<Flags>64</Flags>
</XStringResourceDetails>
<XStringResourceDetails id='Heightmap.BaseTexture'>
<Value>A01</Value>
<Name>Heightmap.BaseTexture</Name>
<Flags>64</Flags>
</XStringResourceDetails>
<XStringResourceDetails id='Heightmap.SecondTexture'>
<Value>A04</Value>
<Name>Heightmap.SecondTexture</Name>
<Flags>64</Flags>
</XStringResourceDetails>
Databank.MaterialFile-файл с описаниями текстур
'Heightmap.BaseTexture и Heightmap.SecondTexture - файлы из /Themes/ - текстуры высотной карты, то есть самого ландшафта.
Ну вот и всё. Вроде рассказал! Так что моя прога не делает ничего особого!)))И даже луше пользоваться ручками, потому что так всё выйдет правильнее и точнее!
А теперь читаем это