Здравствуйте уважаемые мододелы 1. интерересует вопрос о там на каком языке пишутся и редактируются моды? 2. при исправлении багов или внесении доработок в модификацию или игру, как производится приемка исправленных скриптов, функций? 3. если я правильно понимаю доработкой модов написанных не HARDCORE-SK занимаются их первоиздатели; решил так потому как множество багов было описано игроками, но баги в свою очередь кочуют из версии в версию и не исправляются... на сколько возможно исправлять их моды, без их ведома, без поседствий (ну там может быть авторское право... хз)
Приветствую всех форумчан хотел бы затронуть тему размещения ресурсов на карте (гейзеры, месторождения) файлик размещения я так понимаю этот: 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> означает ли это расстояние между размещением руин? мжно ли такое же текст добавить к классу месторождений?
ну видимо ответа на вопрос я не дождусь... хорошо... тогда более общий вопрос как узнать все параметры класса объекта, к которому мы исправляет параметры в XML файлах? ведь если я правильно понимаю мы объявляем некий объект и присваиваем ему класс, а параметры класса задаем отдельно...
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>
это как бы понятно... хотелось бы найти описание или прототипы классов как в исходниках... а так приходится только догадываться...
Если вопрос ещё актуален — https://github.com/RimWorldMod/RimworldModdingFiles Тут можно найти примеры def файлов игры, шаблоны и описания параметров. Язык английский.
думаю тема всегда будет актуальна пока существуют такие проекты как Ваш... еще такой вопрос по софту допустим для def модификаций достаточно обыкновенного текстового редактора, вопрос как отлаживать данный код? просто запускать игру и смотреть на то что названия сходятся? с данным типом модов в принципе все понятно кроме отладки, но есть же моды типа почти мертвого EdB, у которого модификация к версии 14 так и не появилась, там же другим типом создаются модификации.... как в них разобраться ? и как их отлаживать?
ну С# кажется похож на си, так что проблем возникнуть не должно, вопрос в том чем библиотеки DLL декомпилировать... это же специализированный софт нужен...
предлагаю разобрать что-то еще не рабочее в игре например.... ну... боксерскую грушу и... стол для прокачки социальности... и так ... картинки я нашел в каталоге Mods\Core_SK\Textures\Things\Building\Misc : Holodeck1x2.png PunchingBag1x1.png как мне кажется def описание к этим картинкам должно быть в каталоге Mods\Core_SK... ищем.. ну скорее всего нужно искать в каталог Defs... первым смотрю каталог JoyGiverDefs, потом JobDefs... ну потом все остальное... и вот в каталоге ThingDefs_Buildings файлик Buildings_Misc_SK.xml : Спойлер: Holodeck <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> Спойлер: PunchingBag <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 Спойлер: 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
Я работаю с текстовым редактором и Visual Studio, но.. планирую попробовать перейти на Xamarin Studio, в котором реализованы интересные системы дебагинга. Подробнее тут, можете сразу поставить. https://ludeon.com/forums/index.php?topic=25603.0 P.s. Основные разработчики модов по Rimworld уже перешли на него.
Задрала проблема молока: поселенцам не клади в рот готовую еду, дай только за полкарты сбегать попить молока из под муффалы. Посему вопрос: Спойлер Достаточно будет изменить в RimWorldWin 17\Mods\Core\Defs\ThingDefs_Items\Items_Resource_AnimalProduct.xml в ветке <defName>Milk</defName> <preferability>RawTasty</preferability> на <preferability>RawBad</preferability>или нужно ещё что-то менять? Полетят ли лесом сохранки? Есть более удобный способ научить жрать готовое в приоритете?
При RawBad бежать через полкарты они не будут, но если молоко окажется ближе, чем готовая еда - будут пить. Если хочешь чтобы молоко пили только при полном отсутствии готовой еды - меняй на DesperateOnly Не полетят Нету. Более удобно - чтобы оно уже было так сделано в игре. Не только касательно молока, большинству сырой пищи надо менять RawBad на DesperateOnly. Я предлагал разрабам, описывал как и где чтобы не искали. Почему не вводится это очевидно полезное изменение - неясно.