ФЭНДОМ


Как искать что можно помодить?

Открываем папку C:\Program Files\Codemasters\Worms 4 Mayhem\data\Tweak в проводнике. В ней куча файлов с расширением xml .В каждом файле лежит куча настроек игры. Для чего служит конкретный файл можно определить по названию. Итак начнём! Возьмём например файл Tweak.xml. В нём, как я понял, находятся основные настройки игры, относящиеся к физике и др. Вот общая структура этого файла(и любого подобного ему файла):

<?xml version='1.0' ?>
<xomArchive>
<xomObjects>
<XDataBank id='id-0'>
<Section>0</Section>
<IntResources href='GoodShotDamageThreshold'/>
<IntResources href='Jetpack.InitFuel'/>
<IntResources href='MaxRandomCrates'/>
<IntResources href='Net.NetworkAvailable'/>
<IntResources href='Ninja.NumRaycastRefinements'/>
<IntResources href='Ninja.NumShots'/>
...
<UintResources href='Camelot.CastleSize.Max'/>
<UintResources href='Camelot.CastleSize.Min'/>
<UintResources href='Camelot.FortPieces.Max'/>
...
<FloatResources href='AIJetpack.ParabolicTime'/>
<FloatResources href='Audio.DistanceFactor'/>
<FloatResources href='Audio.DopplerFactor'/>
<FloatResources href='Audio.RolloffFactor'/>
<FloatResources href='Crate.ImpulseMagnitude'/>
...
<VectorResources href='WXFE.AmbientColour'/>
<VectorResources href='WXFE.DiffuseColour'/>
<VectorResources href='WXFE.LightDirection'/>
<VectorResources href='Worm.Hop.Velocity'/>
...
<ContainerResources href='FE.PS2Water'/>
<ContainerResources href='FE.Water'/>
<ContainerResources href='PS2Water.ARABIAN.DAY'/>
<ContainerResources href='PS2Water.ARABIAN.EVENING'/>
<ContainerResources href='PS2Water.ARABIAN.NIGHT'/>
...
<ColorResources href='Abducted.Colour'/>
<ColorResources href='Debug.DotColour'/>
<ColorResources href='Fog.Colour'/>
...
</XDataBank>
<XIntResourceDetails id='GoodShotDamageThreshold'>
<Value>30</Value>
<Name>GoodShotDamageThreshold</Name>
<Flags>64</Flags>
</XIntResourceDetails>
<XIntResourceDetails id='Jetpack.InitFuel'>
<Value>7500</Value>
<Name>Jetpack.InitFuel</Name>
<Flags>64</Flags>
</XIntResourceDetails>
<XIntResourceDetails id='MaxRandomCrates'>
<Value>15</Value>
<Name>MaxRandomCrates</Name>
<Flags>64</Flags>
</XIntResourceDetails>
<XIntResourceDetails id='Net.NetworkAvailable'>
<Value>1</Value>
<Name>Net.NetworkAvailable</Name>
<Flags>64</Flags>
</XIntResourceDetails>
<XIntResourceDetails id='Ninja.NumRaycastRefinements'>
<Value>8</Value>
<Name>Ninja.NumRaycastRefinements</Name>
<Flags>64</Flags>
</XIntResourceDetails>
<XIntResourceDetails id='Ninja.NumShots'>
<Value>5</Value>
<Name>Ninja.NumShots</Name>
<Flags>64</Flags>
</XIntResourceDetails>
...
<XContainerResourceDetails id='FE.PS2Water'>
<Value href='FE.PS2Water-0'/>
<Name>FE.PS2Water</Name>
<Flags>81</Flags>
</XContainerResourceDetails>
<WaterPlaneTweaks id='FE.PS2Water-0'>
<GlintCentreColor r='219' g='197' b='131' a='255' />
<GlintInnerColor r='219' g='197' b='131' a='255' />
<GlintMiddleColor r='70' g='48' b='26' a='255' />
<GlintOuterColor r='0' g='0' b='0' a='0' />
<GlintRimColor r='0' g='0' b='0' a='0' />
<ShadowCentreColor r='155' g='155' b='155' a='100' />
<ShadowInnerColor r='120' g='120' b='120' a='100' />
<ShadowMiddleColor r='80' g='80' b='80' a='100' />
<ShadowOuterColor r='50' g='50' b='50' a='100' />
<ShadowRimColor r='0' g='0' b='0' a='255' />
<BlendCentreColor r='60' g='61' b='98' a='200' />
<BlendInnerColor r='101' g='120' b='156' a='255' />
<BlendMiddleColor r='140' g='155' b='200' a='200' />
<BlendOuterColor r='146' g='180' b='230' a='0' />
<BlendRimColor r='140' g='163' b='215' a='0' />
<DetailCentreColor r='140' g='163' b='215' a='100' />
<DetailInnerColor r='145' g='76' b='43' a='100' />
<DetailMiddleColor r='50' g='50' b='30' a='100' />
<DetailOuterColor r='100' g='100' b='70' a='0' />
<DetailRimColor r='0' g='0' b='0' a='0' />
<ExtraGlintCentreColor r='0' g='0' b='0' a='0' />
<ExtraGlintInnerColor r='0' g='0' b='0' a='0' />
<ExtraGlintMiddleColor r='0' g='0' b='0' a='0' />
<ExtraGlintOuterColor r='0' g='0' b='0' a='0' />
<ExtraGlintRimColor r='0' g='0' b='0' a='0' />
<GlintResource>FE.DAYWater</GlintResource>
<ShadowResource>FE.DAYWaterDim</ShadowResource>
<SkyBlendResource>FE.WaterBlend</SkyBlendResource>
<DetailResource>FE.DAYDetail</DetailResource>
<SkyBlendColor r='100' g='140' b='200' a='255' />
<GlintTextureScaleA>100</GlintTextureScaleA>
<GlintTextureScaleB>80</GlintTextureScaleB>
<ShadowTextureScaleA>5</ShadowTextureScaleA>
<ShadowTextureScaleB>13</ShadowTextureScaleB>
<DetailTextureScaleA>60</DetailTextureScaleA>
<DetailTextureScaleB>76</DetailTextureScaleB>
</WaterPlaneTweaks>
...
</xomObjects>
</xomArchive>

Кто знает язык html(HiperText Markup Language) найдут жуткие сходства с языком xml(Extensible Markup Language). Вот где об этом можно почитать, если интересно. Короче кратко об xml. Файл xml можно представить как дерево. Корень этого дерева только один - <xomArchive>. Запись в таких скобках <xomArchive> называется тег. Запись </xomArchive> - это закрывающий тег. Запись типа <ExtraGlintRimColor/> называется одиночный тег (который не должен быть закрыт). Эта запись <ExtraGlintRimColor r='0' g='0' b='0' a='0' /> обозначает, что у этого тега есть атрибуты которые записаны как r='0', где r-имя атрибута, а 0 - значение. Внутри блока состоящего из открывающего и закрывающего тегов могут быть ещё одни блоки из тегов, а также одиночные теги. Ну вот в принципе и всё! Теперь проанализируем, что в этом файле. Блок <XDataBank id='id-0'> это блок, где описана куча ссылок на ресурсы. Рассмотрим например <IntResources href='Jetpack.InitFuel'/> запись href='Jetpack.InitFuel' означает, что где-то в этом файле внутри блока <xomObjects>..</xomObjects> есть структура, которая хранит в себе данные для этого тега, и называется она Jetpack.InitFuel (href в языке html означает ссылку, аналогично и в этом файле один блок может ссылаться на другой). Теперь напрягаем мозги, и пытаемся перевести с английского Jetpack.InitFuel - это "начальное топливо реактивного ранца". Ладно раз в <xomObjects> только ссылки на данные то найдём сами данные. Найдём в файле(Ctrl+F) Jetpack.InitFuel (это берём из атрибута href). Находим этот ресурс.

<XIntResourceDetails id='Jetpack.InitFuel'>
<Value>7500</Value>
<Name>Jetpack.InitFuel</Name>
<Flags>64</Flags>
</XIntResourceDetails>

Как видно его тип XIntResourceDetails. У данного типа есть следующие данные Value(значение), Name(имя), Flags(какие-то не понятно зачем нужные данные). По сути здесь написано: "У реактивного ранца начальное топливо равно 7500". Хм... А не попробовать ли нам его увеличить? Ставим 50000! И получаем

<XIntResourceDetails id='Jetpack.InitFuel'>
<Value>50000</Value>
<Name>Jetpack.InitFuel</Name>
<Flags>64</Flags>
</XIntResourceDetails>

Сохраняем этот файл(только если мы его скопировали перед этим) и запускаем новую игру в вормах! Берём реактивный ранец и радуемся когда видим 99 секунд! Вот и всё!

Почему у меня глючит онлайн игры, или я вылетаю из игры??? Не знаю!!!! Я буду разбираться!!! Но вот что установлено! Можно спокойно создавать супер оружие в файле local.xml!

И это всё??? Да! теперь вам надо проявить фантазию и поизучать <XDataBank id='id-0'> в этом и других файлах!

А почему некоторые ресурсы называются <IntResources href='Wind.Cap'/>, другие <UintResources href='AI.BulletCount'/>, третьи <StringResources href='BACKUP.FE.LevelToUse'/>?

А потому что разные ресурсы хранят данные разных типов IntResources - целые числа, UintResources - целые положительные, StringResources - тектовые, и т.п. Стоит пожалуй выделить такой класс ресурсов, как <ContainerResources href='FE.PS2Water'/>, потому что работа с ним чуть-чуть отличается.

Итак мы нашли строчку <ContainerResources href='FE.PS2Water'/>< в секции <XDataBank id='id-0'>. Это тоже ссылка на ресурс, поэтому забиваем в поиск FE.PS2Water. Находим:

<XContainerResourceDetails id='FE.PS2Water'>

<Value href='FE.PS2Water-0'/>
<Name>FE.PS2Water</Name>
<Flags>81</Flags>
</XContainerResourceDetails>
Но а где же значение? А значения нет, вместо него ссылка на '''FE.PS2Water'''-0. Ну чтож ищем теперь его! Находим
<WaterPlaneTweaks id='FE.PS2Water-0'>
<GlintCentreColor r='219' g='197' b='131' a='255' />
<GlintInnerColor r='219' g='197' b='131' a='255' />
<GlintMiddleColor r='70' g='48' b='26' a='255' />
<GlintOuterColor r='0' g='0' b='0' a='0' />
<GlintRimColor r='0' g='0' b='0' a='0' />
<ShadowCentreColor r='155' g='155' b='155' a='100' />
<ShadowInnerColor r='120' g='120' b='120' a='100' />
<ShadowMiddleColor r='80' g='80' b='80' a='100' />
<ShadowOuterColor r='50' g='50' b='50' a='100' />
<ShadowRimColor r='0' g='0' b='0' a='255' />
<BlendCentreColor r='60' g='61' b='98' a='200' />
<BlendInnerColor r='101' g='120' b='156' a='255' />
<BlendMiddleColor r='140' g='155' b='200' a='200' />
<BlendOuterColor r='146' g='180' b='230' a='0' />
<BlendRimColor r='140' g='163' b='215' a='0' />
<DetailCentreColor r='140' g='163' b='215' a='100' />
<DetailInnerColor r='145' g='76' b='43' a='100' />
<DetailMiddleColor r='50' g='50' b='30' a='100' />
<DetailOuterColor r='100' g='100' b='70' a='0' />
<DetailRimColor r='0' g='0' b='0' a='0' />
<ExtraGlintCentreColor r='0' g='0' b='0' a='0' />
<ExtraGlintInnerColor r='0' g='0' b='0' a='0' />
<ExtraGlintMiddleColor r='0' g='0' b='0' a='0' />
<ExtraGlintOuterColor r='0' g='0' b='0' a='0' />
<ExtraGlintRimColor r='0' g='0' b='0' a='0' />
<GlintResource>FE.DAYWater</GlintResource>
<ShadowResource>FE.DAYWaterDim</ShadowResource>
<SkyBlendResource>FE.WaterBlend</SkyBlendResource>
<DetailResource>FE.DAYDetail</DetailResource>
<SkyBlendColor r='100' g='140' b='200' a='255' />
<GlintTextureScaleA>100</GlintTextureScaleA>
<GlintTextureScaleB>80</GlintTextureScaleB>
<ShadowTextureScaleA>5</ShadowTextureScaleA>
<ShadowTextureScaleB>13</ShadowTextureScaleB>
<DetailTextureScaleA>60</DetailTextureScaleA>
<DetailTextureScaleB>76</DetailTextureScaleB>
</WaterPlaneTweaks>

Ну а здесь уже данные! Много данных о цветах воды! Для тех кот не знает цвет может кодироваться как rgba(Red Green Blue Alpha-Красный Зелёный Синий Прозрачность) и эти числа могут изменяться от 0 до 255. То есть XContainerResourceDetails это контейнер для каких-то данных и имеет только ссылку на них.

Ну вот вроде и всё! Учитесь, изучайте файлы, пробуйте модить! Я вам дал базовые знания. А вам осталось только найти теги, кторые можно поменять.

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики