Страница 5 из 11 ПерваяПервая 1234567891011 ПоследняяПоследняя
Показано с 61 по 75 из 154

Тема: Изготовление симс объектов на конкретном примере (с использованием IffPencil)

  1. #61
    Старожил
    Легенда miXei.ru
      "Самый полезный участник раздела The Sims 2004"
    Аватар для Shy
    Регистрация
    08.10.2002
    Сообщений
    701
    Спасибо
    я - 0; мне - 57
    Если в Manage Inventory все последних четыре байта взять равными нулю, то будет браться GUID стекового объекта. В игре я это не проверял.

    "{flags = 0, 0, 0, 0}" -- это то, что не удалось расшифровать, но (возможно) как-то влияет на действие примитива. Если есть время и желание, с этим можно экспериментировать.

    2) Все величины лучше всего считать неопределенными. Но, возможно, какие-то из них инициализируются нулем. Еще одно поле для экспериментов.

    3) Атрибуты -- некоторые величины в которых можно хранить состояние объекта. В общем все, что не вкладывается в стандартный набор. Для примера можно окрыть какой-нибудь ExpansionPack, начиная с третьего, найти в нем файл с расширением stx, и открыть его IFF Pencil'ом. Если в нем есть строковый ресурс с номером 256, то в нем хранятся имена атрибутов.

  2. #62
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Вопрос Stack&Atribute

    1)Спасибо Shy.
    Появились некоторые вопросы:
    Если в Manage Inventory все последних четыре байта взять равными нулю, то будет браться GUID стекового объекта.
    2)Стековый объект, это что?
    Атрибуты -- некоторые величины в которых можно хранить состояние объекта. В общем все, что не вкладывается в стандартный набор.
    3)Атрибуты – Это некоторый тип данных, или они самонастраиваются в зависимости от того, что в них складируют. Я видел фрагмент строчки Assign To Obj’s Atribute 3 (или что то в этом роде), значит ли это, что каждый объект обладает набором различных нумерованных атрибутов, отражающих его различные свойства? В этом случае вероятно (существует или) может быть составлена таблица |Атрибут - Свойство| для различных предметов? Не мог бы кто-нибудь вывесить (или кинуть ссылку) хотя бы несколько примеров использования атрибутов и их значений? Номера атрибутов свои для каждлго объекта, или это что-то вроде глобальных нумерованных констант. К сожалению я сейчас не могу добраться до Expansion Pack –ов, посему возможно задаю совершенно дурацкий вопрос.
    4)Хотелось бы разобраться в терминологии, уже который раз вижу слово «примитив». Примитив – это что?
    Спасибо.
    Homo homini lupus est

  3. #63
    Старожил
    Легенда miXei.ru
      Sims-дизайнер, Выбор администратора: "Симс Игры" лучший раздел 2007 года
    Аватар для Jasana
    Регистрация
    16.03.2003
    Адрес
    Киев, Украина
    Сообщений
    2,379
    Спасибо
    я - 9; мне - 158
    2) Стековые объекты используются, когда один объект (как правило, сим) что-то делает с другим объектом. В этом случае my обычно относится к симу, а stack object - к объекту, который "мучают", на что можно полюбоваться, например, в бхавах от стульев/кресел и т.д.
    А еще стековые объекты используются, когда надо многоклеточный объект обработать - в стек запихивают ID текущей клетки, работают, потом переходят (Set To Next (part of a multi-tile object)) к следующей клетке...
    "Запихивание" делает команда Stack Object's ID Assign To <чего-нибудь>.

    3) Атрибуты - это, по-моему, всегда числа, если говорить о типе... Это некоторая характеристика, которую ты хочешь присвоить объекту. Для каждого объекта атрибуты свои. Единственное общее правило, которое мне пока попадалось на глаза - в Attrubute 0 многоклеточные предметы обычно пишут номер клетки (начиная с 0), но есть ли в этом необходимость - никогда не интересовалась :-/
    При переходе из функции в функцию атрибуты не меняются, сохраняются/загружаются вместе с игрой - в общем, очень полезная в хозяйстве вещь

    4) Ну, если я не ошибаюсь... Открой в IffPencil-е любой объект, открой любой бхав, выдели строчку, и нажми на троеточие рядом с номером функции (надеюсь, ты это раньше делал?)
    Откроется окошко со списком функций в комбобоксе... Вот примитивы - это те функции, у которых нет приставки "(glob: )", "(semi: )" или "(priv: )" - они обычно в самом начале списка.
    Последний раз редактировалось Дюкаша; 29.12.2016 в 00:57.

  4. #64
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Сообщение Банкомат

    Ну вот. Закончил (или почти закончил) делать «банкомат».
    Странный предмет получился: Внешность – от Jukebox-а, только, перекрашенного в синий цвет, имя IIF-а - от шкафа (Bookcase#######). А по сути этот объект всего лишь разменивает деньги сима на монеты, и обратно. Единственная недоделка – это постоянный курс обмена, а хотелось бы, чтобы он менялся ежедневно. Допустим, колебания курса можно сделать генератором случайных чисел (Вроде бы есть такой???) Но надо, чтобы он срабатывал раз в сутки, а как это сделать я не знаю? Кроме того внешний вид (Jukebox – это как-то несерьезно), возможно кто-нибудь возьмется его слегка переделать, а то неряшливо и неинтересно. Я что-то устал, работая над «содержанием», так что на «форму» уже сил нет.
    Кроме того, курс - еще недоделан. Не хотелось бы пока вывешивать в «Ваши работы», ведь скачают недоделку и пользоваться начнут раньше времени, а если уж делать, то делать хорошо. Почти все «внутренности» я подчистил, однако возможно что-то ненужное осталось (тоже было бы неплохо, если бы кто-нибудь просмотрел опытным глазом). В общем, если у кого-то возникнет желание помочь, напишите, пожалуйста.
    Заранее благодарен.
    Homo homini lupus est

  5. #65
    Старожил Аватар для Шогал
    Регистрация
    05.10.2002
    Адрес
    Калининград
    Сообщений
    761
    Спасибо
    я - 0; мне - 1
    Gilder, чтобы менялся раз в сутки - поставь в main что-то такого содержания:
    (glob: ) Idle hours (параметры: 24 0 0 0, лень пересчитывать в HEX)
    My Attribute N:=random ...... ну и так далее

    [size=1]Шогал добавил [date]1076100225[/date]:[/size]
    Jasana, необходимость для того чтобы долго не расковыривать в свойствах объекта его индекс - а так раз - и он уже в нулевом аттрибуте

  6. #66
    Новый участник
    Регистрация
    24.08.2003
    Сообщений
    17
    Спасибо
    я - 0; мне - 0
    Я тут пофантазировала, как такой обменный агрегат выглядеть может. Вот что получилось. Может пригодится?


  7. #67
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Вопрос Банкомат

    1)Спасибо Шогал.
    2) Спасибо fendy. Здорово! Не могла бы ты скинуть мне эту «шкурку»(gilder@front.ru)? Если хочешь, я могу поделиться IIF-ом «банкомата» (пока со стационарным курсом, надеюсь доделать его до среды.), чтобы может анимацию слегка подправить, или еще чего переделать? Да и вообще, возможно у него глюки возникают в ситуациях, которые я не предусмотрел.
    Все-таки себе, как тестеру я не очень доверяю, может кто-нибудь согласится помочь в отлове глюков (ну не верю я, что их больше нету, а пожаловаться не на что).
    3)Есть примитивы. Большинство из них – реакция на пункт меню или вызов из другого примитива. Но есть еще примитивы инициализации, и некий main. Если я правильно понял, примитивы инициализации вызываются, когда сим так или иначе взаимодействует с предметом (в самом начале этого взаимодействия далее управление перадается вызываемым примитивам). Не мог бы кто-нибудь разъяснить ситуацию с main-ом и примитивами инициализации (например, есть ли какие-то стандартные имена, по которым игра определит, что перед ней примитив инициализации, а не вызываемый примитив).
    Спасибо.
    Homo homini lupus est

  8. #68
    Старший Sims-модератор
      "За вклад в развитие форума 2004", "Народный Модератор 2004", "Лучший старший модератор 2004", "Лучший модератор раздела The Sims 2004", "Лучший модератор miXei.ru 2005", "За вклад в развитие форума 2005", Народный старший модератор 2007, Выбор администратора: "Симс Игры" лучший раздел 2007 года, Лучший старший модератор miXei.ru 2008, "За вклад в развитие форума 2008", Лучший старший модератор miXei.ru 2009, Душка форума 2009
    Аватар для Дюкаша
    Регистрация
    02.10.2002
    Адрес
    г. Москва
    Сообщений
    13,401
    Спасибо
    я - 0; мне - 1,277
    Gilder
    Хм, main и init - это не примитивы.

    ...Каждая функция (или ресурс типа BHAV) это набор инструкций. Каждая инструкция это вызов или примитива или другой функции. Как я уже говорил, инструкция кодируется 12-ю байтами. Два байта задают номер примитива или функции. Еще два байта — номера переходов для Истины или Лжи. Восемь байтов — параметры. Теперь подробнее. Если в первых двух байтах стоит номер от 0 до 255, то это примитив. Если номер от 4096 до 8191, то функция приватная, (priv: ), искать ее нужно в том же файле. Если номер от 256 до 4095 — это глобальная функция. IFF Pencil 2 пишет перед ее именем (glob: ). Глобальные функции размещены в файле global.iff из global.far. Если номер от 8192 и старше, то функция полуглобальная, (semi: ), искать ее нужно в файле, который задан в ресурсе GLOB. Например, для файла Sofas.iff таким файлом будет SofaGlobals.iff...

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

    ...Перейдем теперь к init-ам. Эта функция вызывается в двух случаях: когда предмет появляется в игре при покупке (еще до того, как он будет поставлен на участок, сразу же после выбора его мышкой в каталоге) и после ошибок во время функционирования самого предмета (в случае шкафа эти ошибки могут быть только в функциях init, main и load и в функциях, которые они вызывают; при ошибках в других функциях должен выполняться reset для симов, но он, почему-то не выполняется, но это уже тонкости). Поэтому очень важно, чтобы init ошибок не содержал, иначе можно легко повесить игру...
    ("Некоторая документация по Iff Pencil 2 и скриптам" by Shy)
    Последний раз редактировалось Дюкаша; 29.12.2016 в 01:01.

  9. #69
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Несчастье Спасибо

    Спасибо Дюкаша кое что начинает проясняться.
    Видимо я неправильно задал вопрос. Сейчас переварю свежеполученную информацию и попробую еще раз.
    Homo homini lupus est

  10. #70
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Вопрос Неприятная непонятка.

    1) Имеется следующая ситуация: в «банкомате»изменен main объекта и добавлен BHAV для вывода случайного числа.
    В (этом горемычном) банкомате я изменил main следующим образом:

    |0| (glob:) idle (20 4e 00 00 00 00 00 00) |1|6|
    |1| (glob:) idle hours (02 00 00 00 00 00 00 00)|2|6|
    |2| Temporary Storage 4:=random from 0 to < 10 |3|6|
    |3| Local Variable 0 Assign To: Temporary Storage 4 |4|6|
    |4| Dialog (message: id#5, icon: automatic) {Title: id#3} |5|6|
    |5| (glob:) idle (20 4e 00 00 00 00 00 00) |0|6|
    |6| Dialog (message: id#0, icon: automatic) |True|True|

    В оригинале main выглядел вот так:
    |0| (glob:) idle (20 4e 00 00 00 00 00 00) |0|Error|
    В 4 - ой строке сообщение содержащее Local Variable 0
    В 5-ой сообщение об ошибке.
    Раз в сутки исправно появляется Сообщение с очередной циферкой (как и полагается, разной), сообщения об ошибке не возникает.
    BHAV для вывода случайного числа, следующий:

    |0| Go To Relative Position (In front of, Facing) {byte = 00, flags = 0, 0} |1|6|
    |1| (glob:) Standard entry |2|6|
    |2|Local Variable 0 Assign To: Temporary Storage 4 |3|6|
    |3|Animate Sim (id 4 from object) {return event in Parameters 0} {flags = 0, 0}|4|6|
    |4|Stack Object's flags Clear Flag in use |5|6|
    |5|Dialog (message: id#5, icon: automatic) {Title: id#3} |True|6|
    |6| Dialog (message: id#0, icon: automatic) |True|True|

    Здесь тоже не выводится сообщение об ошибке(строчка |6|), и тоже выводится сообщение с цифрой(строчка|5|), только здесь эта цифра всегда 0 .
    Создается впечатление, что Temporary Storage из main не передается во второй BHAV.
    Что тут может быть не правильно???
    2)В посте Шогала используется My Atribute N вместо Temporary Storage, но я не понимаю разницы, если в данном случае она существенна, объясните пожалуйста.
    3)Набор Temporary Storage – свой для каждого объекта? (Допустим в игре сим использует 2 объекта: душ и холодильник, каждый из которых в процессе функционирования записывает какие-то значения в Temporary Storage 4). Насколько я понимаю в таком случае есть как минимум 2 Temporary Storage 4 (один для душа, другой для холодильника). И холлодильник ен может не запихныть ничего в Temporary Storage 4 душа??? Или я не прав?
    Homo homini lupus est

  11. #71
    Старожил Аватар для Шогал
    Регистрация
    05.10.2002
    Адрес
    Калининград
    Сообщений
    761
    Спасибо
    я - 0; мне - 1
    Gilder
    1) Temporary Storage не передаются от одного скрипта к другому. То есть, скрипт "Main" выполняет у тебя объект, а скрипт "Exchange money" (или как он у тебя называется) выполняет сим. Значения Temporary Storage в этих двух скриптах никак не взаимосвязаны.
    2) В этом и есть большая разница. Temporary Storage относится к одному процессу запуска скрипта. А My Attribute относится к объекту, и для всех процессов аттрибуты общие. Один нюанс: если в main ты используешь My Attribute, то во заимодействии ты должен использовать Stack Object Attribute, так как main выполняется "от первого лица" (My), а взаимодействие - "от третьего" (Stack Object).
    3) Набор Temporary Storage свой не только для каждого объекта, но и для каждого процесса. Объясню-ка я лучше не по симовски, а по понятному: допустим ты открываешь Word - там у тебя документ. Этот документ, скажем, и есть Temporary Storage. Ты открываешь второе окно ворда, и в нем открываешь тот же документ. Но документ ты можешь спокойно отредактировать в первом окне, также можешь отредактировать по-другому во втором окне. Как видишь, копии документа в обоих окнах будут разные, несмотря на то что это Temporary Storage с одним и тем же номером. Так же для скриптов симс, только вместо документов там просто числа.
    А аттрибуты по-другому - они общие для объекта. Жизненный пример - возьмем обыкновенную бумагу, и напишем на ней слово. Кто бы не посмотрел на эту бумагу - все время будет написано именно это слово, пока мы его не зачеркнем и на месте не напишем новое.

    [size=1]Шогал добавил [date]1076233325[/date]:[/size]
    Небольшое примечание к первому пункту:
    Temporary Storage может передаваться от одного скрипта к другому, но только если этот второй скрипт запускается из первого как (priv: ). Причем он не остается Temporary Storage, а переименовуется в Parameter (с тем же номером). А как только функция заканчивается и мы возвращаемся в главный модуль - Temporary Storage снова становится таким, каким был при вызове функции.

  12. #72
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Вопрос Новая порция вопросов

    То есть правильно ли я понял, что :
    1)Local Variable, сушествует только внутри скрипта в котором она записана?
    2)Temporary Storage N можно перислать в (priv)-функцию, где она превратится в Parameter N?
    3)Atribute, сохраняется при выходе из скрипта, до тех пор, пока его не перезапишут?
    Если в этих утверждениях есть ошибки или неточности, пожалуйста напишите (впрочем если нет, тоже).
    4)Спасибо Шогал. Единственное, что:
    поставь в main что-то такого содержания:
    (glob: ) Idle hours (параметры: 24 0 0 0)
    My Attribute N:=random ...... ну и так далее
    если сделать так, то My Atribute N будет обновлятся каждые 24 часа с момента (первого обращения сима???) (или покупки??? ) предмета, а хотелось бы, чтобы он всегда обновлялся например в полночь. Как такое можно сделать?
    Спасибо.
    Homo homini lupus est

  13. #73
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Вопрос Курс

    Обмен валюты.
    Я создал BHAV, для пересчета денег в соответствии с курсом.
    Он вызывается из функции обмена с параметром (число монет для обмена).
    Как сделать, чтобы он возвращал в функцию обмена уже пересчитанную величину?
    (т.е. как заставить вызванную функцию возвращать результат?)
    Напишите, пожалуйста, какой-нибудь пример (так оно доступней).
    Homo homini lupus est

  14. #74
    Группа удаления
    Регистрация
    23.12.2003
    Адрес
    Москва
    Сообщений
    118
    Спасибо
    я - 0; мне - 0

    Сообщение Еще раз о Temporary Storage

    1)Взывая (priv: )-функцию, можно ли часть параметров указать в явном виде, а часть переслать через Temporary Storage (у меня сложилось впечатление, что нет, т.е. можно либо указать все параметры в явном виде, либо использовать Temporary Storage для пересылки параметров, и если (priv: )-функция имеет вид (priv: )Function Name (00 00 00 00 00 00 00 00), то игра игнорирует параметры пересылаемые в (priv: )-функцию через Temporary Storage, однако значения перисланые из (priv : )-функции по ее окончании прочитать из Temporary Storage- можно ). Верно ли это? Если нет, то не могли бы вы показать соответствующий пример?
    2)Кроме того, Вынужден подвергнуть сомнению следующие слова Шогала:
    Temporary Storage может передаваться от одного скрипта к другому, но только если этот второй скрипт запускается из первого как (priv: ). Причем он не остается Temporary Storage, а переименовуется в Parameter (с тем же номером).
    Temporary Storage не передаются от одного скрипта к другому.
    Как мне кажется это не так. Temprary Storage передаются между скриптами. Temporary Storage одного и того же объекта передается не только в (priv: )-функцию, а если передается в нее, то не обязательно превратится в Parameter. Если при вызове (priv: )-функции она задана без параметров (точнее все ее параметры проставлены «–1»), (т.е. в виде (priv: )Function Name) , то в качестве параметра N, записывается Temporary Storage N. Эти выводу сделаны на основе моих наблюдений, и не в коем случае не ддолжны рассматриваться, как хорошо проверенный факт. Если это интересно могу опубликовать три коротеньких функции на которых ставился опыт.
    Приношу свои извинения, если данные рассуждения неправильны. В этом случае напишите пожалуйста в чем состоит моя ошибка или неточность. Если же гипотеза окажется верной, пожалуйста, подтвердите ее.
    Homo homini lupus est

  15. #75
    Старожил
    Легенда miXei.ru
      Sims-дизайнер, Выбор администратора: "Симс Игры" лучший раздел 2007 года
    Аватар для Jasana
    Регистрация
    16.03.2003
    Адрес
    Киев, Украина
    Сообщений
    2,379
    Спасибо
    я - 9; мне - 158
    Temporary Storage одного и того же объекта передается не только в (priv: )-функцию
    Вроде бы оно в любую функцию передается, почему же обязательно в priv? Насчет примитивов только не уверена...
    И вызов функции действительно должен быть без параметров, вернее, с параметрами -1. Именно значения -1 дают коду знать, что параметры переданы не в этих 8 байтах, а в определенных перед функцией Temp Storage-ах.

Страница 5 из 11 ПерваяПервая 1234567891011 ПоследняяПоследняя

Похожие темы

  1. Поздравляем победителей конкурсов Симс 2-модельер и Симс 2-декоратор!
    от Jasana в разделе The Sims 2: Изготовление скинов и предметов
    Ответов: 58
    Последнее сообщение: 19.09.2008, 00:50
  2. Изготовление штанов в бодишопе
    от Alafia в разделе The Sims 2: Изготовление скинов и предметов
    Ответов: 9
    Последнее сообщение: 06.07.2005, 14:24
  3. Изготовление скинов в PaintShopPro
    от Spika в разделе The Sims 1: Изготовление скинов и предметов
    Ответов: 12
    Последнее сообщение: 26.05.2002, 22:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •