Урок 1. - Форум
W4Tweaks
Меню сайта
Последние файлы
Последние темы


Вход



Мини-чат
 
500

Статистика
Онлайн:

Сегодня заходили: firsacho, Joker, KaMiKaZe, 4erveR, Unaited, Renny


Друзья сайта

Если вы хотите увидеть в этом спиcке свой сайт загляните сюда

Наш баннер:



· Регистрация · Вход
[ Новые сообщения · Участники · Подписки · Поиск · RSS ]
Страница 1 из 212»
Форум » Worms 4 Mayhem » 1.1. Уроки твикинга » Урок 1. (Базовые знания)
Урок 1.
Герыч
Дата: ПТ, 01.02.2008, 12:04:45 | Сообщение # 1
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Статус: Offline
Как модить игру?
!!!!!!!!!!!!!!!!!!ВНИМАНИЕ!!!!!!!!!!!!!!!!!!!!
Перед тем как что-то менять создайте резервные копии всех изменямых папок!!!!!!!!!!!
1. Что такое "модить"?
Мод игры-это её изменение(во всяком случае я так это понимаю!) Червяков модить достаточно легко, потому что большинство настроек хранятся в текстовых достаточно понятных и хорошо структурированных файлов

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

Code
<?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). Вот где об этом можно почитать, если интересно http://ru.wikipedia.org/wiki/XML. Короче кратко об 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). Находим этот ресурс.

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

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

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

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

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

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

5. А почему некоторые ресурсы называются <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. Находим

Code
<XContainerResourceDetails id='FE.PS2Water'>
<Value href='FE.PS2Water-0'/>
<Name>FE.PS2Water</Name>
<Flags>81</Flags>
</XContainerResourceDetails>

Но а где же значение? А значения нет, вместо него ссылка на FE.PS2Water-0. Ну чтож ищем теперь его! Находим

Code
<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 это контейнер для каких-то данных и имеет только ссылку на них.

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


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
{Black}_Steel{Csol}
Дата: СБ, 13.12.2008, 15:58:21 | Сообщение # 2
{Black}_Steel{Csol}
Только что регнулся
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Offline
Все понятно, ясно

 
Некто
Дата: ВТ, 10.11.2009, 12:04:04 | Сообщение # 3
Некто
Знаменитость
Группа: Проверенные
Сообщений: 1897
Репутация: 21
Статус: Offline
хм... а если неразбираешся в html записях?
 
MarkWarT
Дата: ВТ, 10.11.2009, 14:03:51 | Сообщение # 4
MarkWarT
Завсегдатай
Группа: Проверенные
Сообщений: 497
Репутация: 22
Статус: Offline
Некромант блин dry На дату последнего поста посмотри dry
А в хтмл и не нужно разбираться. Все равно что в блокноте текст пишешь


Trading Unusual Nickname with Perfectly Straight Underlines, serious offers only
 
Некто
Дата: ВТ, 10.11.2009, 15:18:49 | Сообщение # 5
Некто
Знаменитость
Группа: Проверенные
Сообщений: 1897
Репутация: 21
Статус: Offline
ну и с англиским я недружу cry
 
bender
Дата: СБ, 05.12.2009, 17:59:46 | Сообщение # 6
bender
Завсегдатай
Группа: Проверенные
Сообщений: 312
Репутация: 2
Статус: Offline
а че за строчка <Flags>81</Flags>

 
DarkPower
Дата: ВС, 14.03.2010, 10:17:03 | Сообщение # 7
DarkPower
Только что регнулся
Группа: Проверенные
Сообщений: 15
Репутация: 0
Статус: Offline
Ну Flags переводится как "Флаги".

Сообщение отредактировал DarkPower - ВС, 14.03.2010, 10:20:03
 
MarkWarT
Дата: ВС, 14.03.2010, 18:55:01 | Сообщение # 8
MarkWarT
Завсегдатай
Группа: Проверенные
Сообщений: 497
Репутация: 22
Статус: Offline
DarkPower, некропост
Вообще в контексте игры Flags означает "особые свойства". Про таковые в В4 я не знаю, но в GTA San Andreas например их изменение позволяло создать оружие, которые держишь в двух руках по стволу, оружие с которым невозможно приседать и др.


Trading Unusual Nickname with Perfectly Straight Underlines, serious offers only
 
DarkPower
Дата: ПН, 26.04.2010, 07:28:02 | Сообщение # 9
DarkPower
Только что регнулся
Группа: Проверенные
Сообщений: 15
Репутация: 0
Статус: Offline
Quote (MarkWarT)
Вообще в контексте игры Flags означает "особые свойства". Про таковые в В4 я не знаю, но в GTA San Andreas например их изменение позволяло создать оружие, которые держишь в двух руках по стволу, оружие с которым невозможно приседать и др.

Ясно.
 
killeroi
Дата: ПН, 26.04.2010, 12:32:43 | Сообщение # 10
killeroi
Pinkie Pie
Группа: Хранители порядка
Сообщений: 1846
Репутация: 88
Статус: Offline
Дам полезные хтучки wink

Как в старые добрые
 
DrHitman27
Дата: ВТ, 27.04.2010, 08:49:11 | Сообщение # 11
DrHitman27
•Polarized•
Группа: Заблокированные
Сообщений: 2107
Репутация: 52
Статус: Offline
Quote (SonicX)
Дам полезные хтучки

что этим человек сказать хотел неизвестно


 
Pavel_129
Дата: СБ, 15.01.2011, 19:13:00 | Сообщение # 12
Pavel_129
Только что регнулся
Группа: Новички
Сообщений: 2
Репутация: 2
Статус: Offline
Герыч спасибо тебе! 7 теперь я могу моды делать!
 
Rorschach
Дата: СБ, 15.01.2011, 19:21:43 | Сообщение # 13
Легендарный червь
Группа: Проверенные
Сообщений: 2848
Репутация: 60
Статус: Offline
Pavel_129, это еще не моды. это вступление к модам.



-------------------------------------------------------------
And when the sun is shining, there is justice for all...
And all the people will remember that funny "war".
War, which was so dark in the beginning and so shiny in the end.
But now it's over. Over for all.
-------------------------------------------------------------
Я сюда захожу только из-за Game Project. И да, я больше не модер, поэтому не надо писать мне тонны лс с просьбами кого-либо забанить. И еще: черви меня не интересуют. Совсем. Поэтому, даже не напоминайте мне про них - вызовете большой БУГУРТ.
 
Genomorf
Дата: СР, 16.03.2011, 18:18:18 | Сообщение # 14
Genomorf
Прошел обучение
Группа: Заблокированные
Сообщений: 21
Репутация: -6
Статус: Offline
Я сделал всё как надо!
Все уроки прочёл И СДЕЛАЛ ВСЁ КАК НАДО!
Не пашет!!!!
И руки у меня не кривые!


Сообщение отредактировал Genomorf - СБ, 19.03.2011, 18:15:01
 
4erveR
Дата: СР, 16.03.2011, 18:23:51 | Сообщение # 15
4erveR
Неадекват
Группа: Модераторы
Сообщений: 1419
Репутация: 75
Статус: Offline
Quote (Genomorf)
И руки у меня не кривые!

а разве есть ещё причины?


твеак умер, а я еще нет
 
Форум » Worms 4 Mayhem » 1.1. Уроки твикинга » Урок 1. (Базовые знания)
Страница 1 из 212»
Поиск:

Copyright W4Tweaks™ 2008-2016 Хостинг от uCoz