Fr0st Ph0en!x Опубликовано 25 февраля, 2008 Жалоба Поделиться Опубликовано 25 февраля, 2008 Написал простейший скрипт на включение\отключение защитного поля. Надо сказать, что в моем интерьере есть три различных отключаемых поля, и для всех созданы похожие скрипты, которые вешаются на рычаги. Скрипты созданы банальным копипастом по образу и подобию первого, с небольшими модификациями. Так вот, первые два скрипта отлично функционируют, а этот - нет! Пробовал копипастить его содержимое в новый скрипт, создавать новый активатор и вешать на него этот скрипт - все бесполезно, при клике ничего не происходит. Где ошибка? о_0Begin 00_energy_wall_1 Short doonce If ( doonce == 0 ) If ( OnActivate == 1 ) "00_The_Energy_Wall2"->disable PlaySound3D "enchant success" MessageBox "Эти центурионы не опасны, если их не атаковать." Rotate X 180 Set doonce to 1 return endif endif If ( doonce == 1 ) If ( OnActivate == 1 ) "00_The_Energy_Wall2"->enable PlaySound3D "SothaGiantBlade" Rotate X -180 Set doonce to 0 return endif endif End Ссылка на комментарий Поделиться на другие сайты Поделиться
Олег Барс Опубликовано 25 февраля, 2008 Жалоба Поделиться Опубликовано 25 февраля, 2008 А на чем висит скрипт? Если не на вращающейся стене, то в Rotate надо указать что вращать:Object_ID -> Rotate, X, 180 Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 25 февраля, 2008 Автор Жалоба Поделиться Опубликовано 25 февраля, 2008 На рычаге. На других рычагах работает нормально. Ссылка на комментарий Поделиться на другие сайты Поделиться
Олег Барс Опубликовано 25 февраля, 2008 Жалоба Поделиться Опубликовано 25 февраля, 2008 А, у тебя рычаг вращается. Проверь уникальность ид этого рычага, и попробуй прописать его ид в скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 25 февраля, 2008 Жалоба Поделиться Опубликовано 25 февраля, 2008 (изменено) 1. Активатор-силовое поле должен иметь ункальный ID2. Активатор-силовое поле должен быть Reference Persist (галочку нужно выставить)3. Функции PlaySound3D не существует (PlaySound либо PlaySound3DVP, еще не забывай указать на какой объект должен проиграться звук, если не укажешь, то проиграется на сам рычаг)4. Можно обойтись без return'ов остальное все вроде норма =) Изменено 25 февраля, 2008 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Скампецкий Опубликовано 25 февраля, 2008 Жалоба Поделиться Опубликовано 25 февраля, 2008 (изменено) Ты что, всё ещё над лагранаком маешься? Я себе в Дорминион пещеру с роботом обратно перетащил, кстати. Изменено 25 февраля, 2008 пользователем Скампецкий Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 25 февраля, 2008 Автор Жалоба Поделиться Опубликовано 25 февраля, 2008 По ходу, проблема была в отсутствии галочки в Reference Persist, никогда бы не подумал, что это может привести к таким последствиям.2Скампецкий:Ога, через год решил таки доделать, что он валяется тут у меня впустую, а я так старательно диалоги для центуриона придумывал. Кстати, оффтоп, но тем не менее, не создавать же ради этого новую тему: какое условие нужно проставить в диалоге, чтобы предмет выбрасывался только в первый раз при активации топика? Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 26 февраля, 2008 Жалоба Поделиться Опубликовано 26 февраля, 2008 (изменено) По ходу, проблема была в отсутствии галочки в Reference Persist, никогда бы не подумал, что это может привести к таким последствиям.Угу, об этом, кажысь, еще в MSFD писалось. Типа команды не воздействуют на объект, если галочу не выставить. Причем, если не ошибаюсь это актуально только в том случае, если скрипт лежит не на управляемом объекте. (как в твоем случае, когда скрипт прикреплен к рычагу, а воздействует на силовое поле) =) Кстати, оффтоп, но тем не менее, не создавать же ради этого новую тему: какое условие нужно проставить в диалоге, чтобы предмет выбрасывался только в первый раз при активации топика?Хм... я бы попробовал в резулте использовать как в скрпте комбинацию с короткой переменой: short once if once == 0 Player->AddItem или PlaceAtPC set once to 1 endif Изменено 26 февраля, 2008 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 26 февраля, 2008 Жалоба Поделиться Опубликовано 26 февраля, 2008 (изменено) Кстати, оффтоп, но тем не менее, не создавать же ради этого новую тему: какое условие нужно проставить в диалоге, чтобы предмет выбрасывался только в первый раз при активации топика?Просто пиши в результате диалога, как сказал ТиДжей Player->AddItem "предмет" кол-воили PlaceAtPC "предмет" 1 1 1 Возможно и команда PositionCell также сработает. Только ограничь повторное обращение к этой же фразе, если это не нужно (например, добавлением журнальной записи. Выще создай фразу, в котрой ничего не выкидывается, содержащую условие по этой самой записи). А то каждый раз будет выкидывать предметы. Изменено 26 февраля, 2008 пользователем LofZ Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 26 февраля, 2008 Автор Жалоба Поделиться Опубликовано 26 февраля, 2008 Спасибо за ценные рекомендации. Кстати, что не так с PlaySound3D? Функция была сперта мной из стандартного морровиндского скрипта, и звук воспроизводится вполне адекватно. Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 26 февраля, 2008 Жалоба Поделиться Опубликовано 26 февраля, 2008 Кстати, что не так с PlaySound3D? Функция была сперта мной из стандартного морровиндского скрипта, и звук воспроизводится вполне адекватно.ой да, сорри, парю, есть такая Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 26 февраля, 2008 Автор Жалоба Поделиться Опубликовано 26 февраля, 2008 Что-то игра вообще вылетает при использовании этой переменной в результате. Вылетает при первом клике по топику.Результат следующий:short once if once == 0 player-> additem "misc_dwrv_artifact60" 2 MessageBox "Неясно, как оценил центурион ваше остроумие, но из него выпало две трубки. Неплохо, пригодятся в хозяйстве." set once to 1 endif Journal "00_FP_Lagranac1" 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 26 февраля, 2008 Жалоба Поделиться Опубликовано 26 февраля, 2008 (изменено) Что-то игра вообще вылетает при использовании этой переменной в результате. Вылетает при первом клике по топику.Результат следующий:ой, я скобочки забыл =)if ( once == 0 ) если не поможет, значит в результе нельзя объявлять локальные переменные, тогда можно сделать иначе: Если я не ошибаюсь, то в топике можно сделать разные варианты ответа (и соответственно результаты нажатия на топик) в зависимости от индекса журнала.Я смотрю, тут после нажатия индекс изменится, вот за это и можно зацепиться, если в условии варианта ответа поставить: Journal ID_Записи После того, как в резулте измениться индекс журнала, этот вариант больше не появиться. Еще способ:1) Написать скрипт на добавление вещи Begin 00_Lagranac1_Script short once if ( once == 0 ) player-> additem "misc_dwrv_artifact60" 2 MessageBox "Неясно, как оценил центурион ваше остроумие, но из него выпало две трубки. Неплохо, пригодятся в хозяйстве." set once to 1 Journal "00_FP_Lagranac1" 2 endif end 2) В резулте сделать команду StartScript, "Begin 00_Lagranac1_Script" Изменено 26 февраля, 2008 пользователем TJ Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 26 февраля, 2008 Автор Жалоба Поделиться Опубликовано 26 февраля, 2008 Вылетает все равно. Буду пробовать другие способы, сенькс. Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 27 февраля, 2008 Жалоба Поделиться Опубликовано 27 февраля, 2008 (изменено) Вылетает все равно. Буду пробовать другие способы, сенькс. Ну, правильно, а чего вы хотите? Когда это будет работать? Если в открытом диалоге, мессаджбокс не работает. Вот так будет выглядеть скрипт, когда трубки выпадают после прикосновения к центуриону. Только после этого, до него уже не дотронешься. Begin 00_Lagranac1_Script short once if ( menumode )returnendif if ( once == 1 )returnendif if ( onActivate == 1 )if ( once == 0 )player-> additem "misc_dwrv_artifact60" 2MessageBox "Неясно, как оценил центурион ваше остроумие, но из него выпало две трубки. Неплохо, пригодятся в хозяйстве."Journal "00_FP_Lagranac1" 2set once to 1endifendif end А если в диалоге, то можно обойтись без скрипта. Создай фразу для центуриона: ""Неясно, как оценил центурион ваше остроумие, но из него выпало две трубки. Неплохо, пригодятся в хозяйстве."".В результате: player->additem "misc_dwrv_artifact60" 2 (без пробелов)Journal "00_FP_Lagranac1" 2 Чуть выше создай еще одну фразу для центуриона, с условием Journal "00_FP_Lagranac1" >= 2 и другим содержанием типа "центурион молчит, как истукан". Изменено 27 февраля, 2008 пользователем LofZ Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 27 февраля, 2008 Автор Жалоба Поделиться Опубликовано 27 февраля, 2008 Сенькс, еще вчера все сделал именно вышеописанным образом, с журнальной записью. Насчет мессаджбокса - я правильно понял, что он не работает в диалоге именно в сочетании с переменной? Ссылка на комментарий Поделиться на другие сайты Поделиться
LofZ Опубликовано 27 февраля, 2008 Жалоба Поделиться Опубликовано 27 февраля, 2008 Сенькс, еще вчера все сделал именно вышеописанным образом, с журнальной записью. Насчет мессаджбокса - я правильно понял, что он не работает в диалоге именно в сочетании с переменной?Он вроде бы нехорошо работает в сочетании с диалогом, потому что это как разные открытые окна. А вообще с переменными и локальными и глобальными он должен сосуществовать нормально. Ссылка на комментарий Поделиться на другие сайты Поделиться
Fr0st Ph0en!x Опубликовано 28 февраля, 2008 Автор Жалоба Поделиться Опубликовано 28 февраля, 2008 Ну не знаю, у меня мессаджбоксы во всех топиках этого кричера стоят и нормально выводятся. В диалоге же ведь они вылезают просто как текст, без отдельного окна. Да и в стандартном Морровинде они в диалогах используются. И вообще никогда не замечал связанных с ними глюков, кроме этого случая. о_0 Ссылка на комментарий Поделиться на другие сайты Поделиться
TJ Опубликовано 28 февраля, 2008 Жалоба Поделиться Опубликовано 28 февраля, 2008 Ну не знаю, у меня мессаджбоксы во всех топиках этого кричера стоят и нормально выводятся. В диалоге же ведь они вылезают просто как текст, без отдельного окна. Да и в стандартном Морровинде они в диалогах используются. И вообще никогда не замечал связанных с ними глюков, кроме этого случая. о_0Ну, я подозреваю в данном случае глюк был из-за объявления в резулте короткой переменной, наверное движок такого просто не понимает =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти