Temporary Storage, по видимому (английскому) - Временоое хранилище, а вот чего в нем хранят, и какими характерными особенностями этот самый Storage обладает?
Temporary Storage, по видимому (английскому) - Временоое хранилище, а вот чего в нем хранят, и какими характерными особенностями этот самый Storage обладает?
Homo homini lupus est
(показывает Gilderу ремень) Внимательно прочитал, что тебе Шогал написал?
Вопросы - это, конечно, хорошо, но иногда надо и ответы читатьПараметры передаются через заголовок функции (например, (priv: ) MyFunction (01 00 02 00 00 00 00) передаст параметр 0 равный единице и параметр 1 равный двойке) или через Temporary Storage n (То есть, если мы присвоим к примеру Temporary Storage 0 Assign to: 2000 и вызовем функцию, то в ней Parameter 0 будет равен 2000).
Постороннее замечание по поводу твоего бхава - пользуйся Rewrite, оно переупорядочивает строки так, чтобы номера переходов шли "в линеечку". В результате можно читать код, а не спагетти разбирать (0->13->1->9 ...)
А сообщения "склеиваются", если интервал между их отправлением - меньше двух часов.
Я тоже немного прокомментирую...
Про Temporary Storage лучше всего думать, как про переменные, которые сохраняются при выходе из любого конкретного скрипта, в отличие от локальных переменных. Всего их восемь штук, с номерами от 0 до 7 (локальных переменных можно сделать гораздо больше). Еще они используются в некоторых примитивах.
Версия BHAV определяет формат этого ресурса. Изменять ее не надо. В The Sims Online в некоторых скриптах используется версия 8003. Отличается от 8002 тем, что заголовок ресурса больше на один байт, поэтому IFF Pencil 2 такие ресурсы не читает.
Знание Revision number имеет смысл только для разработчиков игры с их фирменным редактором. Вероятнее всего, при каждом редактировании скрипта это число увеличивается на единичку.
I.Прошу прощения Jasana, Шогал, Я по видимому неточно сформулировал вопрос, меня интересовало, чем параметр Temporary Storage отличается от локальной переменной. По поводу Rewrite–каюсь, признаю, постараюсь исправиться.
II.СпасибоShy. Именно тот ответ, которого я ждал.
III. По поводу обмена валюты, стал рыться в magicstarterkit.iff,
И в функции |Manage Inventory ( 1.x Animate Object in 2.0 )| №51.
Спешу поделиться наблюдениями, и задать вопросы.
Насколько я понимаю, с параметрами этой функции дела обстоят следующим образом:
Номера HEX-ов (с лева на право)
1)Действие (Add\ Remove\ Find)
2)Тип (видимо токена) (DATE\ GIFT\ SIMDATA)
3) Неуверен, но мне кажется, что этот HEX отвечает за токен или его количество (stored in Temp0 \ of count stored in Temp0)
4)Что это такое я понять не могу (но попробуйте поставить вместо 00 например FC или FF), если кому-нибудь известно, напишите пожалуйста.
Последние 4 Hex-а отвечают за GUID токена.
Таким образом:
a)Чтобы добавив токен успешно его использовать, нужно знать его тип (собственно я и стал всве это расписывать, после того, как добавил Монеты в инвентарь к «ингредиентам» (тип-08), вместо «других магических предметов»(тип-07) и не смог этими монетами расплатиться).
b)Остается еще HEX номер 4.
IV. Когда сим тратит деньги над его головой возникают циферки (для обычных денег на синем фоне, для монет на малиновом) обозначающие потраченную сумму. Я тоже так хочу, но нигде не нашел (или не разглядел) Как это делают.
Спасибо.
Homo homini lupus est
Gilder, тем, что локальная переменная никак не влияет кроме "положить туда значение" и "прочитать оттуда значение". А Temporary Storage при вызове функции действует как параметр. То есть, ты присваивал к примеру
Temporary Storage 0 Assign to: 10.
Потом тебе захотелось запустить функцию, и ты запустил ее. Если теперь в функции использовать Parameter 0, то он будет равен 10. С локальными переменными такой фишки не получится.
IV. Циферки - это My person data Money Amount over Head. Если ему присвоить значение, то на некоторое время над головой сима появятся циферки с этим значением. Но звук монеты нужно вызывать отдельно через Play Sound.
[size=1]Шогал добавил [date]1075755074[/date]:[/size]
Shy, у меня есть вопрос - в стринге можно поставить $Local:0 и оно заменится на Local Variable 0. Но для Temporary Storage и для Parameter я пробовал различные комбинации, но ни одна из них не сработала. Какойнабор символов заменяется при выводе на значение Temporary Storage и какой для параметра? (лучше дай полный список всех строк которые знаешь, а то нигде в инете я не могу этого найти)
1)Спасибо Шогал. Про | my person data Money Amount over Head|
я сам только что допер. А по поводу Temporary Storage отдельное спасибо.То есть насколько я понял, Temporary Storage-это что-то вроде глобальной (межскриптовой) переменной.
2)Возвращаясь к «надголвным» цифрам. Циферки появляются на синем фоне, а хотелось бы чтобы на малиновом (или малиновый цвет – это глюк?), как такое сделать?
3) Про | my person data ..… over Head|. Не эта ли функция отвечает за появление над головой симов «смайликов», «сердечек», «+» и
«-» при разговоре?
Homo homini lupus est
Шогал, про стринги, которые в message передаются, на hackersresource было довольно много... куда оно уползло (сайт перекраивался) - не знаю, но подозреваю, что сюда.
Gilder, ты туда тоже сходи, там много вкусного
А вот что я себе сохраняла давным-давно:
$Job:x:y
Display the job name for job type stored in Local Variable x and promotion level stored in Local Variable y.
$JobDesc:x:y
Display the job description for the job type stored in Local Variable x and promotion level stored in Local Variable y.
$JobOffer:x:y
Display the job offer for the job type stored in Local Variable x and promotion level stored in Local Variable y (note: I think y is always set to 0)
$Local:x
Displays whatever number is in Local Variable x.
$Me
The current sim's name.
$Neighbor
The name of the sim currently in the stack.
$Object
The name of the object currently in the stack.
$TimeLocal:x
Outputs the value in Local Variable x in the proper language format for a hour.
For example, let's say I wanted to display a dialog for "Bob" showing his job, time he goes to work and how much he makes. Local variables are set up as follows...
Local Variable 0 = job type, 1 = promotion level, 2 = current pay, 3 = job start time.
STR#:1
Hi $Me! You are a $Job:0:1, you make $$Local:2 and you go to work at $TimeLocal:3. Your job consists of $JobDesc:0:1.
Gilder,
2) Это авторская задумка Maxis, и поэтому поменять цвет не получится
3) Нет, за появление других служит Set Balloon/Headline.
[size=1]Шогал добавил [date]1075794541[/date]:[/size]
Jasana, спасибо Только этот список не полный - где-то в каком-то стринге мне попадалась странная комбинация $NameAttrib:3, но почему-то она работала лишь в этом скрипте, и причем выдавала имя какого-то определенного сима
Gilder
III. В третьем байте задаются разные флаги, в четвертом -- номера используемых Temp'ов. Вместо метода "научного тыка" можно поступить по-другому. Вначале изучить файл sst.txt в котором описан скриптовый язык для Pencil'а, а потом разбирать script.txt. Там конечно комментариев маловато, но понять можно.
Шогал
Полный список ключевых слов такой:
$Neighbor
$FamilyAssets
$Family
$Me
$Object
$Job
$Local
$TimeLocal
$JobOffer
$Grade
$JobDesc
$NameLocal
$NameAttrib
$NeighborLocal
$Attrib
$CatalogLocal
$FameTitleLocal
$TokenNameLocal
Первые 11 есть и в The Sims 1.0, остальные семь к ним добавлены позже. Я разбирался с ними когда-то, но до конца это дело не довел.
1)Спасибо за ссылку Jasana, там действительно много, так много, что я даже почти захлебнулся. А в совокупности с не русским языком, все это море информации довольно сложно к восприятию. Так что я наверное продолжу задавать свои вопросы здесь, а ежели на той страничке написан ответ (значит я его просто пока там не нашел), просто стукните маня ссылкой на него пожалуйста. А то разбираться я буду долго, а интернет почти весь вышел.
2)Спасибо Шогал.
3) Спасибо Shy. Да действительно, в 4-ом HEX-е задаются номера Temp-ов, но вот если подставить в него FF или FC (я это делал при остальных Hex-ах |00|07|03|FF|EC|1B|E8|99| ) функция видоизменится, в ней появится еще одна пара скобок (Use что-то–не помню что). Посмотри, может узнаешь что это такое. А sst.txt я еще раз просмотрю, может и вправду прошляпил что-то.
Homo homini lupus est
Нельзя ли поподробнее узнать, о функции №44 (Animate Sim). Насколько я понял, она отвечает за «проигрывание» симом некой анимации (движения). Хотелось бы узнать:
1)О модификациях этой функции.
2)О ее параметрах.
3)О том откуда она берет эти анимации
4)О том как она это делает
5)Можно ли эти анимации просмотреть до того как впишешь их в объект.
Наверное по этому поводу будет еще масса вопросов, но чтобы задавать вопросы нужно знать хотя бы некоторые ответы. К сожалению script.txt мне пока не очень по зубам. Очень трудно все это читать и осмысливать, со временем надеюсь втянуться, и тогда дуратских вопросов станет меньше.
Homo homini lupus est
Gilder
3) Из стринга, указанного в OBJD. Там есть Animation table ID# (обычно он равен 129). Открыв этот ресурс ты увидишь список анимаций.
1) Можно проделать анимацию в обратном порядке, можно также backwards и background, но я не разбирался с этим вопросом.
4) Функция начинает анимировать сима, и если анимация не закончилась идет по ветви false (ее обычно замыкают саму на себя), а когда кончилась - по ветви true. Также она возвращает в Parameter 0 (или в другую переменную которую ты для этого указал) какой-то return event, но я никогда его не просматривал (очевидно, это номер кейфрейма анимации).
5) Некоторые анимации можно просмотреть в программе SimShow, но только стандартные (для симс 1.0).
[size=1]Шогал добавил [date]1075837681[/date]:[/size]
Shy, то-то я думаю - почему этот чертов $NameAttrib глючит
1)Еще раз по поводу функции |Manage Inventory ( 1.x Animate Object in 2.0 )| №51.
Например:
Manage Inventory ( 1.x Animate Object in 2.0 ) (Add token of type with object GUID:99e81bec of count stored in Temp 0.) {flags = 0, 0, 0, 0}
Можно ли сделать так чтобы функция брала GUID токена из Temporary Storage или из какого-нибудь другого вида переменных, параметров, а не указывала его в явном виде ?
Что-то вроде:
Manage Inventory ( 1.x Animate Object in 2.0 ) (Add token of type with object GUID stored in Temp1 of count stored in Temp 0.) {flags = 0, 0, 0, 0}(эту строчку я выдумал сам, во всяком случае даже если она существует на самом деле, я ее не видел. )
2)Большинство функций имею вот такой фрагмент {flags = 0, 0, 0, 0}, не могли бы вы расказать, что за флажки такие? Зачем? Как ими пользуются?
3) Спасибо Шогал. Открыв (129) ресурс (книжного шкафа), я увидел список строчек примерно следующего содержания (A20_get_book, это как я понимаю ссылка на фрагмент анимации), а вот откуда она берет этот самый A20_get_book, я так и не понял. Может быть мои представления по этому поводу вообще в корне неверны? Не мог бы ты пояснить?
Спасибо.
Homo homini lupus est
Боюсь, что нет - во всяком случае, ни разу такого не виделаМожно ли сделать так чтобы функция брала GUID токена из Temporary Storage или из какого-нибудь другого вида переменных, параметров, а не указывала его в явном виде ?
В подтверждение этого - вспомни о том, что гуид занимает 4 первых хекса из восьми, а настраиваемые аргументы (когда можно поставить просто число, my / stack object attribute, local variable и т.д.) - один хекс с начала и один хекс с конца.
3) Это имя файла анимации, точнее, с таким именем файлов два - *.cfp, *.cmx. Лежат либо в GameData\Animation\Animation.far, либо в GameData\Skins - обязательно в папке.
Самому анимацию делать - с помощью SimPose...
1)СпасибоJasana.
2)Не могли бы кто нибудь написать величины по умолчанию для Локальных переменных, параметров, Temporary Storage и т.д?
3)my / stack object attribute это кто такие?
Спасибо.
Homo homini lupus est
Idea and creation: fuldon (aka miXei) © 2000-2015
Powered by vBulletin® Version 4.2.6 by vBS Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. |