Вопрос о создании и редактировании модификаций

Тема в разделе "О проекте", создана пользователем Prosto_Goblin, 9 июл 2016.

  1. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    Здравствуйте уважаемые мододелы

    1. интерересует вопрос о там на каком языке пишутся и редактируются моды?

    2. при исправлении багов или внесении доработок в модификацию или игру, как производится приемка исправленных скриптов, функций?

    3. если я правильно понимаю доработкой модов написанных не HARDCORE-SK занимаются их первоиздатели; решил так потому как множество багов было описано игроками, но баги в свою очередь кочуют из версии в версию и не исправляются... на сколько возможно исправлять их моды, без их ведома, без поседствий (ну там может быть авторское право... хз)
     
    Последнее редактирование: 9 июл 2016
  2. Ivanzyfer

    Ivanzyfer Главный Редактор

    Сообщения:
    650
    Симпатии:
    53
    Оценки:
    +212 / 4
    1. C# Движок у игры Unity
     
  3. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    Приветствую всех форумчан

    хотел бы затронуть тему размещения ресурсов на карте (гейзеры, месторождения)
    файлик размещения я так понимаю этот:
    Miscellaneous_MapGenerator/Defs/MapGeneratorDefs/MapGenerators_BlueprintVillage.xml

    хотелось бы на примере данного XML кода понять как это работает

    <any> ****<\any> я так понимаю какое-то привязанное объявление
    <li>***</li> что-то типо местногообъявления

    <li Class="Genstep_ScatterThings">
    <thingDefs>
    <li>SteamGeyser</li>
    </thingDefs>

    <minSpacing>25</minSpacing>
    // как понять к какой переменной или к какому параметру относится
    данное значение? я так понимаю это размер минимального расстояния межд гейзерами при генерации?

    <extraNoBuildEdgeDist>4</extraNoBuildEdgeDist>
    // это наверное размер занимамой области (4 клетки)

    <countPer10kCellsRange>
    <min>0.7</min>
    <max>1</max>
    </countPer10kCellsRange>
    // это видимо количество гейзеров на 10 тысяч клеток

    <clearSpaceSize>30</clearSpaceSize>
    //

    <neededSurfaceType>Heavy</neededSurfaceType>
    <validators>
    // проверки?
    <li Class="ScattererValidator_Buildable">
    <radius>4</radius>
    <affordance>Heavy</affordance>
    </li>
    <li Class="ScattererValidator_NoNonNaturalEdifices">
    <radius>4</radius>
    </li>
    </validators></li>

    также для руин в данном файлике есть описание к руинам:
    <ruinDistanceRange><min>3</min>
    <max>6</max></ruinDistanceRange>
    означает ли это расстояние между размещением руин?
    мжно ли такое же текст добавить к классу месторождений?
     
  4. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    ну видимо ответа на вопрос я не дождусь... хорошо...
    тогда более общий вопрос как узнать все параметры класса объекта, к которому мы исправляет параметры в XML файлах?
    ведь если я правильно понимаю мы объявляем некий объект и присваиваем ему класс, а параметры класса задаем отдельно...
     
  5. Wlnamp

    Wlnamp Муха-мутант

    Сообщения:
    31
    Симпатии:
    1
    Оценки:
    +7 / 7
    Core_sk
    там ищи map generator папку вот пример
    <!-- Steam geysers -->
    <li Class="Genstep_ScatterThings">
    <thingDefs>
    <li>SteamGeyser</li>
    </thingDefs>
    <minSpacing>25</minSpacing>
    <extraNoBuildEdgeDist>4</extraNoBuildEdgeDist>
    <countPer10kCellsRange>- Это количество паровых геизеров на 10 тыс ячеек, ниже 2 строчки кокраз регулируют основное кол -во на карте.
    <min>0.7</min>
    <max>1</max>

    </countPer10kCellsRange>
    <clearSpaceSize>15</clearSpaceSize>
    <neededSurfaceType>Heavy</neededSurfaceType>
    <validators>
    <li Class="ScattererValidator_Buildable">
    <radius>4</radius>
    <affordance>Heavy</affordance>
    </li>
    <li Class="ScattererValidator_NoNonNaturalEdifices">
    <radius>4</radius>
    </li>
    </validators>
    </li>
     
  6. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    это как бы понятно... хотелось бы найти описание или прототипы классов как в исходниках... а так приходится только догадываться...
     
  7. Ivanzyfer

    Ivanzyfer Главный Редактор

    Сообщения:
    650
    Симпатии:
    53
    Оценки:
    +212 / 4
    Если вопрос ещё актуален — https://github.com/RimWorldMod/RimworldModdingFiles
    Тут можно найти примеры def файлов игры, шаблоны и описания параметров. Язык английский.
     
  8. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    думаю тема всегда будет актуальна пока существуют такие проекты как Ваш...

    еще такой вопрос по софту допустим для def модификаций достаточно обыкновенного текстового редактора, вопрос как отлаживать данный код? просто запускать игру и смотреть на то что названия сходятся?

    с данным типом модов в принципе все понятно кроме отладки, но есть же моды типа почти мертвого EdB, у которого модификация к версии 14 так и не появилась, там же другим типом создаются модификации.... как в них разобраться ? и как их отлаживать?
     
    Последнее редактирование: 18 окт 2016
  9. Ivanzyfer

    Ivanzyfer Главный Редактор

    Сообщения:
    650
    Симпатии:
    53
    Оценки:
    +212 / 4
    Для более сложных модов нужно знание С#
     
  10. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    ну С# кажется похож на си, так что проблем возникнуть не должно, вопрос в том чем библиотеки DLL декомпилировать... это же специализированный софт нужен...
     
  11. Prosto_Goblin

    Prosto_Goblin

    Сообщения:
    180
    Симпатии:
    8
    Оценки:
    +68 / 1
    предлагаю разобрать что-то еще не рабочее в игре например.... ну... боксерскую грушу и... стол для прокачки социальности...

    и так ... картинки я нашел в каталоге Mods\Core_SK\Textures\Things\Building\Misc :
    Holodeck1x2.png
    PunchingBag1x1.png

    как мне кажется def описание к этим картинкам должно быть в каталоге Mods\Core_SK... ищем..
    ну скорее всего нужно искать в каталог Defs...
    первым смотрю каталог JoyGiverDefs, потом JobDefs... ну потом все остальное...
    и вот в каталоге ThingDefs_Buildings файлик Buildings_Misc_SK.xml :
    <ThingDef ParentName="BuildingBase">
    <defName>Holodeck</defName>
    <label>Holosuite</label>
    <thingClass>SK.Building_Holodeck</thingClass>
    <graphicData>
    <texPath>Things/Building/Misc/Holodeck1x2</texPath>
    <graphicClass>Graphic_Single</graphicClass>
    <drawSize>(1,2)</drawSize>
    </graphicData>
    <minifiedDef>MinifiedFurniture</minifiedDef>
    <altitudeLayer>Building</altitudeLayer>
    <interactionCellOffset>(0,0,-1)</interactionCellOffset>
    <hasInteractionCell>true</hasInteractionCell>
    <statBases>
    <MaxHitPoints>180</MaxHitPoints>
    <WorkToMake>7000</WorkToMake>
    <Flammability>1.0</Flammability>
    </statBases>
    <passability>Impassable</passability>
    <castEdgeShadows>true</castEdgeShadows>
    <fillPercent>0.5</fillPercent>
    <tickerType>Normal</tickerType>
    <description>A man-able holosuite that your colonists can use to practice their social skills with.</description>
    <size>(1,2)</size>
    <costList>
    <Glass>10</Glass>
    <Plastic>20</Plastic>
    <Component>5</Component>
    <ElectronicComponents>3</ElectronicComponents>
    <Mechanism>2</Mechanism>
    </costList>
    <terrainAffordanceNeeded>Light</terrainAffordanceNeeded>
    <comps>
    <li>
    <compClass>CompMannable</compClass>
    </li>
    <li>
    <compClass>CompQuality</compClass>
    </li>
    </comps>
    <leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
    <pathCost>30</pathCost>
    <designationCategory>Misc</designationCategory>
    <rotatable>true</rotatable>
    <researchPrerequisites>
    <li>SK_TrainingFacilitiesII</li>
    </researchPrerequisites>
    </ThingDef>

    <ThingDef ParentName="BuildingBase">
    <defName>PunchingBag</defName>
    <label>Punching Bag</label>
    <thingClass>SK.Building_PunchingBag</thingClass>
    <graphicData>
    <texPath>Things/Building/Misc/PunchingBag1x1</texPath><graphicClass>Graphic_Single</graphicClass>
    <shaderType>CutoutComplex</shaderType>
    <shadowData>
    <volume>(0.3, 0.6, 0.3)</volume>
    </shadowData>
    </graphicData>
    <minifiedDef>MinifiedFurniture</minifiedDef>
    <altitudeLayer>Building</altitudeLayer>
    <interactionCellOffset>(0,0,-1)</interactionCellOffset>
    <hasInteractionCell>true</hasInteractionCell>
    <statBases>
    <MaxHitPoints>180</MaxHitPoints>
    <WorkToMake>2250</WorkToMake>
    <Flammability>1.0</Flammability>
    </statBases>
    <passability>Standable</passability>
    <fillPercent>0.5</fillPercent>
    <tickerType>Normal</tickerType>
    <description>A man-able punching bag that your colonists can use to practice their melee skills with.</description>
    <size>(1,1)</size>
    <costStuffCount>60</costStuffCount>
    <stuffCategories>
    <li>Leathery</li>
    </stuffCategories>
    <costList>
    <Sand>30</Sand>
    <Component>2</Component>
    </costList>
    <comps>
    <li>
    <compClass>CompMannable</compClass>
    </li>
    <li>
    <compClass>CompQuality</compClass>
    </li>
    </comps>
    <terrainAffordanceNeeded>Light</terrainAffordanceNeeded><leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
    <pathCost>30</pathCost>
    <designationCategory>Misc</designationCategory>
    <rotatable>true</rotatable>
    <researchPrerequisites>
    <li>SK_TrainingFacilitiesI</li>
    </researchPrerequisites></ThingDef>

    из всего этого кода и игры я могу сделать вывод, это свойства объектов для постройки, но у данных объектов похоже отсутствует назначение, возьмем к примеру другой каталог с названием: Miscellaneous_TrainingFacility\Defs\JoyGiverDefs\TrainingFacility_JoyGivers.xml

    <Defs>
    <!-- Building interaction -->
    <JoyGiverDef>
    <defName>PracticeShooting</defName><giverClass>TrainingFacility.JoyGiver_PracticeShooting</giverClass>
    <baseChance>2.5</baseChance>
    <thingDefs>
    <li>ShootingRangeTarget</li>
    </thingDefs>
    <desireSit>false</desireSit>
    <jobDef>UseShootingRange</jobDef>
    <joyKind>GamingDexterity</joyKind>
    <requiredCapacities>
    <li>Sight</li>
    <li>Manipulation</li>
    </requiredCapacities>
    </JoyGiverDef>
    <JoyGiverDef>
    <defName>PracticeMartialArts</defName><giverClass>TrainingFacility.JoyGiver_PracticeMartialArts</giverClass>
    <baseChance>2.5</baseChance>
    <thingDefs>
    <li>MartialArtsTarget</li>
    </thingDefs>
    <desireSit>false</desireSit>
    <jobDef>UseMartialArtsTarget</jobDef>
    <joyKind>GamingDexterity</joyKind>
    <requiredCapacities>
    <li>Manipulation</li>
    </requiredCapacities>
    </JoyGiverDef>
    </Defs>

    по идее что-то аналогичное должно быть и для первых 2-х строений, но такового файла я не нашел...
    как мне кажется данное описание объявляет данное строение как тренажер, причем данные тренажеры работают...

    в общем вот... хотелось бы посмотреть на то как можно данный код привести к рабочему...

    а также какие альтернативы есть к свойствам:
    TrainingFacility.JoyGiver_PracticeShooting
    ShootingRangeTarget
    UseShootingRange
    GamingDexterity
    Sight
    Manipulation
    PracticeMartialArts
    TrainingFacility.JoyGiver_PracticeMartialArts
    MartialArtsTarget
    UseMartialArtsTarget
     
  12. skyarkhangel

    skyarkhangel

    Сообщения:
    632
    Симпатии:
    635
    Оценки:
    +930 / 0
    Статус:
    Skynet machine
    Я работаю с текстовым редактором и Visual Studio, но.. планирую попробовать перейти на Xamarin Studio, в котором реализованы интересные системы дебагинга.
    Подробнее тут, можете сразу поставить.
    https://ludeon.com/forums/index.php?topic=25603.0

    P.s. Основные разработчики модов по Rimworld уже перешли на него.
     
  13. Insolent

    Insolent

    Сообщения:
    170
    Симпатии:
    23
    Оценки:
    +108 / 0
    Задрала проблема молока: поселенцам не клади в рот готовую еду, дай только за полкарты сбегать попить молока из под муффалы.
    Посему вопрос:

    Достаточно будет изменить
    в RimWorldWin 17\Mods\Core\Defs\ThingDefs_Items\Items_Resource_AnimalProduct.xml
    в ветке <defName>Milk</defName>
    <preferability>RawTasty</preferability>
    на
    <preferability>RawBad</preferability>​
    или нужно ещё что-то менять?

    Полетят ли лесом сохранки?
    Есть более удобный способ научить жрать готовое в приоритете?
     
  14. ЮрийКнязь

    ЮрийКнязь

    Сообщения:
    165
    Симпатии:
    48
    Оценки:
    +173 / 4
    При RawBad бежать через полкарты они не будут, но если молоко окажется ближе, чем готовая еда - будут пить. Если хочешь чтобы молоко пили только при полном отсутствии готовой еды - меняй на DesperateOnly
    Не полетят
    Нету.
    Более удобно - чтобы оно уже было так сделано в игре. Не только касательно молока, большинству сырой пищи надо менять RawBad на DesperateOnly. Я предлагал разрабам, описывал как и где чтобы не искали. Почему не вводится это очевидно полезное изменение - неясно.
     
    • Мне нравится! Мне нравится! x 1
    • Информативно! Информативно! x 1
    • Список