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

Discussion in 'О проекте' started by Prosto_Goblin, Jul 9, 2016.

  1. Prosto_Goblin

    Prosto_Goblin

    Messages:
    181
    Likes Received:
    8
    Ratings:
    +68 / 1
    Здравствуйте уважаемые мододелы

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

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

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

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

    Messages:
    652
    Likes Received:
    53
    Ratings:
    +214 / 4
    1. C# Движок у игры Unity
     
  3. Prosto_Goblin

    Prosto_Goblin

    Messages:
    181
    Likes Received:
    8
    Ratings:
    +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

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

    Wlnamp Машгон

    Messages:
    35
    Likes Received:
    1
    Ratings:
    +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

    Messages:
    181
    Likes Received:
    8
    Ratings:
    +68 / 1
    это как бы понятно... хотелось бы найти описание или прототипы классов как в исходниках... а так приходится только догадываться...
     
  7. Ivanzyfer

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

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

    Prosto_Goblin

    Messages:
    181
    Likes Received:
    8
    Ratings:
    +68 / 1
    думаю тема всегда будет актуальна пока существуют такие проекты как Ваш...

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

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

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

    Messages:
    652
    Likes Received:
    53
    Ratings:
    +214 / 4
    Для более сложных модов нужно знание С#
     
  10. Prosto_Goblin

    Prosto_Goblin

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

    Prosto_Goblin

    Messages:
    181
    Likes Received:
    8
    Ratings:
    +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

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

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

    Insolent

    Messages:
    170
    Likes Received:
    23
    Ratings:
    +109 / 0
    Задрала проблема молока: поселенцам не клади в рот готовую еду, дай только за полкарты сбегать попить молока из под муффалы.
    Посему вопрос:

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

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

    ЮрийКнязь

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