Gilder, это за что ты ее таким зверствам подверг?
В SimPE функция не будет меняться - это я тебе уже говорила. Ну не совершенен этот SimPE и не рассчитан на нужды хакеров. Для этого наш Магистр и пишет disaSim2. А вот чтобы в disaSim2 функция не менялась - это ты, друг, что-то делаешь не то. Может, SimPE тебе изменения не сохранил? Он это любит. Чтобы это от пиратки зависело - как-то не верится. Пиратский objects.package создает проблемы с текстовыми ресурсами, но BHAV'ов это касаться никак не должно. Я, правда, сама сейчас мучаю скрипт, выгрызенный из лицензии, т.е. из ее копии, но вполне уверена, что с пиратским будет все то же самое.
После изменения всех Operands на FF функция приобретает вид довольно жалкий:
И усе.Set Motive Change: ;
Но я не сторонник таких крайних мер. Зачем менять все на FF? Пойдем путем менее глобальных экспериментов.
У нас имеются следующие коды потребностей симов:
--------------
Энергия (Energy) - 05
Комфорт (Comfort) - 06
Голод (Hunger) - 07
Гигиена (Hygienа) - 08
Мочевой пузырь (Bladder) - 09
Социальность (Social) - 0E
Веселье (Fun) - 0F
-------------
Взято из тутора, который мы тут мучили с Олечкой. Хотя, кстати, в disaSim2 их и так видно.
Если внимательно посмотреть на Operands в строках, касающихся изменения энергии и изменения комфорта (а где какая - видно из расшифровки disaSims2), можно заметить, что значения 05 и 06 соответственно находятся в третьем слева окошке Operands. В качестве проверки заменим в одной из строк 06 на 09. В SimPE изменений не видно. Пропустим результат через disaSim2. Функция теперь послушно говорит:
Стало быть, третье окошко в Operands в данном случае отвечает за выбор того самого motive, которое мы change. Ну а путем других подобных экспериментов можно разобраться и где прописана какая константа, и где само по себе действие (плюс, минус и т.д.), хотя это все, небось, осталось, как в Симс 1, можно оттуда вспомнить. Но я все равно никогда не могла это запомнить наизусть.Set Motive Change: my motives Bladder (0x9) += Const 0x1001:2 per hour, stop at Const 0x2000:0;