• Уважаемый посетитель!!!
    Если Вы уже являетесь зарегистрированным участником проекта "миХей.ру - дискусcионный клуб",
    пожалуйста, восстановите свой пароль самостоятельно, либо свяжитесь с администратором через Телеграм.

Некоторая документация и вопросы по IFF Pencil 2 и скриптам

Шогал

Почетный участник
Shy, можно вопрос? Ты так и не понял, что обозначает revision number, и играет ли он вообще какую-нибудь роль в игре?
 
Шогал
Точно не знаю. Можно предположить, что при каждом изменении скрипта revision number увеличивают на единицу. Я думаю, он служит для удобства разработчиков, а на игру влияния не оказывает.
 
хм... ктонить шарит в скрипте IFF Pencil'a ? )

люди помогите плз
вобщем скачал я прогу IFF Pencil 2 со всем разобрался кроме
BHAV типа :( это как я понял оснвной скрипт обьекта в котором описывается как объект должен взаимодействовать с симом и с окружаюшим миром.... там одних функций блин около 500 и параметров в 16-тиричном коде по самые...

плз если кто знает ченить об этой проге или может фак гденить видел помогите плз иначе мне в ней придеца около месяца разбераться...

З.Ы. буду оч благодарен
 
COOLMAX
Ну, основных функций все же не 500, а около 50. А что тебя конкретно интересует? На русском документации нет (ну, скажем, почти нет). Если English не проблема, то могу дать несколько ссылок. Хотя полного описания все равно не найти, оно только у Maxis есть.
 
будь другом кинь ссылки которые есть
и обьясни плз значения строк

Parameters 0 Equals? 1
Temporary Storage 0 Assign To: Constant 4096:2 нифига не ясно

my person data gender Equals? 1 хм помойму проверка пола но не уверен поподробней бы узнать

(glob: ) Standard entry ХЗ че это

(glob: ) privacy - do shoo ХЗ че и это )

My Attribute 0 Assign To: 1 что есть атрибуты ? )

my person data Outgoing/Friendly Personality < Constant 4096:3 хм... помойму хорактеристика сима сравнивется с какойто
константой но что это за константа (Constant 4096:3) ???
 
Если English не проблема, то могу дать несколько ссылок.
Shy, а можно и мне? Не проблема :)
Есть в природе ссылки, например, на собранные соответствия байтов и кода? Я, к примеру, нашла уже, какие байты менять, чтобы сделать изменения типа:
<что-нибудь> Equals? 1
Parameters 1
Temporary Storage 1
My Object ID
Stack Object's ID
и тому подобное, но "пальцем в небо" - это очень жестокий метод, имхо, если не подозреваешь, какое там должно быть значение в хексе.

COOLMAX, я не Shy, но на пару вещей ответить могу.
То, что начинается с glob, semi, priv - это функции. Последние - те, которые объявлены в ресурсах типа BHAV. Список функций можно посмотреть, если выделить строку и нажать на кнопку ... напротив label-а Function.
Parameters - это аргумент текущей функции.
Temporary Storage - это то, что станет аргументом для функции, вызванной из текущей функции.
Аттрибуты, грубо говоря - переменные. Сохраняют значения при выходе из функции, в отличие от Local Variable. Если ты работаешь с multi-tile object, у каждого tile они свои.
Constant 4096:3 и любые подобные цифры смотри в ресурсах типа BCON.
gender Equals? 1 - определенно проверка пола, интересно только, 1 - это male или female? :)

Специалисты, я нигде не ошиблась?
 
Jasana, ты все правильно объяснила. Я несколько слов добавлю. Слова glob, semi, priv указывают на то, в каком файде расположена функция. Если priv, то в этом же. Если glob, то в Global.iff, который лежит в Global.far. Если semi -- в "полуглобальном" файле (все остальные файлы из Global.far), а в каком именно, определяется ресурсом GLOB.

Temporary Storage используют, чтобы передавать значения в функцию, когда все ее 4 аргумента установлены в -1. Еще Temporary Storage используется в некоторых примитивах (базовых функциях). Названия примитивов можно найти в файле Behavior.iff, STR#139. Вообще в этом файле очень много важной информации, советую поизучать.

Чтобы научиться редактировать ресурсы BHAV, нужно разобраться в файле script.txt из поставки IFF Pencil 2. Пока это самый быстрый путь. Придется, конечно, не легко, зашифровно там много всего (мне было легче ;), где-то 2/3 этого файла написано мной). Советую начать с функции data (самый конец файла) и prim2 (почти в начале). Data задает почти все переменные в скриптах, а в prim2 лежат присвоения, сравнения, арифметически операции.

Значения констант для пола: 0 -- мужчина, 1 -- женщина, 2 -- собака, 3 -- кошка.

С ссылками стало тяжело, как я обнаружил, много всего позакрывалось. Неплохой напор ссылок есть на SimPrograms. Советую глянуть "Programming Objects in The Sims", там все из первых уст изложено. Остальные ссылки на форумы: http://www.hackersresource.info/, http://pub11.ezboard.com/fsimsliceforums55306frm13, http://forums.thesimsresource.com/forumdisplay.php?forumid=8. Последняя ссылка на общий форум, но там много информации и по хагингу объектов, если ее хорошо поискать.
 
Народ, вы в этих делах разбираетесь, как я погляжу. Вот скооперировались бы и сделали бы нормальный русский "курс молодого бойца" и вас бы вопросами меньше кол****и и чайникам, вроде меня, польза была бы.
 
Febra, я сам есчо чайник :) 5 дней всего с пенсилом мучаюсь...:)
 
Febra
Тема эта, можно сказать, необъятная. Попытки объединится были, но ничего законченного из них не вышло. Пока приходится так: задают вопросы -- отвечаем. Я же не знаю, что "чайникам" интересно.
 
Shy, чайникам интересно все...:). А вообще интересно, описания функций, какая за что отвечает и что делает. Хоть названия и понятны более-менее, а вот с подбором параметров - это геморой...:). С обходом функций в скрипте тоже все боле-менее ясно...:)
 
Febra, можно подумать. я не чайник :) Объектоделанием балуюсь всего месяца два по выходным :( Медитация над существующими объектами - очень полезная штука :) Ну и, конечно, я в некотором роде программер, это помогает.

нормальный русский "курс молодого бойца"
Тема эта, можно сказать, необъятная.
Shy, 🍺
Febra, "нормальный курс" - он, во-первых, для всех разный, согласна? Писать максимум - это долго и, честно говоря, нудно. Писать минимум - многим будет лень додумывать :mad:
Да и наличие курса поможет разве? Вон по скинам и факи, и мануалы есть, и все равно одни и те же вопросы раз в неделю :(

Solod, насчет подбора параметров могу поделиться почти очевидным наблюдением - менять надо хексы, а не параметры. Примеров сейчас не приведу - я на работе :( если нужно, завтра утром будут.
Смысл такой - находишь один или несколько вызовов, похожих на тот, который тебе нужен, и меняешь на 1 хекс-значения по одному. Например, чтобы из Parameters 1 Equals? 1 сделать Temporary Storage 1 Equals? 1, надо менять то ли последний, то ли предпоследний хекс.
Перебор таким образом сильно сокращается. вопрос только в том, чтобы сообразить, где найти похожий вызов.
 
Jasana, примеры желательно. С хексами тоже не все понятно, я вот заметил такую штуку, применительно к параметрам правда: допустим, если 4 параметр он один - одна функция, в сочетании с 1 другая, а всочетании с 1 и 3 вообще третья. Единственно второй параметр отвечает за значение, которое возвратит функция после исполнения и то не всегда. А с хексами еще сложнее, у меня и в школе с 16-ричной кодировкой проблемы были и в институте, можно сказать я этого хекса вообще не знаю...:(...А потом скажите пожалуйста ведь неизвестно какие байты за какой вызов отвечают, искать подобия тоже времени убьешь много. Знать бы какая функция что делает со сто процентной точностью....:) Хотя это все мечты...:))
 
с 16-ричной кодировкой проблемы были
Ы? Это как :eek: До 10 посчитать в 16-ричной системе можешь? ;) Что еще надо - большие числа туда-сюда (10-16) гонять обычным калькулятором можно.
Знать бы какая функция что делает со сто процентной точностью.... Хотя это все мечты...
Увы :( насколько я поняла эту идею, IffPencil - это, можно сказать, "красивая" обёртка для хекс-редактора. За "сто процентной точностью" надо идти к Максису - а они фиг что дадут.

Ну, вот тебе пара примеров для усвоения идеи с хексами:
Local Variable 0 Assign To: 0
00 00 00 00 00 05 19 07
Меняем последний хекс, остальные не трогаем:
- на 00 - получаем Local Variable 0 Assign To: My Attribute 0
- на 01 - получаем Local Variable 0 Assign To: Stack Obj's Attribute 0
- на 03 - получаем Local Variable 0 Assign To: My graphic
- на 04 - получаем Local Variable 0 Assign To: Stack Object's graphic
- на 06 - получаем Local Variable 0 Assign To: Global ( from Simulation ) Hour
- на 08 - получаем Local Variable 0 Assign To: Temporary Storage 0
- на 09 - получаем Local Variable 0 Assign To: Parameters 0
- на 0A - получаем Local Variable 0 Assign To: Stack Object ID
Можешь быть уверен, что последний хекс тебе и в других вызовах даст то же самое; например, посмотри на такой вызов:
Stack Object's graphic Assign To: Parameters 0
00 00 00 00 00 05 04 09
Заметил - последняя девятка дала то же, что и для предыдущей команды?

Теперь попробуем поменять второй хекс слева, уже на последнем вызове.
- на 00 - получаем My Attribute 0 Assign To: Parameters 0
- на 01 - получаем Stack Obj's Attribute 0 Assign To: Parameters 0
- на 03 - получаем My graphic Assign To: Parameters 0
- на 08 - получаем Temporary Storage 0 Assign To: Parameters 0
- на 09 получаем - заметь, какое совпадение ;) - Parameters 0 Assign To: Parameters 0

Мысль ясна?
А вот если тебе надо из Parameters 0 сделать Parameters 1, тогда десятичные параметры менять, первый или второй, зависит от того, где Parameters стоит. Если очень хочется менять это в хексах - это крайний правый или соседний с ним.
 
Jasana, сенькс, сам бы долго до этого допирал...:) Значится получается такая штука: в хексах с лева на право вначале идет название функции, потом ее действие, и затем результат...
 
Solod
Я уже писал про файл script.txt, который задает расшифровку шестнадцатеричных параметров, чтобы не повторяться: http://www.mixei.ru/showpost.php?p=273279

А вообще, очень хочется, чтобы нашелся хороший программист, который бы написал нормальный редактор...
 
Последнее редактирование модератором:
Shy, угум я читал эту тему...просто я непонял что script задает расшифровку параметров.
 
Полезная линка - там перечислены некоторые значения параметров для функций.
И еще одна полезная линка - там расписаны параметры для функции #2 (в которую входят Assign To, Equals и т.п.).
Линку на этот форум давал Shy когда-то - пользуясь случаем :) хочу сказать спасибо.
 
У меня опять вопросик!
Скачала IFF Pencil?, а куда и в каком виде закачивать приложенные к нему текстовики script.txt и shyscript.txt?
 
Hunter78, его нужно просто положить в ту же папку, где лежит и основная программа.
 
Назад
Сверху