Если вы хотите опубликовать свой код, отправьте его мне в ЛС, или создайте тему на форуме, придерживаясь оформления аналогичных тем.
Предисловие
Блуждая в исходниках игры, я наткнулся на странные записи и параметры, вроде размера текстуры на существе, включении и отключении теней, настройки размера gif-анимаций, и так далее. Хотя "так далее" - это мягко сказано, записей оказалось явно за 1000. Я долго не мог понять, как их модифицировать и использовать, пока не наткнулся на несколько интересных файлов, о которых я расскажу ниже.
Туториалы:
Сам по себе, код "prop", введенный в игровую консоль (которая вызывает сочетанием клавиш Ctrl+Shift+C), ничего не делает. А Maxis дали для него очень исчерпывающее описание.
Код prop - это команда для вызова некоторого игрового параметра, который можно изменять по своему усмотрению. Таких параметров очень много, и не все могут быть полезны. Итак, как же использовать этот код?
Все дело в файле Properties.txt, который лежит по пути Spore:GA>Data>Config. Именно в нем находится список всех параметров, которые можно вызывать и изменять кодом "prop". Рассмотрим список более детально:
Строки, начинающиеся с символа #, являются комментариями. Можно вносить свои комментарии.
Строки, начинающиеся со слова "property" - это сами параметры. Содержат в себе (через пробел):
Название параметра
Путь к файлу конфигурации в архивах игры, закодированный хэш-номером (начинается с 0x), либо описанный текстом (начинается с "(hash")
Тип переменной, которая может быть указана в параметре (типы bool, int32, string и т.д.).
Кто хотя бы немного знаком с языками программирования, тот знает, что обозначают типы переменной. Для остальных привожу небольшую трактовку:
bool - логический тип, принимает всего 2 значения - "Да" и "Нет". То есть, 1 или 0, True или False.
int32 - целочисленный тип, содержит в себе только целые числа, максимальное число - 2 в 32 степени.
float - тип с плавающей точкой, может содержать в себе нецелые числа.
char - символьный тип, может содержать в себе символы (текст).
Остальные типы можете поискать в интернете.
Теперь, зная название параметра, вы можете изменять его в игре. Для этого вызовите консоль, введите команду prop и имя параметра через пробел. Например, "prop OptionDiskCacheSize". Вы увидите в консоли строку "OptionDiskCacheSize = unknown (unknown)".
Почему так? - спросите вы. Об этом чуть позднее.
Еще одна особенность кода "prop" - все изменения, внесенные через консоль для какого-либо параметра, будут работать до перезапуска игры. То есть, перезапустив игру, вам снова придется вводить этот код с нужными параметрами. Чтобы этого избежать, читаем следующий туториал.
Существует еще один файл - ConfigManager.txt. Находится он в той же директории, что и Properties.txt. Он хранит в себе значения для параметров, указанных в файле Properties.txt, а также некоторые системные скрипты. Но, по умолчанию, в нем нет этих самых значений.
Помните, в первом туториале вы вводили в консоль команду "prop OptionDiskCacheSize", и вам выдало значение "unknown". А все потому, что в файле ConfigManager не было указано значение для этого параметра. Еще не запутались? Вот вам таблица для понимания:
Из файла ConfigManager.txt задается значение для параметра, указанного в файле Properties.txt. После чего игра использует параметр из файла Properties.txt. Например, если указать параметр "Размер текстуры существа", а в конфигурации указать "1024", то размер текстуры у существа будет 1024.
Но ведь на таблице стрелка двусторонняя! Потому что кодом "prop" можно задавать значения для параметра прямо из игры. НО! Как уже говорилось ранее, все значения, заданные кодом "prop", обнуляются после перезапуска игры (или принимают значение, указанное в файле конфигурации).
Итак, зачем же нужен файл ConfigManager.txt? Он служит для того, чтобы задавать значения параметрам из файла Properties.txt. Вкратце, это нужно для того, чтобы каждый раз не вводить руками коды в игре. Если вы хотя бы примерно поняли принцип работы этих двух файлов, можете переходить к следующему туториалу.
Итак, после изучения теории, можно переходить к практике. Задача урока - улучшить графику текстуры существа посредством изменения игровых параметров. Приступим!
Я достал из исходников игры два кода, отвечающих за размер текстуры, и за высоту карты рельефа текстуры. Выглядят они вот так:
property skinpaintTextureSize (hash(skinpaintTextureSize)) int 512
property skinpaintBumpHeight (hash(skinpaintBumpHeight)) float 5.0 # range = 0-10
Все элементы кода были описаны в туториале 1. Разве что здесь присутствует числовое значение по умолчанию (которое не работает) и комментарий после кода. Теперь нам надо вписать этот код в файл Properties.txt. Здесь все просто - выделяем код, копируем, открываем файл Properties.txt блокнотом, и вставляем код в конец текста. Можете отделить свои коды, введя перед ними строчку с комментариями.
Сохраняйте файл, и смело заходите в Spore. Введите код "prop skinpaintTextureSize" или "prop skinpaintBumpHeight". Если у вас появились строчки вроде "skinpaintTextureSize = 512 (int32)" - поздравляю! Если же вы видите строчку "no such property" - проверьте ваш код на опечатки, и скопировали ли вы его полностью.
После успешного введения кода, можно изменить размер текстуры и карты рельефа. Я использую такие значения для кода:
prop skinpaintBumpHeight 60
prop skinpaintTextureSize 1024
Пробуйте свои значения. Изменяя их прямо в игре, можно легко подобрать наилучший вид текстуры.
Теперь ваши существа будут выглядеть еще круче. В следующем туториале я расскажу, как присвоить новым параметрам постоянные значения, чтобы не вводить коды каждый раз после перезагрузки игры.
После того, как вы добавили свои параметры в файл Properties.txt, было бы очень удобно присвоить им значения, загружаемые сразу после запуска игры (как будто вы ввели чит-код). Прописываются все значения в файле ConfigManager.txt (об этом уже говорилось в уроке 2).
Итак, как же прописать значение для параметра? Сам код будет выглядеть так:
'тип значения' 'имя параметра' 'значение'
Например, код для изменения размера текстуры на существе будет выглядеть вот так:
intProp skinpaintTextureSize 4096
А для отключения заставки при запуске игры - вот так:
boolProp playOpeningMovie false
В обоих кодах я выделил в начале типы значения "intProp" и "boolProp". Соответственно, int - численный тип, принимающий числа как значения; bool - условный тип, принимающий условия true или false (1 или 0 соответственно). Но почему я указал в типах переменной этих кодов именно эти типы - int и bool? Ответ просто - в файле Properties.txt эти коды выглядят так:
Именно по последним словам в коде - int и bool, я определил тип значения для кода в файле ConfigManager.txt.
Привожу небольшую табличку параметров для обоих файлов:
Слева - параметр в Properties.txt; справа - параметр в ConfigManager.txt
int > intProp
bool > boolProp
floar > floatProp
И, в заключение этого туториала, пример прописывания коду постоянного значения.
Имеет мы код:
В коде тип значения указан как "float". Следовательно, код для файла ConfigManager.txt будет начинаться с "floatProp". По шаблону, указанному выше, пишем код для ConfigManager.txt:
'тип значения' 'имя параметра' 'значение'
floatProp skinpaintBumpHeight 50.00 # - этот символ служит для комментариев. После него пишется любой текст.
Сохраняем файл, запускаем игру. Для проверки вводим в консоль код "prop skinpaintBumpHeight". Если вы видите значение из файла ConfigManager.txt - поздравляю вас!
Все темы на форуме с кодами:
[Properties] Force Save без модов
[Properties] Улучшение записи видео в игре
[Properties] Отключение начальной заставки
[Properties] Улучшение текстуры существ в редакторе
[Properties] Графические эффекты в редакторе существ
Предисловие
Блуждая в исходниках игры, я наткнулся на странные записи и параметры, вроде размера текстуры на существе, включении и отключении теней, настройки размера gif-анимаций, и так далее. Хотя "так далее" - это мягко сказано, записей оказалось явно за 1000. Я долго не мог понять, как их модифицировать и использовать, пока не наткнулся на несколько интересных файлов, о которых я расскажу ниже.
Туториалы:
Сам по себе, код "prop", введенный в игровую консоль (которая вызывает сочетанием клавиш Ctrl+Shift+C), ничего не делает. А Maxis дали для него очень исчерпывающее описание.
Код prop - это команда для вызова некоторого игрового параметра, который можно изменять по своему усмотрению. Таких параметров очень много, и не все могут быть полезны. Итак, как же использовать этот код?
Все дело в файле Properties.txt, который лежит по пути Spore:GA>Data>Config. Именно в нем находится список всех параметров, которые можно вызывать и изменять кодом "prop". Рассмотрим список более детально:
Строки, начинающиеся с символа #, являются комментариями. Можно вносить свои комментарии.
Строки, начинающиеся со слова "property" - это сами параметры. Содержат в себе (через пробел):
Кто хотя бы немного знаком с языками программирования, тот знает, что обозначают типы переменной. Для остальных привожу небольшую трактовку:
bool - логический тип, принимает всего 2 значения - "Да" и "Нет". То есть, 1 или 0, True или False.
int32 - целочисленный тип, содержит в себе только целые числа, максимальное число - 2 в 32 степени.
float - тип с плавающей точкой, может содержать в себе нецелые числа.
char - символьный тип, может содержать в себе символы (текст).
Остальные типы можете поискать в интернете.
Теперь, зная название параметра, вы можете изменять его в игре. Для этого вызовите консоль, введите команду prop и имя параметра через пробел. Например, "prop OptionDiskCacheSize". Вы увидите в консоли строку "OptionDiskCacheSize = unknown (unknown)".
Почему так? - спросите вы. Об этом чуть позднее.
Еще одна особенность кода "prop" - все изменения, внесенные через консоль для какого-либо параметра, будут работать до перезапуска игры. То есть, перезапустив игру, вам снова придется вводить этот код с нужными параметрами. Чтобы этого избежать, читаем следующий туториал.
Существует еще один файл - ConfigManager.txt. Находится он в той же директории, что и Properties.txt. Он хранит в себе значения для параметров, указанных в файле Properties.txt, а также некоторые системные скрипты. Но, по умолчанию, в нем нет этих самых значений.
Помните, в первом туториале вы вводили в консоль команду "prop OptionDiskCacheSize", и вам выдало значение "unknown". А все потому, что в файле ConfigManager не было указано значение для этого параметра. Еще не запутались? Вот вам таблица для понимания:
Из файла ConfigManager.txt задается значение для параметра, указанного в файле Properties.txt. После чего игра использует параметр из файла Properties.txt. Например, если указать параметр "Размер текстуры существа", а в конфигурации указать "1024", то размер текстуры у существа будет 1024.
Но ведь на таблице стрелка двусторонняя! Потому что кодом "prop" можно задавать значения для параметра прямо из игры. НО! Как уже говорилось ранее, все значения, заданные кодом "prop", обнуляются после перезапуска игры (или принимают значение, указанное в файле конфигурации).
Итак, зачем же нужен файл ConfigManager.txt? Он служит для того, чтобы задавать значения параметрам из файла Properties.txt. Вкратце, это нужно для того, чтобы каждый раз не вводить руками коды в игре. Если вы хотя бы примерно поняли принцип работы этих двух файлов, можете переходить к следующему туториалу.
Итак, после изучения теории, можно переходить к практике. Задача урока - улучшить графику текстуры существа посредством изменения игровых параметров. Приступим!
Я достал из исходников игры два кода, отвечающих за размер текстуры, и за высоту карты рельефа текстуры. Выглядят они вот так:
Код
property skinpaintTextureSize (hash(skinpaintTextureSize)) int 512
property skinpaintBumpHeight (hash(skinpaintBumpHeight)) float 5.0 # range = 0-10
Все элементы кода были описаны в туториале 1. Разве что здесь присутствует числовое значение по умолчанию (которое не работает) и комментарий после кода. Теперь нам надо вписать этот код в файл Properties.txt. Здесь все просто - выделяем код, копируем, открываем файл Properties.txt блокнотом, и вставляем код в конец текста. Можете отделить свои коды, введя перед ними строчку с комментариями.
Сохраняйте файл, и смело заходите в Spore. Введите код "prop skinpaintTextureSize" или "prop skinpaintBumpHeight". Если у вас появились строчки вроде "skinpaintTextureSize = 512 (int32)" - поздравляю! Если же вы видите строчку "no such property" - проверьте ваш код на опечатки, и скопировали ли вы его полностью.
После успешного введения кода, можно изменить размер текстуры и карты рельефа. Я использую такие значения для кода:
prop skinpaintBumpHeight 60
prop skinpaintTextureSize 1024
Пробуйте свои значения. Изменяя их прямо в игре, можно легко подобрать наилучший вид текстуры.
Теперь ваши существа будут выглядеть еще круче. В следующем туториале я расскажу, как присвоить новым параметрам постоянные значения, чтобы не вводить коды каждый раз после перезагрузки игры.
После того, как вы добавили свои параметры в файл Properties.txt, было бы очень удобно присвоить им значения, загружаемые сразу после запуска игры (как будто вы ввели чит-код). Прописываются все значения в файле ConfigManager.txt (об этом уже говорилось в уроке 2).
Итак, как же прописать значение для параметра? Сам код будет выглядеть так:
'тип значения' 'имя параметра' 'значение'
Например, код для изменения размера текстуры на существе будет выглядеть вот так:
intProp skinpaintTextureSize 4096
А для отключения заставки при запуске игры - вот так:
boolProp playOpeningMovie false
В обоих кодах я выделил в начале типы значения "intProp" и "boolProp". Соответственно, int - численный тип, принимающий числа как значения; bool - условный тип, принимающий условия true или false (1 или 0 соответственно). Но почему я указал в типах переменной этих кодов именно эти типы - int и bool? Ответ просто - в файле Properties.txt эти коды выглядят так:
Код
property skinpaintTextureSize (hash(skinpaintTextureSize)) int
property playOpeningMovie (hash(playOpeningMovie)) bool
property playOpeningMovie (hash(playOpeningMovie)) bool
Именно по последним словам в коде - int и bool, я определил тип значения для кода в файле ConfigManager.txt.
Привожу небольшую табличку параметров для обоих файлов:
Слева - параметр в Properties.txt; справа - параметр в ConfigManager.txt
int > intProp
bool > boolProp
floar > floatProp
И, в заключение этого туториала, пример прописывания коду постоянного значения.
Имеет мы код:
Код
property skinpaintBumpHeight (hash(skinpaintBumpHeight)) float
В коде тип значения указан как "float". Следовательно, код для файла ConfigManager.txt будет начинаться с "floatProp". По шаблону, указанному выше, пишем код для ConfigManager.txt:
Код
'тип значения' 'имя параметра' 'значение'
floatProp skinpaintBumpHeight 50.00 # - этот символ служит для комментариев. После него пишется любой текст.
Сохраняем файл, запускаем игру. Для проверки вводим в консоль код "prop skinpaintBumpHeight". Если вы видите значение из файла ConfigManager.txt - поздравляю вас!
Все темы на форуме с кодами:
[Properties] Force Save без модов
[Properties] Улучшение записи видео в игре
[Properties] Отключение начальной заставки
[Properties] Улучшение текстуры существ в редакторе
[Properties] Графические эффекты в редакторе существ
Отредактировано Clicker95 - Вс, 27.07.2014, 16:56
LGBTIQ ALERT!
NO U
NO U