Здравствуйте! Авторизуйтесь или зарегистрируйтесь, чтобы использовать полный функционал сайта
Быстрая авторизация через соцсети:

Главная » Статьи » Моддинг » Коддинг
Харад в BFME 1

Привет всем! На этот раз я расскажу вам о создании фракции Харад (ака Люди Тьмы) для первой части BFME. Помог мне этот тутор (спасибо Uvatha), но всё же в нём говориться об общих моментах, да и не очень понятен новичкам. Поэтому я решил написать, подробно разобрав данный процесс. И так, господа, начнём:

Для сего дела нам понадобятся следующие программы:
- FinalBig
- Блокнот (если английская версия, да и вообще неплохой помощник)
- Siberian String Table Editor (если русская версия)
- HEXeditor
- Worldbuilder.exe (в игре есть)


Теперь адреса в INI.big:
1.data\ini\playertemplate.ini.
2.data\ini\upgrade.ini.
3.data\ini\victorysystem.ini.
4.data\ini\commandset.ini.
5.data\ini\object\evilfaction\evilfactionbuildings.ini.
6.data\ini\object\civilian\civilianbuildings.ini.



Первым делом пойдём в data\ini\playertemplate.ini. Там добавим в конец файла следующее:

PlayerTemplate FactionHarad
Side = Harad
PlayableSide = Yes
Evil = Yes
StartMoney = 0
MaxLevelMP = 44
MaxLevelSP = 84
PreferredColor = R:225 G:150 B:60
IntrinsicSciences = SCIENCE_EVIL
IntrinsicSciencesMP = SCIENCE_MORDOR ;SCIENCE_HARAD
SpellBook = EvilSpellBook
SpellBookMp = MordorSpellBook ;HaradSpellBook
PurchaseScienceCommandSet = EvilSpellStoreCommandSet
PurchaseScienceCommandSetMP = MordorSpellStoreCommandSet ;HaradSpellStoreCommandSet
;SpecialPowerShortcutCommandSet = SpecialPowerShortcutGLA
;SpecialPowerShortcutWinName = GenPowersShortcutBarGLA.wnd
;SpecialPowerShortcutButtonCount = 3
DisplayName = INI:FactionHarad
DefaultPlayerAIType = MordorSkirmishAI
;StartingBuilding = MordorBuildingFoundation
;StartingUnit0 = MordorFighter
;ScoreScreenImage = GLA_ScoreScreen
;LoadScreenImage = SUFactionLogoPage_GLA
;LoadScreenMusic = Load_GLA
;FlagWaterMark = WatermarkGLA
;EnabledImage = SSObserverGLA
BeaconName = MultiplayerBeacon
;SideIconImage = GameinfoGLA
LightPointsUpSound = MordorLightPointsUp
ObjectiveAddedSound = Gui_MissionObjectiveNew
ObjectiveCompletedSound = Gui_MissionObjectiveCompleted
InitialUpgrades = Upgrade_HaradFaction Upgrade_MordorDualEconomyChoice Upgrade_EvilDualEconomyChoice ;Any upgrades this player template is born with.
BuildableHeroesMP = MordorFellBeast MordorWitchKing
SpellStoreCurrentPowerLabel = APT:SpellStoreCurrentRingPower
SpellStoreMaximumPowerLabel = APT:SpellStoreMaximumRingPower
End


В итоге у нас получился Харад, похожий несколько на Мордор, но сие сделано для играбельности (например спеллы мордовские).

Потом заходим в data\ini\upgrade.ini. Находим например:

Upgrade Upgrade_MordorFaction
DisplayName = UPGRADE:MordorFaction
Type = PLAYER
End


И ниже вставляем код:

Upgrade Upgrade_HaradFaction
DisplayName = UPGRADE:HaradFaction
Type = PLAYER
End


Затем открываем файл data\ini\victorysystem.ini. Туда добавляем это (можно ниже аналогичного блока Мордора) :

FactionVictoryData Harad
AllyDeathScaleFactor = 1.0 ; Value this faction places on the loss of its own units.
EnemyKillScaleFactor = 1.1 ; Value this faction places on 'kills' of enemy units that it gets.
VictoryThreshold = 200.0 ; Thereshold needed for a 'Victory'
MajorUnitValue = 10.0 ; Value placed on special/major units
MapToCellVictoryRatio = 0.8 ; Factor of VictoryThreshold that a cell needs for a Victory, practical range should be
; on the order of 0.2 and 1.0. Larger values make it more difficult to achieve 'Victory'
End


Теперь цитадель и фундаменты. Это по адресу data\ini\object\evilfaction\evilfactionbuildings.ini.
Находим Object HaradCampKeep и Object HaradBuildingFoundation, копируем данные блоки (блок от Object ... до следующего Object ...) и вставляем их в конец файла. Теперь, что надо в них (копированных конечно) заменить:

Object HaradBuildingFoundation

например, на:

Object EastBuildingFoundation

Side = Mordor

на (в обоих блоках):

Side = Harad

CommandSet = MordorFoundationCommandSet

на

CommandSet = HaradFoundationCommandSet

Object HaradCampKeep

например на:

Object EastCampKeep

CommandSet = MordorCampKeepCommandSet

на:

CommandSet = HaradCampKeepCommandSet

Ну... вообщем все замены. (Хотя я советую скопировать код от ; ***DESIGN parameters *** до Geometry = BOX из блока Object MordorCampKeep в ваш блок Object HaradCampKeep (с прежнего заменой разумеется) и подкорректировать написанные выше моменты).
Так же можно намного проще управится, используя чайлд, о котором шла речь в туторе про кавалерию мёртвых.

Настало время для data\ini\commandset.ini. Туда добавляем это:

CommandSet HaradCampKeepCommandSet
1 = Command_GenericReviveSlot1
2 = Command_GenericReviveSlot2
3 = Command_GenericReviveSlot3
4 = Command_GenericReviveSlot4
5 = Command_GenericReviveSlot5
6 = Command_GenericReviveSlot6
7 = Command_GenericReviveSlot7
8 = Command_GenericReviveSlot8
9 = Command_StartCitadelFoDSelfRepair ;
End


и это:

CommandSet HaradFoundationCommandSet
1 = Command_ConstructSlaughterHouse
2 = Command_ConstructMordorHaradrimPalace
3 = Command_ConstructMordorPen
End



Из ИНИ.БИГа пока выходим, сохраняя изменения. Пора прописать игровой текст. Об это здесь я рассказывать не буду, посмотрите тут. Скажу только, что у меня русская версия, патч 1.03, т.е нужный файл lang\russian\lotr.csf лежит в биге _russianpatch103.big. Я открыл его при помощи Siberian String Table Editor'а.
Нас интересуют строки (я уже всё прописал):

INI:FactionHarad - Harad
SIDE:Harad - Harad
LWA:Harad - Harad
LWA:HaradArmy - Harad Army
OBJECT:HaradBuildingFoundation - Harad Building Foundation


В русской версии соответственно:

INI:FactionHarad - Харад
SIDE:Harad - Харад
LWA:Harad - Харад
LWA:HaradArmy - HАрмия Харада
OBJECT:HaradBuildingFoundation - Строительный фундамент Харада


А дальше идёт самый муторный процесс - создание 3 баз (.bse файлов): замка, лагеря, аванпоста.
Начнём с замка.

Для этого открываем Worldbuilder.exe. Там в панели инструментов нажимаем File > New. Появится окно, в которое забиваем параметры: 100, 100, 30, 16. Нажимаем OK. Карта готова, осталость только разместить нужные объекты на ней.=)
Сначала нажимаем на значок в панели инструментов в виде трёх стрелочек, вылезет окно, в котором идём по адресу: ByNativeType > Civilian > STRUKTURE > CastleFlagNE. Выбираем объект (чёрный непонятный круг с какими-то надписями) и ставим на своей карте. Дальше выбираем в пенельке инструмент Polygon Toll(замкнутая с точками), нажимаем на него, и ставим точки (они должны автоматически соединятся), обводя ими чёрный круг. Потом правой конпкой мыши кликаем на землю пустую (линия перестаёт мигать). Теперь удаляем круг и возвращаемся к трём стрелкам. Там идём по адресу: ByNativeType > Harad > STRUKTURE > Eastbuildingfoundation.
И ставим на карту внутри замкнутой красной линии. Это основание для постройки зданий. В замке их обычно 8. Затем идём по адресу (всё там же в трх стрелках):
ByNativeType-Civilian-SYSTEM-BaseCenterGeneric - это розовая пирамида сама "база". Поставим в середину круга.Потом нажимаем на него. Там будет окно параметров. В пустой строчке Name пишем BASE. После этого ставим галочку в пункте Is a base, а в строке Team выберем PlyrHarad/teamPlyrHarad. С пирамидой покончили, теперь главное здание: ByNativeType > Harad > STRUKTURE > Eastcampkeep. Данный объект ставим на пирамиду. В параметрах В меню In Base ставим BASE. Это же делаем со всеми основаниями. А теперь, чтобы замок не был таким скучным и пустым можно поставить декорации, а для защиты - фундаменты башенок. Адрес башен: ByNativeType > Mordor > STRUKTURE > MordorBaseDefenceFoundation. Декорации найдёте сами, покопавшись в ByNativeType > Civilian > MISC_MAN_MADE и/или в ByNativeType > Civilian > MISC_NATURAL. У всех ваших объектов (декораций, башен, фундаментов) нужно прописать в параметрах свою команду и выбрать BASE в строке In Base (аналогично как мы делали с фундаментами построек).
Так, базу сделали, теперь сохраняем как (File > SaveAs) castle_harad (можно в папке с игрой).

Теперь открываем HEXeditor (XVI32.exe). Нажимаем File > Open..., находим файл и открываем его. Вы увидите кучу цифр и букв, но не пугайтесь, нам нужна только строчка castle_harad в правой половине где-то вверху. Как нашли сразу переименовываем (редактируем прям там) в Castle_Harad. Сохраняем файл и выходим из редактора.
И осталось закинуть ваш файл в биг игры (можно в Bases.big или в ваш собственный). Открываем биг-файл Edit > Add file и выбираем файл. Не забудьте его там грамотно назвать! По аналогу с мордовским, например. У меня: bases\castle_harad\castle_harad.bse.

Теперь Лагерь.
Процесс аналогичный, как с замком, только нужно заменить CastleFlagNE на CampFlagNE, сохранить как camp_harad, в HEXeditor'е вместо camp_harad Camp_Harad.

Аванпост.
Процесс такой же только: нужно заменить CastleFlagNE на ExpansionFlag, сохранить как expansion_harad, в HEXeditor'е вместо expansion_harad Expansion_Harad.

Всё с ВБ покончили. Снова возвращаемся в INI.big. Нам нужен последний адрес: data\ini\object\civilian\civilianbuildings.ini. Там есть несколько блоков, где присутствуют названия всех играбельных фракций: Gondor, Mordor, Rohan, Isengard. Так вот, теперь аналогично добавляем во все эти блоки Harad. Например, было:

Behavior = CastleBehavior ModuleTag_castle
SidesAllowed = Gondor FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Isengard FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Mordor FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Rohan FROM_PLAYER FROM_AI FROM_SCRIPT
UseTheNewCastleSystemInsteadOfTheClunkyBuildList = Yes
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER
End
End


Стало:

Behavior = CastleBehavior ModuleTag_castle
SidesAllowed = Gondor FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Isengard FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Mordor FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Rohan FROM_PLAYER FROM_AI FROM_SCRIPT
SidesAllowed = Harad FROM_PLAYER FROM_AI FROM_SCRIPT
UseTheNewCastleSystemInsteadOfTheClunkyBuildList = Yes
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER
End
End


Можно скачать один файл. Там сохранить его в блокноте, нажать Ctrl+H. В разделе "Что" писать Elves, а в "Чем" - Harad > Заменить всё. Кидаем этот текстовый файл в иник, заменяя data\ini\object\civilian\civilianbuildings.ini (название оставить data\ini\object\civilian\civilianbuildings.ini).

Помните только, что Харад - злая фракция (ближе к Мордору), это относится к выбору построек на поселениях. У меня - лесопилки. Для этого заменим (если делаете сами, то просто добавляем нужную строчку):

UseSecondaryBuildList = Yes
UseTheNewCastleSystemInsteadOfTheClunkyBuildList = Yes
CastleToUnpackForFaction = Mordor Lumbermill_Mordor MORDOR_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Isengard Lumbermill_Mordor ISENGARD_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Rohan EconomyFarm_Rohan ROHAN_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Gondor Farm_Gondor GONDOR_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Harad Farm_Harad GONDOR_FLAG_ECONOMY_UNPACK_COST
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER
End


На:

UseSecondaryBuildList = Yes
UseTheNewCastleSystemInsteadOfTheClunkyBuildList = Yes
CastleToUnpackForFaction = Mordor Lumbermill_Mordor MORDOR_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Isengard Lumbermill_Mordor ISENGARD_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Rohan EconomyFarm_Rohan ROHAN_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Gondor Farm_Gondor GONDOR_FLAG_ECONOMY_UNPACK_COST
CastleToUnpackForFaction = Harad Lumbermill_Mordor MORDOR_FLAG_ECONOMY_UNPACK_COST
FilterValidOwnedEntries = ANY +STRUCTURE +WALK_ON_TOP_OF_WALL +BASE_FOUNDATION +TACTICAL_MARKER
End


Так меняем все аналогичные блоки. И ещё, базы у нас только: Castle_Harad Camp_Harad Expansion_Harad. Никаких иных быть не должно. Особенно после использования файла с Третьей Эры (там может встретится Camp_ElvesSW, например, а при автомат-замене на Harad будет: Camp_HaradSW, чего не должно).

Примечания:
1. Тутор полностью по Хараду, если вы хотите создать другую фракцию, например, Эльфы, то просто заменяете Harad на название расы (помня, про то, что эльфы - добрая фракция).
2. Книга заклинаний, герои, строения в фундаменте можете выбирать свои.
3. Могут быть несоответствия между патчами. (Так же обратите внимание, что у меня русская версия).
4. Семь раз проверь - один раз отрежь! (Тутор серьёзный, т.е. тупо копировкой без знания кода делать не советую).
5. При любых замечаниях, пишите в комментарии, причём излагайте конкретную проблему, а не типа: "У мене не получилось, хнык.(" И если увидите ошибки, хоть незначительные, тоже сообщайте (это уже к продвинутым моддерам).

На сим всё. У меня работает (скрины в придачу), фракцией вполне можно играть, а если доделать немного, так вообще ништяк будет.)


Tutorial by Akrahil. Копировать запрещено!

Скрин:




Оценить:
Просмотров: 3819 | Комментарии: 10 | Рейтинг: 4.3/17
Категория: Коддинг | Добавил: Akrahil (25.01.2013)
Теги: Харад
ПОХОЖИЕ МАТЕРИАЛЫ

Всего комментариев: 10
avatar
10 Akrahil • 14:36, 22.01.2016
От автора данного туториала:
Сегодня проверил на англ версии - да, такая проблема имеет место быть. Чтобы устранить её, надо изменить игровой текст в файле data/lotr.str
Вообще, если фракцию нельзя выбрать - ищите косяк в описании, в игровом тексте это:
Код
INI:FactionHarad - Харад  
SIDE:Harad - Харад
avatar
9 DanielGermes • 08:26, 30.08.2015
Сделал для другой фракции (дол-гулдур) - аналогично как  и здесь написано но она не появляется при выборе фракций! Что делать - базы есть, скирмиш ai есть - может еще нужно где то прописать?
avatar
8 DanielGermes • 14:13, 09.04.2015
Файлы bse пожайлуста в студию - у меня wordlbuilder глючный
avatar
7 DanielGermes • 20:04, 08.04.2015
А кто может сделать файлы базы - у меня WorldBuilder летит с багом!
avatar
0
6 SauronGreat • 22:05, 08.04.2015
Ну тут либо исправлять все ошибки в коде (которые могут не мешать непосредственно запуску игры), либо сделать временный биг-файл с только с нужными добавленными объектами.
avatar
5 Oversun • 12:55, 11.02.2015
Сделал для второй части, civilianbuildings выгляди немного по другому. Сделал базу, создал фракцию, при старте игры - ничего не меняется. Если в плейертемплайте StartingBuilding ставлю название базы - вообще ничего не появляется и я проиграл. Во второй части как-то по другому это устроено?
avatar
4 Akrahil • 20:56, 15.01.2015
Значит, поленились ставить базы в WorldBuilder'е. Одного Playertemplate.ini для бфме 1 или 2, РотВК НЕ ДОСТАТОЧНО!
avatar
3 Tiamat_EA • 22:51, 12.01.2014
Мда чтото новая фракция не появляется при выборе фракций! добавил в Playertemplate.ini, в генералах этого вполне хватало
avatar
2 Iscatel • 23:22, 16.07.2013
Хороший урок для новичка, мне нравится  :)
avatar
1 Uvatha • 15:26, 19.06.2013
Красавец! ) Можно было бы накатать тутор про скрипты (чтобы комп новой фракцией играл). А то так как то скучно... ((, я обычно новоиспеченную фракцию против себя ставлю ))Но зная, что дело это муторное, особенно на bfme1 то... тутор Cool!! 5 балов смело ставлю ).
avatar