1. Набор в модераторы и разработчики

    Мы ищем энтузиастов, готовых помочь сделать DaraSims лучше!
    Если у тебя есть желание стать частью персонала, взяться за развитие разделов форума или делиться с читателями интересными статьями, присоединяйся!
    Скрыть объявление

Копаемся в игровых файлах Симс 4

Тема в разделе "Геймплей Симс 4", создана пользователем Lamare, 21 апр 2020.

Модераторы: Дэнни Калифорния
  1. Lamare

    ☁☀
    Lamare
    Сообщения:
    10.619
    Симпатии:
    4.966
    Баллы:
    340
    Репутация:
    13.323
    Награды:
    21
    Че мы все по личкам да по скайпам, если можно нести знания в массы? Тема ковыряния игровых файлов - она и техническая, и креаторская, но тут мы сфокусируемся на том, где и как мы добываем информацию об игровом процессе ради любопытства. Поэтому и создаю ее в разделе геймплея.

    Где можно почерпнуть инфы про геймплей?
    1. В тюнинг-файлах xml, которые можно извлечь из игры с помощью XML Extractor for The Sims 4
      Скрытое содержание:
      Скрытый текст: Содержание могут увидеть только группы: Администратор, Куратор, Модератор, Разработчик, СоАдминистратор, Юзер.
      или Sims 4 Studio.
    2. В скриптах на пайтоне, которые можно посмотреть с помощью PyCharm и набора йуного моддера.
    Прошу прощения у всех, кого покоробит, как я все это называю по-русски, потому что я не знаю, как вы привыкли. Также я не претендую на истину в затрагиваемых вопросах, а просто делюсь своим опытом и наблюдениями.

    Очередной вопрос "что?куда?" заставил выложить кое-какие заметки. Может быть, кому-то пригодится или даже захочется обсудить?
     
    Последнее редактирование: 22 апр 2020
    Rirun, KostyaRiKi и Stranger нравится это.
     
  2. Lamare

    ☁☀
    Lamare
    Сообщения:
    10.619
    Симпатии:
    4.966
    Баллы:
    340
    Репутация:
    13.323
    Награды:
    21
    Как извлечь xml-файлы с помощью XML Extractor for The Sims 4

    Я пользуюсь программой scumbumbo, потому что а) она достает файлы даже не установленных дополнений/наборов, и б) удобненько сортирует все по папочкам. Ссылку дала выше.

    Итак, мы на компьютере, где установлена Симс 4.
    1. Обновляем игру через Origin, если она не обновлена, а нам нужны актуальные файлы последней версии.
    2. Скачиваем XML Extractor и распаковываем или устанавливаем его (не помню точно, что делала в первый раз).
    3. Создаем в любом месте папку, куда мы хотим извлечь тучу (!) файлов xml. Я называю папки по версиям игры для удобства.
    4. Запускаем файл XML Extractor for The Sims 4.exe и настраиваем:

      [​IMG]

      • Назначаем путь к игре (game folder) и к новой папке под файлы (destination folder), ставим галочки.
      • Number of threads - чем больше, тем быстрее пойдет процесс извлечения (наверное).
      • Naming - я выбираю "Name Only", чтобы каждый файл назывался понятно по смыслу.

    5. Нажимаем кнопку "Begin Extracting" и ждем несколько минут. В итоге видим в папке кучу папок с папками, а в них файлы xml:
    [​IMG]

    Файлы рассортированы по дополнениям и тематике. Открыть их можно с помощью обычного блокнота, но лучше с помощью Notepad++
    Скрытое содержание:
    Скрытый текст: Содержание могут увидеть только группы: Администратор, Куратор, Модератор, Разработчик, СоАдминистратор, Юзер.
    или другого редактора кода, потому что они раскрашивают синтаксис и повышают удобочитаемость всего этого безобразия (серьезно, очень сильно повышают).
     
    Последнее редактирование: 21 апр 2020
    Меридит нравится это.
     
  3. Lamare

    ☁☀
    Lamare
    Сообщения:
    10.619
    Симпатии:
    4.966
    Баллы:
    340
    Репутация:
    13.323
    Награды:
    21
    Поговорим про карточки шанса

    @Меридит интересовалась, где и как их достать. Надеюсь, не против, что я напишу тут вместо лички :smile:

    Карточки шанса по карьерам я начинаю собирать с карьерного Super Interaction. Садоводческий находится тут:
    Если в нем полазить, можно увидеть ссылки на карточки шанса для этой карьеры и условия их выпадения.

    Зачем-то, не знаю зачем, во всех таких файлах имеется код, связанный с карьерой преступников (Criminal). Возможно, это какой-то артефакт копипасты или не знаю чего, но я его игнорирую. Также есть карточки от достоинств характера (например, career_ResponsibleTrait_GP05_Card00), но их уже собирать не надо, они есть на сайте.

    Тебя будут интересовать вот такие ссылки на карточки:

    [​IMG]

    Программа-экстрактор была так любезна, что добавила названия файлов в виде комментария к номерному референсу (этот номер что-то вроде id конкретного элемента, как я понимаю).

    То есть первая карточка шанса садовода имеет номер 187489 и называется career_Gardener_chanceCard_01. Файл с таким названием можно найти с помощью поиска по папке в проводнике (найдется в папке \EP05\snippet). Там рядышком лежат все 18 карточек с подобными названиями. Внутри файла карточки находится описание самой карточки, ссылки на тексты уведомлений (синеньких) и ссылки на loot - награды/последствия выбора.

    Но вернемся в файл si_Career_Gardener. Условия, при которых выпадает карточка, описаны в блоке Career_ChooseCard.

    [​IMG]

    Видим, что первая карточка выпадает на основной ветке карьеры садовода до 2 ступени включительно.

    Для примера, 15-я карточка (Career_ChanceCard_15) выпадает у флористов (Gardener_careerTrack3_Florist), начиная с 5 ступени. Ну и так далее.

    Теперь перейдем в файл карточки. Там понятная структура. Я их читаю с конца обычно. Пример первой карточки:
    • Название: "Ситуация с ирригацией"
    • Описание: "Позвонил важный клиент с жалобой на сломанные разбрызгиватели!\n\n{0.SimFirstName} отправляется к нему домой, чтобы разобраться с этой проблемой. Как {M0.он}{F0.она} поступит? Заменит систему орошения или польет растения вручную, не доверяя технологиям?"
    • Первый вариант выбора: "Полить вручную"
      • Ссылка на уведомление: notification_careerGardener_chanceCard_01_2A
      • Ссылка на результат: loot_JobPerformance_Loss_Small_Gardener
    • Второй вариант: "Заменить систему орошения"
      • Уведомление: notification_careerGardener_chanceCard_01_1A
      • Результат: loot_JobPerformance_Gain_Small_Gardener

    Из общих советов по чтению файлов xml.
    • Важно обращать внимание на вложенность тегов, чтобы понимать, что к чему относится.
    • Искать в проводнике windows имеет смысл только названия файлов, поиск по содержимому файлов требует длительной индексации и зачастую вообще отключен. Хотя иногда я могу в проводнике вбить референс номер, и находятся все файлы, в которых он встречается. Но поиск по словам и комментариям через проводник у меня не работает. Содержимое файлов можно обыскивать с помощью того же Notepad++ (Ctrl+Shift+F - Find in Files). Это долгий процесс, если искать по целой общей папке, но если надо, то помогает.
    • Стоит проверять инфу непосредственно в игре, чтобы убедиться, что правильно понял суть файла, что не наткнулся на неиспользуемый код и все такое.
     
    Меридит нравится это.
     
  4. Lamare

    ☁☀
    Lamare
    Сообщения:
    10.619
    Симпатии:
    4.966
    Баллы:
    340
    Репутация:
    13.323
    Награды:
    21
    Расшифровываем наследование сверх-типов

    Я тут пока болтаю сама с собой, но вы можете подключиться в любой момент :hihi: у меня просто накопилась инфа.

    Обсуждали тут с Redhead расы для ее эксперимента про сверхъестественную генетику, и она даже нашла баг в коде с русалочьей чертой, из-за которого получаются глючные гибриды. С ее разрешения, публикую начало нашего разговора ради науки.

    Привет. Это в xml файлах.

    [...]

    В файле traits.trait_tracker расписано наследование оккультных черт. Код построен в виде дерева тегов, один вложен в другой. Тебя будет интересовать TRAIT_INHERITANCE. В него вложено много блоков outcomes, каждый из которых - это как отдельная строка в той таблице, и в ней такие данные:
    - trait - черта ребенка (может быть несколько)
    - parent_a_blacklist - черный список черт первого родителя (у него не может быть таких черт)
    - parent_a_whitelist - белый список черт первого родителя (у него должны быть такие черты)
    - parent_b_blacklist - черный список черт второго родителя
    - parent_b_whitelist - белый список черт второго родителя

    Для примера кусок кода:

    [​IMG]

    Если один из родителей вампир, но НЕ на темной лей-линии, а другой родитель человек, то в результате у них может получиться вампир или человек в равной степени.

    У некоторых черт будет параметр weight (вес), который влияет на рандом. Где он не написан, там игрой подразумевается значение веса по умолчанию, которое прописано совсем в другой части кода, и его долго искать))) Допустим, что вес по умолчанию 1, это было бы логично. Тогда такой пример:

    [​IMG]

    Если один родитель на темной лей-линии, а другой человек, то ребенок может быть вампиром или человеком, при этом у вампирства шанс в четыре раза выше. Если проверить в игре, примерно так оно и будет - темная лей-линия способствует рождению вампиров.

    Некоторые теги будут пустые, на них не обращай внимание. Например:

    [​IMG]

    Тут parent_a_blacklist и parent_b_blacklist пустые, родительские черты прописаны только для одного родителя в теге parent_a_whitelist. Ну и расшифрую: если у родителя есть черты Чародей и Древний род, то ребенок будет иметь черту Древний род.

    Можно отдельно открыть файл каждой черты и посмотреть, как она называется и какие-то ее свойства. Например, trait_Occult_WitchOccult_BloodlineWeak. Ищешь поиском по папке файл с таким названием, открываешь. Эта черта называется Угасающий род. С ней несовместимы черты чистого пришельца, чародея древнего рода и чародея чистокровного рода. Ну и там есть описание, возрастные категории, у которых может быть черта, мудлеты и еще всякое бывает. Для твоей таблицы тебе наверно только названия понадобятся.

    Надеюсь, я тебе нормально все объяснила. Если что, буду рада помочь. :smile:


    Еще хочу уточнить, что сомневаюсь насчет того, как понимать несколько черт в whitelist - должны ли у родителя быть все перечисленные черты или хотя бы одна. Я написала тебе в примере "и", а не "или", предполагая, что все, но я не могу быть в этом уверена. Судя по файлам, черты trait_Occult_WitchOccult и trait_Occult_WitchOccult_BloodlineAncient не конфликтуют, то есть возможно, что один сим может иметь обе эти черты. Тогда было бы логично, что для рождения ребенка с чертой древнего рода чародеев требуется родитель, имеющий черту древнего рода, а не просто чародей. Возможно, если изучить весь файл полностью, то можно будет по логике догадаться, как это понимать правильно. Если ты можешь как-то проверить это в игре, то будет даже надежнее.
     
     
  5. Lamare

    ☁☀
    Lamare
    Сообщения:
    10.619
    Симпатии:
    4.966
    Баллы:
    340
    Репутация:
    13.323
    Награды:
    21
    Ищем списки предметов магических ларьков

    У нас есть новый адепт :devil:

    @KostyaRiKi, списки товаров магических стендов я, кажется, нашла тут:
    purchase_MarketStalls_Magic_Broom
    purchase_MarketStalls_Magic_Reagent
    purchase_MarketStalls_Magic_Wand

    Это в \GP08\interaction

    Там есть список purchase_list_option и в нем несколько списков random_items (которые, видимо, перетасовываются в случайном порядке из раза в раз). Например:

    [​IMG]

    Видимо, это своеобразный id предмета и его рандомный вес. Проблема в том, как расшифровать эти номера... На комментарии, которые подставляются к некоторым из них, не стоит обращать внимания (по крайней мере, у меня они ошибочно подставлены).

    Может быть, можно сопоставить номера с какими-то данными объектов в студии, но у меня нет Мира магии и соответствующих объектов в студии тоже, так что тут я не знаю.

    Если поискать эти номера по папке, то они встречаются кое-где (как награда дуэли, как ингредиент для котла). Некоторые (например, 222625) встречаются в файле objects.collection_manager как коллекционные предметы из магической коллекции.

    В папке \GP08\object их нет, или если есть, то явно не все.

    Тут у меня затык, где искать их названия. @Rirun когда-то раньше озадачивалась чем-то подобным, может быть, она подскажет, куда такие номера объектов ее в итоге привели.
     
    KostyaRiKi нравится это.
     
  6. Rirun

    Вроде тут
    Rirun
    Сообщения:
    7.964
    Симпатии:
    2.549
    Баллы:
    250
    Репутация:
    8.903
    Награды:
    16
    @KostyaRiKi, ты точно понимаешь зачем тебе это? Я про список рандомных товаров на прилавке? Эти вероятностные веса не дадут никакой ощутимо полезной информации игрокам скорее всего. Разве что, данные о том, что какой-то товар бывает ну оооооочень редко, но бывает. Просто погружение в эти поиски приводит примерно вот к такому состоятнию:

    [​IMG]
    Мое фото, когда я разбиралась с садоводством и рыбалкой. С последней еще не закончила.
    Вот эти проще всего определить. По редкости и некоторым другим параметрам коллекции можно примерно сопоставить что это.
    А вот с этими только сопоставлять игровой опыт и данные из файлов. Если поиск по папке не дал тебе файлов с таким id в первой строчке и говорящим названием, конечно. С рыбами, например, у улова и элемента коллекции id не совпадают и никак не фигурируют в одном и том же файле. В садоводстве такая закономерность всплыла.
     
    KostyaRiKi и Lamare нравится это.
     
  7. KostyaRiKi

    Активист
    KostyaRiKi
    Сообщения:
    603
    Симпатии:
    1.330
    Баллы:
    105
    Репутация:
    2.300
    Награды:
    6
    В Волшебном мире есть особые ларьки, где продаются *эксклюзивные* предметы, то есть их можно купить ТОЛЬКО в тех ларьках (волшебные предметы + фрукты питайи, всякие драгоценные металлы и тому подобие). Если и делать обзор про волшебный мир, то тогда стоит указать, что можно там купить.

    Можно указать только те предметы, которые появились с набором (волшебные палочки, мётлы, книги с заклинаниями). Их достать будет намного легче.
     
     
  8. Rirun

    Вроде тут
    Rirun
    Сообщения:
    7.964
    Симпатии:
    2.549
    Баллы:
    250
    Репутация:
    8.903
    Награды:
    16
    с неволшебными предметами могу помочь. По растениям у меня точно есть коды. Посмотрю, что еще есть в записях. Если поделишься своих архивом xml, помогу составить список. Но вообще, для начала просто подойди к прилавкам в игре, запиши, что там видишь и посчитай потом по количеству id, на сколько различаются списки из файлов и твои наблюдения. И только при несовпадении стоит углубляться в дебри. Сэкономит много времени, правда.

    П.С. предлагаю на этом этапе уже в личку перейти.
     
    KostyaRiKi нравится это.
     
  9. Zzz-Danaya

    На недельку до 2-го...
    Zzz-Danaya
    Сообщения:
    2.291
    Симпатии:
    961
    Баллы:
    150
    Репутация:
    3.740
    Награды:
    8
    Так как игра становится все более богатой на разные лоты, то решила сделать под себя все городки (типа нулевого сохранения) - люблю периодически начинать игру с нуля (особенно, когда игра "теряет" связи в семейном древе), а ставить бары-рестораны и переодевать всех с учетом сезонов каждый раз уже лень, много времени занимает. И столкнулась с ситуацией - сколько бы не было в игре неписей (у меня сейчас около 150 семей-бомжей, как одиночек, так и семейных), но игра продолжает генерить лишних (с моей т.зр) симов. Раздражает безумно!
    Понятно, что мод на неписей спасает, но иногда и он создает неудобства - когда он был включен, у меня ни в Стрейнджервилле, ни в Бритчестере не генерились нужные персонажи (военные, ученые, конспирологи, студенты, преподы). После того, как включила, случилось просто нашествие, симов 30 за раз на переодевание встало в очередь. )))
    Поэтому очень ищу ответ на вопрос - сколько неписей на каждую ситуацию/город заложено в игре? Есть ли где такие данные? Или где и как их можно посмотреть? Должно же быть где-то в коде это записано?
     
     
  10. Rirun

    Вроде тут
    Rirun
    Сообщения:
    7.964
    Симпатии:
    2.549
    Баллы:
    250
    Репутация:
    8.903
    Награды:
    16
    Zzz-Danaya, я при случае гляну. Но ты ведь знаешь, куда стучаться, чтобы напомнить об этом :smile: У меня где-то через недельку запланирован очередной поход по файлам
     
    Lamare нравится это.
     
  11. Burinis

    Активист
    Burinis
    Сообщения:
    922
    Симпатии:
    284
    Баллы:
    65
    Пол:
    Мужской
    Репутация:
    141
    Награды:
    0
    Извините меня, люди добрые, но у меня вопрос: какой файл отвечает за изменение расстояния от камеры до сима по умолчанию? Здесь я уже задавал вопрос об этом:
    Satterlly мне говорила, что
     
     
  12. Burinis

    Активист
    Burinis
    Сообщения:
    922
    Симпатии:
    284
    Баллы:
    65
    Пол:
    Мужской
    Репутация:
    141
    Награды:
    0
    Не смог получить нужный мне ответ в теме про помощь креаторам, поэтому я обращусь в тему для "программистов":
    Кто-нибудь из вас знает, что отвечает за нормальную работу телеканалов в Sims 4? Просто я никак не могу создать мод на канал для аниме, не замещая имеющиеся каналы.
     
     
Модераторы: Дэнни Калифорния

Поделиться этой страницей