• Дорогой гость!

    Мы рады приветствовать вас на форуме Эвендима!

    Эвендим - это один из крупнейших проектов, посвященных миру Толкина, на котором вы можете найти все, что вам интересно! Эвендим ставит перед собой цель - объединить поклонников мира Толкина со всего мира. Вместе с нашими форумчанами, которые стали нашей второй семьей, мы постоянно работаем над тёплой и дружеской атмосферой, благодаря которой, так легко заводить новых друзей, и приятно проводить время!

    Мы приглашаем вас познавать мир Толкина, играть в игры, заводить новых друзей, и строить Эвендим вместе с нами!
Tips

Новая Фракция: Харад

Akhorahil

Отошёл в закат)
Ещё хороший тутор. Может кого и заинтересует.




Привет всем! На этот раз я расскажу вам о создании фракции Харад (ака Люди Тьмы) для первой части 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. Копировать запрещено!
 

///DOC///

Наместник
Я говорил тебе, что такое боян? Боян - это повторение. Повторение одного и того же поста в надежде на лайки.
Спойлер тоже оффтоп:
:C3:
 

Akhorahil

Отошёл в закат)
где то я это видел, и не один раз
Пф... Возможно ты видел это: http://bfme-modding.ru/forum/12-14-7#1598
Сей тутор Уваты направо-налево кидают, и фиг даже спасибо ему скажут. Я же основываясь на нём написал свой, более понятный для новичков, подробно разжевав сложные моменты.
 

Сверху