• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней. • Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней. • При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС. • При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "+" полезного сообщения.
Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.
Красное солнце Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
В общем, двигаемся дальше. Команда setlocklevel может только УСТАНОВИТЬ уровень сложности замка, но там 0 - это уровень "новичок", я пробовал даже ставить -1 - все равно"новичок", а мне надо именно ОТКРЫТЬ замок скриптом, а команда unlock не компилируется Ну и что теперь делать бедному крестьянину?
Это с какого же бодуна разработчики Папируса так нагадили бедным модмейкерам?
В общем, у кого есть решение, как скриптом открываются замки?
Добавлено (22 Февраля 2015, 19:48) --------------------------------------------- Благодарствую - работает!
Добавлено (22 Февраля 2015, 19:49) --------------------------------------------- Сейас будем накладывать на другие варианты заморозку
Добавлено (22 Февраля 2015, 21:17) --------------------------------------------- Так, опять загвоздка. Создаю спелл "способность" с постоянным морозным эффектом "на себя". Указываю его в пропертях скрипта. Пишу Game.Getplayer().AddSpell(FrostEmergency). Скрипт компилируется. В игре - идет указание, что "Аварийная заморозка" добавлено игроку. Но у игрока никаких новых эффектов не появляется!
valambar, если в маг. эффекте Ability установлен флаг "Hide in UI", в меню "Активные маг. эффекты" он отображаться не будет.
Но игрок и не замораживается по факту.
Может, есть примеры готового скрипта с наложением на игрока какой-нибудь смертельной гадости?
Кстати, проверил - нет такого флажка.
Увеличил мощность эффекта - игрок послушно сдох
Все, строим локацию дальше. Первый активатор в треугольных числах заставил разбираться, следующий заставит игрока решать квадратные уравнения А за неправильный ответ будем убивать его электрическим разрядом
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №1417
написано: 22 февраля 2015, 19:25
| Отредактировано: Multigone - 22 февраля 2015, 19:27
Видимо не в той теме задавал вопросы, и ответа не получил вопросы такие:
1. Хочу добавить в скрипт команду на старт музыки, музыка сделана(движок ее воспроизводит), какую команду надо добавить, при старте анимации или сцены, и акую команду на стоп музыки, после завершения сцены или анимации 2. Нужен код на таймер по которому сценка будет запускаться в определенные часы, скажем в 14, в 18,и в 20 часов, либо каждый час или полчаса и где этот скрипт в сцене надо разместить
Пока все , большое спасибо всем, кто ответит Это уже наверняка все сделано, только надо знать где смотреть
Взялся за скрипт для часов. Имеется 24-часовой циферблат и 24 стрелки, которые изначально отключены. Смысл в том, что часы каждый час должны дисейблить предыдущую стрелку и энейблить следующую (типа стрелка переместилась на час). За основу взял скрипт из вики для автоматического включения/выключения света. Разобрался насколько смог и за два часа состряпал свой вариант. При компиляции выдает ошибки. Привожу сам скрипт:
float Property ClockTime00 = 0.0 auto float Property ClockTime01 = 1.0 auto float Property ClockTime02 = 2.0 auto float Property ClockTime03 = 3.0 auto float Property ClockTime04 = 4.0 auto float Property ClockTime05 = 5.0 auto float Property ClockTime06 = 6.0 auto float Property ClockTime07 = 7.0 auto float Property ClockTime08 = 8.0 auto float Property ClockTime09 = 9.0 auto float Property ClockTime10 = 10.0 auto float Property ClockTime11 = 11.0 auto float Property ClockTime12 = 12.0 auto float Property ClockTime13 = 13.0 auto float Property ClockTime14 = 14.0 auto float Property ClockTime15 = 15.0 auto float Property ClockTime16 = 16.0 auto float Property ClockTime17 = 17.0 auto float Property ClockTime18 = 18.0 auto float Property ClockTime19 = 19.0 auto float Property ClockTime20 = 20.0 auto float Property ClockTime21 = 21.0 auto float Property ClockTime22 = 22.0 auto float Property ClockTime23 = 23.0 auto
objectreference Lever00 auto objectreference Lever01 auto objectreference Lever02 auto objectreference Lever03 auto objectreference Lever04 auto objectreference Lever05 auto objectreference Lever06 auto objectreference Lever07 auto objectreference Lever08 auto objectreference Lever09 auto objectreference Lever10 auto objectreference Lever11 auto objectreference Lever12 auto objectreference Lever13 auto objectreference Lever14 auto objectreference Lever15 auto objectreference Lever16 auto objectreference Lever17 auto objectreference Lever18 auto objectreference Lever19 auto objectreference Lever20 auto objectreference Lever21 auto objectreference Lever22 auto objectreference Lever23 auto
float Function GetCurrentHourOfDay() global
float Time = Utility.GetCurrentGameTime() Time -= Math.Floor(Time) Time *= 24 Return Time
EndFunction
Function RegisterForSingleUpdateGameTimeAt(float GameTime)
Насколько я понимаю, через Event OnInit() часы при загрузке получают стартовую позицию (state) соответствующую текущему игровому времени. Эта позиция включает нужную стрелку и задает ожидание до срабатывания следующей позиции. Затем ситуация повторяется и идет по циклу, и в идеале каждый час стрелка перемещается на одно деление. Но компилятор выдает ошибку:
required (...)+ loop did not match anything at input 'auto' mismatched input '\\r\\n' expecting STATE
Как я понял он ругается именно на позиции. Что у меня прописано неправильно?
- Что это за горы стоят? - А, это орки бегут!
Изменение репутации для пользователя Holtof55
Holtof55Offline
Сообщение №1427
написано: 25 февраля 2015, 14:36
| Отредактировано: Holtof55 - 25 февраля 2015, 14:42
Может кто подскажет, по моему сценарию надо нпс пригласить с собой, то есть после диалога нпс должен идти за игроком, после другого диалога- вернутся к своим делам..Какую функцию надо прописать в диалоге? (не повредив при этом работе AFT
Изменение репутации для пользователя lolososo
lolososoOffline
Сообщение №1428
написано: 25 февраля 2015, 14:42
| Отредактировано: lolososo - 25 февраля 2015, 14:42
Взялся за скрипт для часов. Имеется 24-часовой циферблат и 24 стрелки, которые изначально отключены. Смысл в том, что часы каждый час должны дисейблить предыдущую стрелку и энейблить следующую (типа стрелка переместилась на час). За основу взял скрипт из вики для автоматического включения/выключения света. Разобрался насколько смог и за два часа состряпал свой вариант. При компиляции выдает ошибки. Привожу сам скрипт:
slastik, Массивы, не не слышал
Изменение репутации для пользователя Holtof55
Holtof55Offline
Сообщение №1429
написано: 25 февраля 2015, 15:10
| Отредактировано: Holtof55 - 25 февраля 2015, 15:16
lolososo, Ok, пакет создал, а как его добавлять и удалять при разговоре-то (я еще только учусь, не кидайтесь тапками) я так понимаю, что в диалоге надо (в окне папируса) надо вписать чтоюто типо Actor.AddPacgageIDпакета() -так?
slastik, про массивы Вам верно сказали.. Разберитесь как-нибудь под настроение. А если вернуться к теме именно с часами. То там и вовсе не обязательно иметь 24 стрелки. В скриптах есть команды для перемещения и поворота объектов. Можно даже чтоб это делалось плавно. Часы даже с двумя стрелками и плавным их движением - не проблема...
Изменение репутации для пользователя lolososo
lolososoOffline
Сообщение №1431
написано: 25 февраля 2015, 16:19
| Отредактировано: lolososo - 25 февраля 2015, 16:21
slastik, про массивы Вам верно сказали.. Разберитесь как-нибудь под настроение. А если вернуться к теме именно с часами. То там и вовсе не обязательно иметь 24 стрелки. В скриптах есть команды для перемещения и поворота объектов. Можно даже чтоб это делалось плавно. Часы даже с двумя стрелками и плавным их движением - не проблема...
Просто slastik`y нужно подучить папирус и все будет ок, я говорю про все функции и события
В скриптах есть команды для перемещения и поворота объектов. Можно даже чтоб это делалось плавно.
Такие часы будут пространственно зависимы во первых, и трудоемки в настройке углов поворота стрелок во вторых. К тому же состоять должны из нескольких объектов и для каждой стрелки будет нужен свой скрипт. Если делать интерактивные часы, то ИМХО путем создания анимированной модели.
Если есть возможность сделать всё прямо в nif файле, то это, конечно, намного лучше. Спору нет. Но в защиту скриптовых часов тоже скажу слово: все названные @perture недостатки - не правда. Объектов действительно будет несколько, но скрипт только один, не сложный и работающий при любом размещение часов в пространстве.
Dsion, lolososo, @perture, я не могу пока похвастаться глубокими знаниями в скриптописании, учусь сам на собственных ошибках. Нашел способ, который, как показалось, смогу осилить. Анимированную модель я точно не создам, как сделать плавно движущиеся стрелки не знаю, о массивах действительно не слышал. Я думал, люди здесь помогают друг другу, а не повышают свой уровень самооценки, глядя на других сверху вниз с чувством собственного превосходства. Всего-лишь хотел, чтобы мне помогли найти ошибку. Простите, я наверно ошибся темой.
- Что это за горы стоят? - А, это орки бегут!
Изменение репутации для пользователя valambar
valambarOffline
Сообщение №1435
написано: 25 февраля 2015, 17:12
| Отредактировано: valambar - 25 февраля 2015, 17:23
Как вернуть состояние скрипта к начальному? Активатор выдает мессажбокс с несколькими вариантами, в нескольких прописан переход к следующему состоянию, а в одном по идее должен быть возврат в начало. Начало у меня Auto State Begin, выбор осуществляется в состоянии State Result, а конечное состояние State After. Так вот, GotoState "After" скрипт спокойно компилирует, а на GotoState "Begin" компилировать отказывается.
Мы пытались вежливо и ненавязчиво направить тебя в нужном направлении. Потому что скрипт в текущем виде - одна большая ошибка. Если разберешься с массивами или FormList, сможешь сократить его в 20 раз. Нам не стоило об этом говорить?
Изменение репутации для пользователя valambar
valambarOffline
Сообщение №1437
написано: 25 февраля 2015, 17:22
| Отредактировано: valambar - 25 февраля 2015, 17:26
Анимированную модель я точно не создам, как сделать плавно движущиеся стрелки не знаю, о массивах действительно не слышал. Я думал, люди здесь помогают друг другу, а не повышают свой уровень самооценки
Ну не все так просто - я вот тоже не умею работать с массивами, а те, кто умеет - не всегда в состоянии объяснить В руководствах тоже много воды и тумана - ничего подобного OSFM (очень хорошая энциклопедия по скриптовому языку Обливиона) для Папируса я пока не видел. Так что пока у меня выход один - учиться делать ОЧЕНЬ простые скрипты, чтобы они работали. А потом дойти и до сложностей.
Кстати, движение стрелки можно прописать и без массива - командой поворота, повторяющейся через заданное количество секунд. Сам не знаю, как это сделать, но это должно быть типа рекурсивной команды "градусная мера стрелки = градусная мера стрелки + 6 градусов". А задержку прописать выбором интервала, допустим, в одну игровую минуту. Узнай, как это прописывается в Папирусе при помощи команд и переменных, и не надо будет никаких массивов. И модель не анимированная будет, а три статические модели - один статик циферблат и два активатора стрелки, на которые и будешь вешать скрипты с разной скоростью попорота. Я объясняю это не как знающий Папирус, а чисто умозрительно, но думаю, здравый смысл в этом есть.
Изменение репутации для пользователя lolososo
lolososoOffline
Сообщение №1438
написано: 25 февраля 2015, 18:05
| Отредактировано: lolososo - 25 февраля 2015, 18:07
Потому что скрипт в текущем виде - одна большая ошибка.
Спасибо за помощь всем, кто отозвался, но смог разобраться сам. Тело скрипта полностью рабочее, просто я неправильно прописал свойства на внешние объекты. Вместо ObjectReference MyObject auto нужно было всего лишь указать ObjectReference Property MyObject auto. После этих исправлений скрипт прекрасно скомпилировался и работает. Пусть без массивов и всего с одной стрелкой, но зато звук кукушки добавить получилось