
Предупреждение: Я не умею в код и соответственно не смогу научить ничему, что касается этого. Однако даже без программирования можно создать "ту самую штуку что я всегда хотел в моей игре, но не мог найти в мастерской". Я пытался найти подобное руководство, но наткнулся лишь на создание кастомных фракций и ксенотипов(что безусловно круто, но это все еще не "Как сделать свой мод и он будет работать"). Когда небольшой когнитивный диссонанс в моей голове улегся, я посмотрел на свою кандидатуру и понял, что в условиях отсутствия других вариантов простой парень который однажды залез в файлы игры сойдет. И так, начнем. Для создания простейших модификаций вам потребуется: 1. Элементарное знание английского языка 2. Наличие базовой логики 3. Смелость Введение Сперва заходим на страницу игры в стиме, жмем настройки и следом "Просмотреть локальные файлы", вас перекинет в файловый менеджер с открытой папкой игры. Так вы увидите две папки: "Data" и "Mods". Заходим в папку "Data" и видим папки каждого дополнения игры. Обратите внимание, на уровне построения разницы между официальными дополнениями и модификациями практически нет, так что мой совет-просто покопайтесь в папках. Не спешите, осмотритесь, это сильно облегчит задачу. Закончили тур? Отлично. Теперь сделаем также, но по-своему. Основы и написание About Заходим в папку "Mods" и создаем там папку с названием вашего мода. Внутри этой папки создаем еще две, и называем их "About" и "Defs". Воу-воу-воу, полегче! Откуда мне знать что все это означает?! Ну, я сейчас объясню. Папка "About"-это информация о вашем моде: название, ваша подпись и порядок загрузки. А также требования других модификаций. Вооружаемся блокнотом и внутри этой папки создаем текстовый файл с именем: "About.xml", после чего при помощи блокнота начинаем редактирование. Пример: <?xml version="1.0" encoding="utf-8"?> Вот это пишем ВСЕГДА в начале каждого .xml <ModMetaData> <packageId>Really.Cool.Mod</packageId> Сюда вписываем название мода, например: Really.Cool.Mod <author>Modmaker</author> Сюда ставим ваш никнейм <supportedVersions> Версии игры, на которых будет работать ваш мод. <li>1.4</li> </supportedVersions> <forceLoadAfter> Это то, после каких ДЛС и модификаций должен загружаться ваш мод. <li>Ludeon.RimWorld.Core</li> <li>Ludeon.RimWorld.Royalty</li> <li>Ludeon.RimWorld.Ideology</li> <li>Ludeon.RimWorld.Biotech</li> </forceLoadAfter> <packageId>really.cool.mod</packageId> ID вашего мода. <description>Hello I create this mod</description> Описание вашего мода. </ModMetaData> На этом мы переходим к папке "Defs". И начинаем работу. Для начала, что добавляет ваш мод? И вот начиная с этого момента написание руководства разветвляется. Рецепт 1. Черты персонажа Создаем папку "TraitDefs" и в ней файл, для примера, ModTraits.xml Вот шаблон для черт персонажей: <?xml version="1.0" encoding="utf-8" ?> <Defs> <TraitDef> <defName>ModTrait</defName> РАБОЧЕЕ название вашей черты. Оно не показывается в игре, но именно РАБОЧЕЕ название используется чтобы, например, обозначить конфликт черт. <degreeDatas> <li> <label>ModTrait</label> А вот это уже название черты отображающееся в игре. <description>{PAWN_nameDef} have a mod trait.</description> описание черты. "{PAWN_nameDef}"-универсальный код имени персонажа, так что если вашего персонажа зовут, например, Джон, то в игре описание будет выглядеть: "Джон have a mod trait." <statOffsets> Модификаторы которые черта накладывает на персонажа. <AimingDelayFactor>0</AimingDelayFactor> Время перезарядки(Обратите внимание, число 1 прибавляет к времени, а -1 сокращает. Такая же логика используется и во всем остальном, не пишите +1) <ShootingAccuracyPawn>0</ShootingAccuracyPawn> Точность стрельбы <MoveSpeed>0</MoveSpeed> Скорость передвижения <MeleeHitChance>0</MeleeHitChance> Шанс удара в ближнем бою <MeleeDodgeChance>0</MeleeDodgeChance> Шанс уклонения в ближнем бою <GlobalLearningFactor>0</GlobalLearningFactor> Скорость обучения(Вот здесь, кстати, счет идет иначе. Чем быстрее-тем меньше написанное здесь число, чтобы понять где какой вариант используется-просмотрите черты из файлов игры) <ResearchSpeed>0</ResearchSpeed> Скорость исследования <PawnBeauty>0</PawnBeauty> Красота <CarryingCapacity>0</CarryingCapacity> Переносимый вес <IncomingDamageFactor>0</IncomingDamageFactor> Множитель получаемого урона <ImmunityGainSpeed>0</ImmunityGainSpeed> Скорость выработки иммунитета <MentalBreakThreshold>0</MentalBreakThreshold> <ToxicResistance>0</ToxicResistance> Сопротивление токсинам <ComfyTemperatureMax>0</ComfyTemperatureMax> Максимальная комфортная температура <ComfyTemperatureMin>0</ComfyTemperatureMin>Минимальная комфортная температура <WorkSpeedGlobal>0</WorkSpeedGlobal> Скорость работы <RestRateMultiplier>0</RestRateMultiplier> Скорость сна/отдыха <EatingSpeed>0</EatingSpeed> Скорость поглощения пищи <CaravanRidingSpeedFactor>0</CaravanRidingSpeedFactor> Скорость передвижения каравана(В теории) PsychicSensitivity>0</PsychicSensitivity> Пси-восприимчивость <MeditationFocusGain>0</MeditationFocusGain> Получаемый от медитации пси-фокус <PsychicEntropyMax>0</PsychicEntropyMax> Максимум пси-перегрева <PsychicEntropyRecoveryRate>0</PsychicEntropyRecoveryRate> Скорость снятия пси-перегрева <InjuryHealingFactor>0</InjuryHealingFactor> Регенерация <BloodFiltration>0</BloodFiltration> Фильтрация крови <Manipulation>0</Manipulation> Работа <Sight>0</Sight> Зрение CookSpeed>0</CookSpeed> Скорость приготовления пищи <FoodPoisonChance>0</FoodPoisonChance> Шанс испортить еду при готовке </statOffsets> </li> <skillGains> Навыки, которые увеличивает или уменьшает черта. <li> <key>Shooting</key> Название навыка(Для примера это Стрельба. Но вот все остальные: Melee(Ближний бой), Construction(Строительство), Mining(Горное дело), Cooking(Готовка), Plants(Растениеводство), Animals(Животноводство), Crafting(Ремесло), Artistic(Искусство), Medicine(Медицина), Social(Общение), Intellectual(Умственный труд). <value>0</value>Значение, на которое увеличивается или уменьшается навык </li> </skillGains> </degreeDatas> <conflictingTraits> Конфликтующие черты(т.е. колонист не может иметь одновременно эту черту и те, что прописаны в данном разделе) <li>ModTrait</li> </conflictingTraits> </TraitDef> </Defs> Вписываем все необходимое, убираем ненужное, проверяем закрыты ли все скобочки и сохраняем файл. Открываем файл с помощью приложения читающего .xml(Например я использую Edge) и если все сделано правильно то вы увидите код. Если нет-то сообщение об ошибке. Доводим разметку до рабочего состояния и запускаем игру, там находим свой мод, включаем его и бежим проверять. Та-да, вы создали свой мод на трейты! Далее я напишу о том как создавать гены и способности. Рецепт 2. Гены и способности. В папке "Defs" создаем файл "GeneDefs.xml" и начинаем редактирование. <?xml version="1.0" encoding="utf-8" ?> <Defs> <GeneDef> <defName>ModGene</defName> Имя вашего гена. <label>mod gene</label> Отображающееся в игре имя вашего гена. <labelShortAdj>mod-gene</labelShortAdj> Короткий идентификатор вашего гена <description>Carriers of this gene have a mod gene.</description> Описание вашего гена. <resourceLabel>resource</resourceLabel> Ресурс, на который ген оказывает влияние(если оказывает. В оригинале игры я могу найти только Гемоген и пишется он вот так: "hemogen".) <iconPath>UI/Icons/Genes/Mod_gene</iconPath> Иконка, которую использует ваш ген. О добавлении кастомных иконок для генов и способностей позже. <prerequisite>ModGene</prerequisite> Требование какого-либо гена <resourceLossPerDay>0</resourceLossPerDay> Потеря ресурса в день(можете вписать отрицательное значение и получите прибавление в день) <displayCategory>ModGenes</displayCategory> Категория, в которой будет отображаться ваш ген. О добавлении кастомных категорий позже. <statFactors> Модификаторы которые накладывает ваш ген <InjuryHealingFactor>0</InjuryHealingFactor> Регенерация <ImmunityGainSpeed>0</ImmunityGainSpeed> Скорость выработки иммунитета <ToxicEnvironmentResistance>0</ToxicEnvironmentResistance> Сопротивление токсичной среде <Fertility>0</Fertility> <biologicalAgeTickFactorFromAgeCurve> Старение/Взросление. <points> <li>(0, 0)</li> Первой цифрой пишем возраст, на который влияет этот ген, а второй-скорость взросления/старения. Так 0 отключает его вовсе, а чем выше цифра-тем быстрее носитель данного гена взрослеет. </points> </biologicalAgeTickFactorFromAgeCurve> <hediffGiversCannotGive> Невозможность получить повреждения/болезни <li>Carcinoma</li> Карцинома <li>HeartAttack</li> Сердечный приступ <li>BadBack</li> Больная спина <li>Frail</li> Немощь <li>Cataract</li> Катаракта <li>Dementia</li> Деменция <li>Alzheimers</li> Альцгеймер <li>Asthma</li> Астма <li>HeartArteryBlockage</li> Тромб </hediffGiversCannotGive> <makeImmuneTo> Иммунитет к болезням(Полный) <li>Flu</li> Грипп <li>Malaria</li> Малярия <li>SleepingSickness</li> Криптосонная болезнь <li>Plague</li> Чума <li>WoundInfection</li> Инфекция(раны) <li>LungRot</li> Гниение легких </makeImmuneTo> <damageFactors> Множитель разных типов получаемого урона <Flame>0</Flame> Огонь </damageFactors> <ComfyTemperatureMin>0</ComfyTemperatureMin> Минимальная комфортная температура <ComfyTemperatureMax>0</ComfyTemperatureMax> Максимальная комфортная температура <MoveSpeed>0</MoveSpeed> Скорость передвижения <PawnBeauty>0</PawnBeauty> Красота <GlobalLearningFactor>0</GlobalLearningFactor> Множитель скорости обучения <ToxicResistance>0</ToxicResistance> Сопротивление кислоте <forcedTraits> Добавляемые черты <li> <def>ModTrait</def> </li> </forcedTraits> <IncomingDamageFactor>0</IncomingDamageFactor> Множитель получаемого урона <painFactor>0</painFactor> Множитель ощущаемой боли <socialFightChanceFactor>0</socialFightChanceFactor> Шанс драки <aggroMentalBreakSelectionChanceFactor>0</aggroMentalBreakSelectionChanceFactor> Шанс агрессивного нервного срыва <prisonBreakMTBFactor>0</prisonBreakMTBFactor> Шанс побега из плена <RestFallRateFactor>0</RestFallRateFactor> Множитель потребности сна/отдыха <MeleeDamageFactor>0 </MeleeDamageFactor> Множитель наносимого урона в ближнем бою <lovinMTBFactor>0</lovinMTBFactor> </statFactors> <marketValueFactor>0</marketValueFactor> Стоимость данного гена у торговцев. <abilities> Способности, добавляемые этим геном <li>ModAbility</li> Сюда вставляем игровое название вашей способности </abilities> <descriptionHyperlinks> <AbilityDef>ModAbility</AbilityDef> А сюда рабочее </descriptionHyperlinks> <biostatCpx>0</biostatCpx> Сколько очков сложности добавляет ген. <biostatMet>0</biostatMet> Сколько очков метаболизма добавляет ген(большинство генов отнимают метаболизм, так что скорее всего вы напишите отрицательное число) <biostatArc>0</biostatArc> Сколько архитных очков добавляет ген. <symbolPack> Сюда вы можете добавить слова, которые будут использоваться при генерации названия ксенотипа носителей этого гена. <prefixSymbols> <li> <symbol>modded</symbol> вооот в эту строчку, если быть точным. Если вы хотите добавить больше чем одно слово, то... </li> <li> <symbol>modded2</symbol> ставьте его таким образом. </li> </prefixSymbols> </symbolPack> </GeneDef> </Defs> Вааааксвеел!1! Зачем ты говоришь мне что гены могут добавлять кастомные способности, если я без понятия как их сделать?1! Ну, я сейчас объясню. Способности по своей сути делятся на три типа: Псионические(Т.е. завязанные на псионике), Идеологические(Т.е. выдаваемые определенными ролями в идеологии) и Генетические(Т.е. доступные благодаря определенным генам). ...и вот примерно на этом моменте я обнаружил небольшую неполадку, так что продолжу написание позже, когда сделаю несколько тестов. Если быть конкретным: будет-ли работать способность БЕЗ указания родительской категории. А теперь о кастомных категориях и иконках. Чтобы создать категорию в папке "Defs" создаем файл "GeneCategoryDefs.xml" внутри пишем: <?xml version="1.0" encoding="utf-8" ?> <Defs> <GeneCategoryDef> <defName>ModGenes</defName> Рабочее название категории <label>mod genes</label> Отображаемое название категории <displayPriorityInXenotype>0</displayPriorityInXenotype> В моем понимании это редкость появления генов данной категории в ксенотипах, где чем выше число-тем более редкие это гены, но я не уверен. Возможно это вовсе порядок отображения данной категории в редакторе ксенотипа. </GeneCategoryDef> </Defs> Чтобы использовать кастомную иконку в папке с модом создаем папку "Textures", в ней папку "UI", в ней папку "Icons", далее "Genes" или "Abilities" и после кидаем туда изображение. Далее в строке "iconPath" указываем путь начиная с UI и вуаля!-ваша иконка в игре. Далее я разберусь со способностями и примусь за новый рецепт. Не вижу смысла писать о создании ксенотипов и фракций(ибо этот гайд уже доступен на просторах сообщества), так что скорее всего я попробую разобраться в имплантах или материалах.
2026-02-20 10:00:18 发布在
环世界
说点好听的...
收藏
0
0
