Часто задаваемые вопросы

Автор clearing, 25 января 2010 14:00:20

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

Soul_Tear

#225
С кошельком пока ничего не получается.

Цитата: Dront от 10 февраля 2012 00:01:19связать его с файлом миссии командой set_gamesys (имяфайла). Только после этого стимул "проснётся".

Не понял, я это делал еще в самом начале работы над уровнем, или после создания стимула надо снова вбивать эту команду? В стимулах мой PurseStim то висит.

ЦитироватьПро перемещение одного предмета на другой я написал как пример в своих "заметках". Можно там посмотреть. Это самый последний пункт, кажется, раздела под номером 6.

Перечитал несколько раз, но не работает, по идее  все тоже самое: там молот на пьедестале, здесь кошелек на ящике. Возможно, я в связях запутался, или в статье неточность. Например, между первым шагом из статьи и практикой есть несоответствие.
В статье Первый шаг - удаление "активного" молота, выбираем Destroy Object в раскрывающемся списке Effect, а в поле Agent Object ставим переключатель на Source - это означает, что уничтожится тот "источник", что воздействовал этим стимулом - то бишь наш молот.
Однако в этой опции есть только поле Target Object.

Цитата: Zontik от 10 февраля 2012 10:47:11
Вопрос: кошелек ты берешь в ходе игры или он у тебя есть изначально? Во втором случае все намного проще, его вообще не надо делать активным. То есть просто кидаешь на стол - и все.

Кошелек идет со старта, но мне бы хотелось, чтобы он наводился как отмычка, как талисманы стихий на замки стихий.

Цитировать
А с текстурами все равно как-то невнятно. А если грузить текстуры по одной командой load_a_texture семейство имяфайлабезрасширения - тоже вылетает?

По одной из разных семейств грузятся, как крайний вариант конечно сгодится.

*****
Создал PurseTeleportButton и TeleportTrap, связал все таким образом:
PurseX -> ControlDevice -> PurseTeleportButton
PurseTeleportButton -> ControlDevice -> TeleportTrap

TeleportTrap поставил сверху на ящик по центру, может его надо как-то особо ставить?

Источник кошелька:


Приемники ящика, на который надо положить кошелек, может так будет более понятно:



Завтра со свежей головой попробую сначала сделать, может тупо что-то упускаю из виду.

Dront

ЦитироватьНе понял, я это делал еще в самом начале работы над уровнем, или после создания стимула надо снова вбивать эту команду?
Пересохранять gamesys после вбивания стимула - обязательно. Заново привязывать .gam-файл к .mis (если это уже было сделано однажды) - насколько я поиню, уже не надо.
ЦитироватьОднако в этой опции есть только поле Target Object.
Скорее всего, во 2-м Дромеде это просто другое название того же самого поля. Я свой писал под DromEd 1.37 для первого Вора. Зрительная память подсказывает, что это то самое поле, только названное по-другому.
ЦитироватьPurseX -> ControlDevice -> PurseTeleportButton
Т.е. кошелёк пошлёт сигнал "вкл." на кнопку? А имеет ли смысл это делать, если потом всё равно в реакции на стимул пропишем Frob object к этой же кнопке? Возможно, из-за дублирования и возникает непонятка.
Перечитал посты ещё раз, но так и не понял, что конкретно не работает. Кошелёк просто не ставится на ящик, или ставится, но при этом возникают какие-то глюки?
По скринам - ошибок в настройках Act/React не нашёл.
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Zontik

В твоем случае все не совсем просто, но и не очень сложно.
Во-первых, про "активность" кошелька следует забыть. Frobinfo: World - None, Inventory - Script.
Во-вторых, кошелек делается из ключа с назначением ему модели кошелька. При этом Frobinfo автоматически окажется настроенным правильно.
В-третьих, кошельку-ключу добавляется свойство: Slay result > Normal. Это для того, чтобы при "отпирании" ключ-кошелек самоуничтожался.
Осталось разобраться с объектом, на который кладется кошелек. Объект должен подсвечиваться. Мне не очень нравится эта идея, но таковы условия задачи. Объекту с заранее навешенным свойством Locked и соответствующим Frobinfo (World > Script) придается дополнительный скрипт TrigUnlock, и он привязывается связью ControlDevice к TeleportTrap, а телепорт такой же связью - к другому кошельку, который и будет играть роль брошенного на стол. Разумеется, неактивного.
При наведении кошелька объект (условно - стол) "отпирается", посылая сигнал. Телепорт притягивает к себе кошелек, а ключ-кошелек уничтожается. Выглядит это так, как будто кошельком ткнули в стол и он на него упал.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

Цитата: Dront от 11 февраля 2012 23:33:56
Т.е. кошелёк пошлёт сигнал "вкл." на кнопку? А имеет ли смысл это делать, если потом всё равно в реакции на стимул пропишем Frob object к этой же кнопке? Возможно, из-за дублирования и возникает непонятка.
Перечитал посты ещё раз, но так и не понял, что конкретно не работает. Кошелёк просто не ставится на ящик, или ставится, но при этом возникают какие-то глюки?

Наверное я ошибся, но в обратную сторону связь тоже не дает результата. Кошелек не ставится, а возвращается в инвентарь. Возможно дело в самом объекте, надо попробовать сделать тоже самое с молотом и пьедесталом.


Цитата: Zontik от 13 февраля 2012 09:57:18
В твоем случае все не совсем просто, но и не очень сложно.

То есть можно проще сделать? Как?

ЦитироватьВ-третьих, кошельку-ключу добавляется свойство: Slay result > Normal. Это для того, чтобы при "отпирании" ключ-кошелек самоуничтожался.

Это в каком меню :confused: Я не нашел

ЦитироватьОсталось разобраться с объектом, на который кладется кошелек. Объект должен подсвечиваться. Мне не очень нравится эта идея, но таковы условия задачи.

А что тут не так? Хотя сомневаюсь, что это условия задачи :biggrin: Условия задачи: заплатить вору, чтобы получить снаряжение. Хотел как в "Дракуле", там после кормления лягушек становится доступным поливка цветов, потом спички и камин. Сделано это было не через стимулы, но как именно я не разобрался, вроде там ScriptParams использовался, которым я пока только для двустворчатых дверей применял. Мне также хотелось: у торгоша неактивное снаряжение, после того, как платишь ему кошельком, все становится активным. Вроде было в какой-то фм, но не могу вспомнить.

ЦитироватьОбъекту с заранее навешенным свойством Locked и соответствующим Frobinfo (World > Script) придается дополнительный скрипт TrigUnlock, и он привязывается связью ControlDevice к TeleportTrap, а телепорт такой же связью - к другому кошельку, который и будет играть роль брошенного на стол. Разумеется, неактивного.
При наведении кошелька объект (условно - стол) "отпирается", посылая сигнал. Телепорт притягивает к себе кошелек, а ключ-кошелек уничтожается. Выглядит это так, как будто кошельком ткнули в стол и он на него упал.

А ScriptDoor и KeyDst/Src не нужны? Попробовал и так, и эдак - ничего не происходит, кошелек остается в инвентаре. :(

Zontik

ЦитироватьЭто в каком меню
Извини, просто у меня Dromed и Интернет не только на разных машинах, но и на разных улицах. Так что просто не помню. Но разве так уж долго пробежаться по всем свойствам и посмотреть? Мне кажется, это где-то рядом с Hit Points, но по памяти могу и ошибиться.
ЦитироватьА ScriptDoor и KeyDst/Src не нужны?
Второй безусловно нужен, первый - наверное, возможны варианты. Справочник скриптов всегда должен быть под рукой. Кроме того, я не писал ВСЕ настройки, только наименее очевидные. Все упомнить невозможно.
ЦитироватьА что тут не так? Хотя сомневаюсь, что это условия задачи
Ты сначала все-таки поставь определенную задачу, а потом будем вместе ее решать. Если хочешь, чтобы кошелек наводился на стол как ключ и срабатывал так же - это один сеттинг, если надо кинуть его на стол - совершенно другой. Первый способ проще, но, на мой вкус, он недостаточно изящен. Ну вот просто я не люблю, когда подсвечиваются предметы в полкомнаты размером (хотя и сам изредка этим грешу). Во втором способе - возня с Act/react, причем лучше не пытайся решить проблему частным образом. Сначала разберись с теорией - как это все работает, а потом, глядишь, и вопросов не останется.
Кстати, неопытные игроки предпочтут первый способ, так как подсвечивающийся стол наглядно говорит о том, куда следует пристроить кошелек. Второй способ меня порой безумно раздражает - когда мечешься по всему городу и кидаешь предмет на все предметы мебели подряд, не имея представления, где чья квартира и какая из комнат спальня.
Так что "заплатить вору, чтобы получить снаряжение" - это еще не условия задачи. Это сценарий. Условия задачи - это описание того, как должны выглядеть действия игрока. После этого уже можно думать, как добиться нужного эффекта наиболее простыми средствами.
ЦитироватьМне также хотелось: у торгоша неактивное снаряжение, после того, как платишь ему кошельком, все становится активным. Вроде было в какой-то фм, но не могу вспомнить
Было во многих, но я бы не советовал лезть туда разбираться. Дело почти безнадежное. Технологий много, некоторые авторы были настолько любезны, что написали туториалы. Вот ими и надо пользоваться. Или придумывать собственную технологию, но это скорее путь для немногих знатоков.
Опять же: поставь задачу конкретно. Некоторые частные случаи могут решаться на удивление просто. Хотя полноценно функционирующий магазин (причем обязательно с проверкой на платежеспособность!) - вещь крайне непростая.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

#230
Цитата: Dront от 11 февраля 2012 23:33:56
Скорее всего, во 2-м Дромеде это просто другое название того же самого поля. Я свой писал под DromEd 1.37 для первого Вора. Зрительная память подсказывает, что это то самое поле, только названное по-другому.

Разобрался с этим. В первом воре поле Agent Object и для этого случая надо выбрать Source, а во втором это Target Object и нужно было ввести номер объекта. Наконец-то ящик уничтожился  :super:


Цитата: Zontik от 14 февраля 2012 09:51:09
Если хочешь, чтобы кошелек наводился на стол как ключ и срабатывал так же - это один сеттинг, если надо кинуть его на стол - совершенно другой. Первый способ проще, но, на мой вкус, он недостаточно изящен.

Все получилось, teleporttrap - сила, кучу понаделал, раскидал по разным углам, а ящик-стол стимулом убрал. Но этот способ изящным, правда, не назовешь. Как теперь этой "двери" назначить свой звук отпирания замка?

Стандартная схема:
//DOOR UNLOCKS
schema unlocked
archetype DEVICE_MISC
unlocked
env_tag (Event StateChange) (LockState Unlocked)

Моя:
//Put purse on a crate
schema coins
coins
env_tag (Event StateChange) (LockState Unlocked)

Если так поставить - все двери открываются с новым звуком, если убрать последнюю строку - все двери звучат как обычно. И так, и так - нельзя оставлять.
Что тут придумать можно? Скрипт для моей "двери" делать или свойства какие-то раздавать? Догадок не имею.

И бонус-вопрос: как заставить веревочные стрелы, да и все остальное, лежать плашмя, а не воткнутыми в землю? Открыл "Роксбург" - там в секретной комнате на полках все лежит нормально, сравнил свойства тамошних и своих стрел - один в один по всей иерархии, как так может быть? Teleporttrap кстати присамонил стрелу как мне нужно, лежащей плашмя.
С книгами тоже смотрел, некоторые после бросания остаются в воздухе, другие в атрибутах по осям заставил на старте лежать плашмя, но при бросании падают стоя.

Zontik

Последняя строка в приведенной схеме - описание СОБЫТИЯ. Событием в данном случае является отпирание двери. Так что вполне естественно, что ВСЕ такие события при изменении ссылки на звуковой файл начинают звучать иначе.
В твоем случае возможны варианты: или создать свое собственное ОТДЕЛЬНОЕ событие именно для этой двери (но нужно еще понять, чем оно будет отличаться от других) - это путь долгий и чреватый множеством ошибок. Я предлагаю путь наименьшего сопротивления: вообще отключить звук события в данном конкретном случае (кажется, за это отвечает наследуемый скрипт LockSound - то есть нужно заново назначить все другие необходимые скрипты для конкретной двери и поcтавить галочку Don't Inherit), а необходимый звук воспроизвести насильно и однократно с помощью SoundTrap. Да, при этом звук будет идти не от объекта, а звучать "в ушах", но ты же не собираешься перекидывать кошелек через левое плечо? Так что разница вряд ли будет ощутима.
Насчет стрел: наверное, все новички наступают на эти грабли. Я тоже на них хорошо постоял. И мне совсем не было смешно. Решение: в физических свойствах объекта есть раздел, название которого я, к несчастью, забыл - или Controls, или что-то похожее по смыслу... в общем, там надо поставить флажки Location и Rotation. После этого стрелы перестанут вертеться и проваливаться сквозь пол.
С книгами все гораздо хуже, дело в том, что объект в момент бросания наполовину создается заново из иерархии, а это означает, что некоторые свойства, назначенные твоей конкретной книге, теряются. Выход: менять свойства объекта в самой иерархии.
Но там еще есть некоторое противоречие с физической моделью... если кратко - книга или крутится как шарик, или пролетает сквозь стены. Какой-то способ бороться с этим существует, но он достаточно неочевидный... надежнее просто запретить бросаться книгами.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

#232
Спасибо, хороший способ со звуком :), хотя цепочка связей забавная выстроилась, но то ли еще будет. Со стрелами тоже порядок, вот только не понял, почему в "Роксбурге" флажков  Location/Rotation не было, а стрелы лежали как надо.

А с телепортами я рано порадовался, когда StartingPoint передвигал и позже проходил мимо стола-двери, то не обнаружил неактивной стрелы с веревкой, которая должна потом заменится на активную :suspect:, новая стрела и не появилась после использования кошелька-ключа, снова загрузился - лежит, походил возле этого места - исчезает то неактивная стрела, то та, которая должна присамониться, то обе. Если сразу стартовать у этого места и использовать кошелек - все самониться как надо. Единственное предположение, что я каким-то образом привел в действие TeleportTrap, но когда я сдругой стороны подходил к столу, то никак не мог наступить на него, и кошельком до этого не игрался, вообще в инвентарь не лазил. С этим как быть?

Zontik

Цитироватьне понял, почему в "Роксбурге" флажков  Location/Rotation не было, а стрелы лежали как надо.
Возможно, автор поправил сразу в иерархии.
Цитироватьвсе самониться как надо
Требуется перевод.
Цитироватьисчезает то неактивная стрела, то та, которая должна присамониться
С трудом, но, кажется, врубился. Ты, похоже, забыл удалить неактивную стрелу. В результате обе они оказались строго в одной точке пространства, вот и выпирают друг из-под друга.
Я в таких случаях с телепортацией никогда не связываюсь, просто меняю свойства у объекта. Экономия все-таки. Есть же такой эффект у рецептронов - Set Property. Имя свойства - FrobInfo, Agent Object - любой объект на уровне с подходящим FrobInfo (ну, например, дверь), Target Object - твоя стрела.
Хотя если ты не использовал S&R, тогда забудь, что я это написал.
Но вообще описание проблемы какое-то сумбурное. Для тебя, может, и очевидно, что такое "самониться" и на кого ты мог наступить, подходя к столу, а вот для человека не в теме это довольно сложно.
Дайте глазам отдохнуть! Тёмное место

Dront

Полагаю, "самониться" = вызываться, телепортироваться.
Но и правда понятно с трудом, в чём проблема.
Старая стрела заменяется на новую не при всех условиях, а только если сразу же бросить кошелёк на стол?
Или вопрос в чём-то другом?
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Soul_Tear

На полу в комнате в разных углах лежат две стрелы: неактивная и активная, активная должна портонуться после применения кошелька на столе, но иногда она изчезает хаотично, и в этом случае на месте неактивной стрелы ничего не появляется.

Цитата: Zontik от 16 февраля 2012 09:39:11
Ты, похоже, забыл удалить неактивную стрелу.

А зачем ее удалять, если она должна замениться на нормальную стрелу? После применения кошелька, неактивная улетает в синюю комнату, а на ее месте должна появится нормальная стрела, но что-то "перехватывает" ее до события.
Вообще, что приводит в действие teleporttrap в моем случае, эффект отпирания двери-стола? Если ее еще что-то другое телепортирует, то что это может быть?





Dront

У меня пока только один вариант, и то навряд ли правильный: у активной стрелы сбиты настройки, конкретнее - всё те же Physics -> Models -> Control: Location и Rotation. Но, сдаётся мне, не в этом дело.
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Zontik

ЦитироватьВообще, что приводит в действие teleporttrap в моем случае, эффект отпирания двери-стола?
Я бы тоже хотел это знать.
Может, уже напишешь, как и что у тебя работает? Всем станет понятнее, где искать ошибку.
Если судить по твоему скудному описанию, похоже, что ты телепортируешь активную стрелу посредством эффекта рецептрона Teleport Object, где в качестве Agent Object используется неактивная стрела. Если это действительно так, тогда проблема вот в чем. Поскольку активная стрела тоже телепортируется, причем в тот же самый момент, а понятие одновременности вещь довольно относительная, - иногда активная стрела телепортируется раньше неактивной, и в этом случае она перемещается в нужное место; а иногда (видимо, как такты процессора лягут) неактивная перемещается раньше, и активная летит за ней вдогонку. Варианты решения здесь такие.
Первый. Телепортировать обе стрелы одним и тем же способом, одним и тем же стимулом, строго соблюдая очередность: сначала телепортируется активная стрела (это действие должно быть первым в списке), затем - неактивная. После введения данных еще раз открыть окошко списка действий и проверить, поскольку редактор любит своевольничать и менять эффекты местами (особенно когда они выставляются повторно).
И второй. Телепортировать активную стрелу не в Agent Object, а по абсолютным координатам (взять их с положения неактивной стрелы). В поле Agent Object в этом случае выставляется 0 (None).
Если же ты не используешь рецептронные эффекты, внимательно проверь, что и когда удаляется. Возможно, происходит так, что Teleport Trap успевает удалиться до своего использования. В любом случае редактор без причины глючить не будет, ошибку надо искать в твоих собственных настройках.
Например, если у тебя одно действие с помощью связей запускает сразу две TeleportTrap, то первой сработает та, которая в списке связей стоит первой.
Я предлагаю тебе нарисовать что-то вроде блок-схемы, из которой сразу станет ясно, что и как работает. Если делать все в уме, ошибку отыскать бывает практически нереально.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

#238
Да что за черт, удалил старое событие, чтобы с нуля воссоздать и снова проверить стрелу, так теперь ящик-дверь не убирается.
Вот так это выглядит:



И почему-то неактивный ящик телепортируется в землю, хотя координаты вбил те же, что у активного ящика - и внизу, и в свойствах.



Активный ящик не хочет исчезать, ни через стимул, ни через телепорт, никак, вроде так же все сделал, как в прошлый раз. :mad:
Какая должна быть последовательность связей для телепортации активного ящика?

Shadowhide

сделай так,что-бы неактивный ящик становился активным и не парься с телепортами
делается это через FrobInert
посмотри After Dark
я там дофига подобного сделал