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

Изменение функциональности предмета

  • Автор темы Автор темы Gilder
  • Дата начала Дата начала
1)Дюкаша я вовсе не собирался испытывать работу отладчика, просто сначала написал скрипт таким образом, чтобы если в строке исполнение пойдет по false-вой ветви мне сообщение написали (считай тот же диалог :rolleyes: ). а уже после этого стал пытаться подключить отладчик. Кстати о диалогах не могла бы ты подсказать мне удобный HEX для них (я в принципе и сам подберу, но время.... а у тебя уже есть.)
2)В случае если использовать Go To Relative Position в виде Go To Relative Position: Location = Anywhere near, Direction = Facing; (HEX-ы кажется такие: 00 00 FF FE 00 00 00 00) строчка не пойдет по false. (это утверждение основано сугубо на результате экспиремента.)
Так что проблема с Go To Relative Position как раз не является основной Хотя действительно, непонятно, что мешало симу подойти, я знаю только два варианта когда Go To Relative Position дает false
a) когда на заданой позици кто-то / что-то находиться;
b) когда сим не может проложить маршрут (если его заставляют пользоваться предметом находящемся на улице а он в это время находится в комнате без дверей.)
3)По поводу же Set Motive Change появились какие то предположения (пока на уровне догадок) Похоже, что Set Motive Change самостоятельна, ее надо просто запустить и дождаться и не выпускать из скрипта пока она своедело не сделает (попробую подобрать Animate и проверю). Если это так, то объяснить происходящее довольно просто поскольку стоит Set Motive Change запуститься и уже на следующий такт игры скрипт кончается (Standart Exit).Таким образом Set Motive Change просто не успевает сколь нибудь ощутимо поработать
Впрчем я уже говорил, это только предположение, если кто-то обладает данными проиворечащими этой догадке, пожалуйста напишите об этом.
 
Gilder, ну, это вообще-то не совсем та функция, fals'овый переход которой имеет смысл сразу же начинать отлавливать, т.к. он теоретически должен происходить не в случае какой-либо ошибки автора, а в совершенно нормальной игровой ситуации. Во всяком случае, до тех пор, пока я не столкнулась с тем, что здесь она почему-то идет на false по неясной мне причине, мне бы никогда не пришло в голову что-то специальное затевать с ее fals'овым переходом. В норме она может пойти по false, и это не будет ошибкой хакера и не потребует исправлений скрипта. А раз это не ошибка, то зачем отмечать ее как ошибку? :D Вот когда уже действительно оказалось, что с функцией творится что-то странное, тогда я еще могу понять подобное действие. Хотя лишний раз вызывать ошибку и ресет предмета, генерить лишний текстовый файл, не содержащий в данном случае полезной инфы, только для того, чтобы узнать, куда пошла функция - не слишком логично. Dialog или некое другое хорошо заметное действие, позволяющее сразу определить, что случилось - это лучше, хотя, возможно, несколько дольше делается. Ну не знаю, у меня "аллергия" на стоящие не к месту Errors. А по dialogs у меня, кажется, была табличка с HR, надо будет глянуть, насколько она верна для Симс 2. А так вообще, чтобы "отметить" какой-то момент скрипта, я просто пустой dialog вывожу.
Насчет проблемы с подходом к зеркалу, я не говорю, что она основная. Но поскольку функция вроде бы простая, то ее отказ нормально работать представляется мне более загадочным, чем проблема с Set Motive Change. И лично мне хотелось бы ее решить прежде, чем разбираться с дальнейшим.
А насчет Set Motive Change, возможно, ты и прав... Анимацию ведь тоже перезапускают, пока она не закончится. Во всяком случае раньше перезапускали. Интересно, что будет, если ее замкнуть саму на себя? Она ведь идет по True, раз вторая ошибка не выскакивает. Но она, похоже, и не умеет идти по false, раз в родных скриптах замкнута на Error. Тогда запускать ее на какую-нибудь проверку и снова саму на себя? Хм... Но в родных скриптах так тоже не делают. :D
 
Делюсь наблюдениями

Дюкаша, в том то и дело, что если с Go To Rellative Position принипы работы известны (и собственно загвоздка в нашем конкретном случае как мне представляется в том, чтобы отыскать (еще один) фактор который пускает ее по false), то в случае с Set Mtive Change вообще не очень ясно как она функционирует.
Я тут еще попробовал просмотреть TV - Do - Watch (TelevisionGlobals; Instance=0x00002014 из objects.package) там вообще отвал башки со мной случился (благо скрипт не маленький) взгляни пожалуйста на него если время будет может разглядишь чего то чего я пока не рассмотрел.
Да и в принципе никак нельзя забывать, что функции тут "крепко перемешаны" т.е. могут вообще не использоваться самостоятельно, а просто вызываться из других функций (как иллюстрацию можешь взглянуть на Watch (TelevisionGlobals; Instance=0x00002021 из objects.package) из нее вызывается порядка полутора десятков функций в частности и TV - Do - Watch ) таким образом Set Motive Change теоретически может вообще запускаться в одном месте а "удерживающая" его анимация находиться вообще совсем в другой функции. (Ох сердцем чую, что без мастеров тут не разобраться)

P.S. Напомните пожалуйста что есть Go To Routing Slot? Точно помню что это обсуждалось но не помню где.
 
Насколько можно судить по моим экспериментам и анализу родных скриптов, переход на False при "Go To Relative Position" будет происходить всегда, если предмет используется (установлен флаг in use). Этот флаг устанавливается, в частности, функцией "Standard Entry". Поэтому для решения проблемы нужно будет переставить в "Interaction - Social Up" порядок вызова "Standard Entry" и "Go To Relative Position".

"Go To Routing Slot" служит примерно для того же, что и "Go To Relative Position", т.е. для перехода сима в заданную точку. Вот только точка эта определяется через ресурс SLOT, который до сих пор полностью не расшифрован.
 
Ага, так вот в чем дело. :) Спасибо, Учитель. :) Но тогда почему же при том же порядке строк Go to relative position не шел на false при Location = Anywhere near, Direction = Facing? Или все-таки при Anywhere near неважно, используется предмет или нет? Вообще-то надо бы мне самой на все это глянуть...
Эх, недаром же я так не люблю Standart Entry. :D
 
1)Shy - ГЕНИЙ!!! Спасибо огромное! (Боже как же я в свое время с этим in use-ом намучался)
2)Дюкаша да по всей видимости Anywhere near не так строг (в частности я кажется видел его в скрипте телевизора, а его вроде бы могут смотреть более одного сима одновременно)
3)Последняя (на данный момент) версия зеркала здесь
Функциональность: Увеличивает Social motive
уменьшая при этом 3 другие случайно выбраный мотивыю
4)Зеркало надобно тестировать на тему случайного выбора уменьшаемых мотивов (на самом деле там 5 блоков уменьшаемых мотивов и случайным образо должен выбираться блок). Если кто нибудь посмотрит буду очень благодарен.
5)Есть еще одна загвоздка в этом зеркале: если действие отменить то сим все равно продолжит общаться и закончит только когда Social motive поднимется до конца. Как с этим быть пока не знаю. Ежели кто знает подскажите пожалуйста.
6)Насколь ко я понимаю флаг in use можно снять насильно может быть это поможет в решении проблемы (см. пункт 5).
 
Еще вопросец возник...
Кто нибудь пытался заниматься плагинами (к телефону, компьютеру... и т.д.)?
Вообще по этому поводу тут информация где то есть? (поиск дал нулевой результат да и раньше кажется это направление популярности не имело)
 
Gilder, где тут?
У нас на форуме - разумеется, нет. В России хакингом вообще практически никто не занимается и никакой информации, естественно, нет. А на западе - это надо искать на их форумах, на MTS2 прежде всего. Вообще, недавно где-то мне там попадался разговор про создание телефонных плагинов, но только в качестве желаний и надежд. Чтобы кто-то уже делал такое - не слыхала пока.
А раньше не скажу, чтобы направление было таким уж безумно популярным, но плагины были тем не менее. По первосимским плагинам можно на HR поискать инфу и попробовать провести аналогии с Симс 2. Но я не знаю, расписано ли это где-нибудь там подробно.
 
Plugin-чатые plugin-ы

Я ж ведь не просто так интересуюсь...
Нашел вот здесь (the sims bunker) (кажется там когда то Шогал промышлял, чего то его здесь не видно :confused: ) призанятную штуку - плагин к компютеру... залез в скрипты, внутри типичная функциональная часть (BHAV-ы, TTAB-ы, TTAs-ы, OBJD, и т.д.) без мишуры вроде текстур и прочего....
Единственне чего я не понимаю, так это как реализована сама plug-in-чатость. Как эта функциональность подключается к стандартному объекту (компьтеру)???
 
Карьеры

И еще (несколько не в тему...) Можно ли содавать новые карьеры симов так, чтобы при этом все предыдущие карьеры оставались доступны... и вообще какие ресурсы связаны с карьерой? (наверняка же должно быть что то вроде списка карьер)???
 
Gilder, угу, у нас и есть только два хакера - Шогал и Shy. Ну еще Jasana до некоторой степени, причем она Sims 2 не занимается. Шогал сделал предостаточно интересных объектов, но туторы по их изготовлению он на форуме не пишет, да и вообще появляется здесь редко, так что найти здесь инфу о том, как он это сделал, нереально. Если только он вдруг сам к нам забредет и захочет поделиться. Вообще, есть же "родные" плагины опять же, по ним надо ориентироваться.
А карьеры - да, создают и даже без замены старых вроде бы, хотя и с заменой тоже. Карьерные ресурсы все там же - в Objects.package. Поищи по ресурсу NREF, поставив его по алфавиту, нечто со словом job - я именно так обычно на нужные файлы выхожу, хотя может уже есть и гораздо более совершенные способы. :D Там на каждую карьеру - своя Group, насколько я помню, т.е. как бы отдельный файл. Ставишь в Group filter номер группы - видишь все ресурсы, относящиеся к данной карьере.
 
Первое замечание. После "Local 0 := random[1 to 10 (0xA)] - 1" бессмысленно делать проверку "Local 0 > 25 (0x19)", т.к. в "Local 0" будет число от 0 до 9. Второе: я не знаю, что такое "IK Object" в примитиве Animate Sim, но мне кажется, что лучше не заталкивать туда "My Attribute 0", поставить туда Stack Object, как сделано во всех примерах, что я видел. Опять же, не гарантирую что всегда, но в большинстве случаев адрес перехода после анимации по False совпадает с адресом перехода по True.

Что касается отмены действия, то если честно, я об этом никогда не задумывался. Возможно, здесь поможет функция Wait for notify. Первый параметр лучше положить равным нулю, чтобы не было задержки, а для второго работают значения либо 0 либо 1. Как лучше, я не знаю, нужно экспериментировать.

По плагинам к телефону я где-то встречал руководство для Симс-1. Лучше пойти на HR и поискать, по крайней мере ссылка там должна быть. А еще лучше попробовать разобраться самому. Ключевые вещи там: примитив Add/Change the Action String для добавления новых пунктов к меню и сочетание Set to Next с Run Tree by Name для запуска плагина.
 
1)Спасибо Дюкаша попробую и так поискать.
2)Спасибо Shy Я от чего то зарапортовался.
3)Выловил ресурс (в нотации SimPe jpg/tga/png Image (IMG)) при импорте появляется JPG-файл который не удается открыть Photoshop-ом (Зато ACDSee 7.0 его открыл, норедактировать там практически невозможно -инструментарий хромает ), чем его редактируют?
 
1)(Отвечаю сам-себе) есть такое мнение, что можно просто поменять разширение jpg на tga и уже тогда на-Photoshop-иться над получившейся картинкой. А потом просто сменить разширение обратно. У меня вроде получилось.... буду тестировать...
2)Занятно было бы узнать как всеже сделать карьеру так, чтобы она при внедрении в игру не убмвала бы другую карьеру... действительно карьера объединяется по Group-у и видимо именно так игра определяет что это файлы карьер а GUID-ы тогда должны обеспечивать изоляцию между карьерами....
тогда для карьер должен быль выделен блок Group-ов. Впрочем это лишь предроложение... буду копаться...
 
Ура! С карьерами я разобрался.... будет время может мануал написать попробую
(возможно ведь и придется, поскольку последняя на данный момент SimPe версии 0.32 пот чего то конфликтует с career editor плагином, а стало быть все делать придется вручную по ресурсам, будем надеяться, что Carrer Editor вск таки туда вернут, поскольку кроме того что можно сделать этим плагином для появления в игре новой карьеры придется сделать всего 2 вещи:
1) сменить GUID(OBJDf)
2) проставить всем ресурсам новый Group (по всей видимости уникальный (берем еще один свободный GUID и вуа ля)) .
3) Впрочем я полагаю мануал все равно пригодится, поэтому вот он
А более полную но английскую версию можно скачать тут.
 
Последнее редактирование модератором:
Gilder, ну я же всегда говорила, что ты гений. :D

Вопрос про dialog еще актуален или как? ;)
Первосимский тутор вот:
-------------------------
Here's a brief overview of dialog box options. I recommend IFFPencil2 for doing this (or any hack for that matter). There's still much to learn, so many things may go wrong.

All below is in HEX

Byte 1: Button 3 STR# + 1
Byte 2: Icon Index #
Byte 3: Dialog Text STR# + 1
Byte 4: Button 1 STR# + 1
Byte 5: Button 2 STR# + 1
Byte 6: Dialog type (see below)
Byte 7: Title STR# + 1
Byte 8: Icon type (see below) + Dialog behavior (see below)

Byte 6 - Dialog Types:
00 - message - Display a dialog with a message and yes button.
01 - yes-no - Display a dialog with a message, a yes button and a no button. Return true on yes and false on no.
02 - yes-no-cancel - Display a dialog with a yes, no, and cancel button. If yes is chosen, returns true. If no is chosen, returns false and sets temp to 0. If cancel is chosen, returns false, and sets temp to 1.
03 - text entry - Display a dialog with an OK button and a space for the user to type in a name. The next call to "make new character" will use the typed name as the name of the new character.
04 - tutorial - Display a tutorial dialog, with only an OK button.
05 - Downtown - Display A Downtown Lot Selection Dialog
06 - Clothing Dialog - Display a Change Clothes Dialog
07 - Vacation
08 - Neighborhood
09 - Pet Choice
0A - Phone Book

Byte 8 - Icon Type:
00 Automatic
02 None
04 Neighbor
06 Indexed
08 Named

Byte 8 - Behavior:
00 Engage and block sim
01 Return and block sim
80 Engage and continue sim
81 Return and continue sim

Clothing Dialogs
Temp 0:
0 Normal
1 Formal
2 Swimsuit
3 Pajamas
4 Winter

So, for example, if I wanted a Tri-Choice dialog with a title #0, text #1, yes button #2, no button #3, and cancel button #4, I would use the following...

05 00 02 03 04 02 01 00

To make things easer, I've written a simple script to walk you through the process of creating these parameters. You can find it at Sim Dreams.
-----------------------
Здесь, конечно, не все актуально для Симс 2, но по крайней мере первые пять типов совпадают, а вообще по названиям и описания типов диалогов в Симс 2 у меня инфа тоже есть, только выкладывать ее сейчас некогда. Впрочем, она и в игре есть, ее же Магистр оттуда вытащил, когда мне прислал. :)
Что в каком байте изменяется - вроде бы тоже совпадает. Насчет иконок - дальше первой (т.е. нулевой) не проверяла, но она совпадает. Остальное тоже не проверяла пока.
 
1)Дюкаша спасибо тебе огромное, разумеется dialog более чем востребован.
2)Насколько я понял токены в The Sims 2 сущесьвуют, другое дело, что они не отображаются нигде (закупил кучу журналов и ни одной иконки).
Если есть какая то информация о токенах, дайте ссылочку.
3)Есть ли способ сделать так, чтобы карьера не отображалась в газете? (т.е. возникла идекя построить дерево карьер, таким образом чтобы некоторые карьеры нельзя было взять сразу, а например только достигнув верхней ступеньки в другой карьере).
(Пожалуйста выскажите свое мнение по поводу реализуемости этой идеи)
Заранее благодарен.
 
Gilder,
разумеется dialog более чем востребован.
Ну, раз так, то вот и вся имеющаяся у меня инфа о dialogs в Sims 2.
--------------
Dialog types and descriptions

#0 message - Display a dialog with a message and yes button.
#1 yes-no - Display a dialog with a message, a yes button and a no button. Return true on yes and false on no.
#2 yes-no-cancel - Display a dialog with a yes, no, and cancel button. If yes is chosen, returns true. If no is chosen, returns false and sets temp to 0. If cancel is chosen, returns false, and sets temp to 1.
#3 text entry - Display a dialog with an OK button and a space for the user to type in a name. The next call to "make new character" will use the typed name as the name of the new character.
#4 tutorial - Display a tutorial dialog, with only an OK button.
#5 Phone Book – Services - Display the phone book dialog for services - uses private string table 147 to get service choices in. Returns index selected in array0 at position 0.
#6 Phone Book – Invite - Display the phone book dialog for calling one sim over. Returns neighbor ID of invitee in array0 at position 0.
#7 Phone Book – Party - Display the phone book dialog for having a party. Returns neighbors invited in array0.
#8 Text Notification - Text notification on side of screen - returns unique ID in specified temp. For birthdays, days-Till-Birthday is expected in temp1
#9 Stop Text Notification - Stops Text Notification by passing in unique ID in specified temp
#10 Text Notification Modify - Modify existing text notification and reset timer.
#11 Magazine Rack - Put up Magazine rack dialog - pass in objects IDs of magazine to be selected vua array 0, and return same array with non -1 entries for magazines selected.
#12 Jewelry Rack - Put up Jewelry rack dialog - pass in objects IDs of jewelry to be selected vua array 0, and return same array with non -1 entries for magazines selected.
#13 VideoGame Rack - Put up Video Game rack dialog - pass in objects IDs of video Games to be selected vua array 0, and return same array with non -1 entries for magazines selected.
#14 Food Rack - Put up Food selection dialog - pass in 4 variables in consective local vars indexed by Local Var Index edith field. Return new value via temp 0
#15 Special Phone Services - Special Phone services - pass in array 0 of neighbor ID's to be put up - return Array 0 with non -1 entries for those selected.
#16 Clothing Purchase - Clothing purchasing requires a clothing type in temp0 (same literals as the types in the Change Outfit primitive) - nothing is returned.
#17 Clothing Selection - Clothing Selection requires a clothing type in Temp 0 (same literals as in the Change Outfit Primitive) - nothing is returned
#18 Tutorial Tasks - List tutorial tasks. Pass in array 0 containing an array of string indexes to get strings from. These strings come from the private string array. Array 1 is a 1to1 corresponding array, where an entry for each string index of 1 means the task is displayed checked. An empty array 0 means the dialog will be removed.
#19 List Selection - Very much like the phone services dialog, except that you can set the dialog title you want and there is no phone icon.
#20 Clothing TryOn - TryOn clothing dialog - requires a clothing type in temp0 (same literals as the types in the Change Outfit primitive) - nothing is returned.
#21 Vanity Table - Vanity Table dialog - no inputs or outputs. On a true return, change into the same outfit the sim is wearing to update changes.
#22 TutorialNext - Pass in title and message as usual. Pass in total number of dialogs in temp 2 and current dialog number in temp 1
#23 Baby Name - Set the baby name.
#24 Set Aspiration - Object ID == neighbor id of sim to set the aspiration for. Will set it for the neighbor and in the person if the person is instantiated.
#25 TutorialNext Modal - Pass in title and message as usual. Pass in total number of dialogs in temp 2 and current dialog number in temp 1 – MODAL

Dialog behavior

#0 engage and block sim - Engages the executing tree and pauses all other sims until the dialog is dismissed.
#1 return and block sim - Returns immediately, and pauses all sims until dialog is dismissed.
#2 engage and continue sim - Enage the current sim until the dialog is dismissed, and continue all others.
#3 return and continue sim - Return immediately, and continue all sims.

Dialog icons

#0 automatic
#1 none
#2 neighbor
#3 indexed
#4 named

Person Outfit Categories

#0 Casual 1
#1 Naked
#2 Swimsuit
#3 Gym - Workout
#4 Formal
#5 Pajamas
#6 Try On - For Temp Outfits
#7 invalid - was Bones Unlit
#8 Maternity
#9 Casual 2
#10 Casual 3
#11 Underwear
---------------
Как видишь, очень многое тут совпадает с Симс 1. Вместе с описанием того, что в какой HEX пихать, из первосимского тутора выходит вполне полноценное руковоство. ;) Я им даже сама пыталась пользоваться не далее, как вчера - правда, с самым простым диалогом. Вроде бы в игре все получилось как надо.

Токены, безусловно, существуют и в частности, воспоминания - это токены. И примитив Manage Inventory, который управляет токенами - тоже никуда не делся. Но вот найти какую-либо конкретную инфу об устройстве этого дела весьма проблематично, очень уж все это сложно. Я тоже этим интересовалась, но даже Магистр мало что сказал мне об этом (да простит он меня за цитирование его писем без разрешения, конечно)
Вожусь сейчас с Manage Inventory. Оказалось, что теперь токены могут быть не только у отдельных симов, но и у семьи, и у лота. Кроме того, существуют глобальные токены. Жаль, что я с этим примитивом в Симс-1 так и не доразбирался.
Про Manage Inventory ничего ценного сказать не могу, нужно разбираться. Если в Симс-1 этот примитив был один из самых сложных, то сейчас стало еще хуже. Сейчас существует два способа управления (а возможно и организации) инвентаря. Каждый со своим набором действий.
 
1)А скажите пожалуйса, кто нибудь знает как технически устроен рассчет стоимости участка? Кстати по поводу токена лота - это кажется сюда.
2)Интересно бы попробовать определить "стоимость" общественного лота.
3)Согда сим приходит на общественный лот, то заблокирован Build mode, а можно ли его разблокировать?
 
Хочется поподробнее разобраться с диалогами.
1)Самое простое, хочется сделать диалог с иконками всех симов в "районе", как за это взяться я чего то никак не соображу подскажите люди добрые с чего тут начать.
2)Насколько я понял диалог вида Phonebook использует некий массив данных (каких???, что там? иконки?, ID симов?) если так, то можно попробовать составить например массив иконок воспоминаний или например массив иконок желаний\страхов.
Вобщем буду благодарен за любую информацию по этому поводу.
 
Назад
Сверху