Спасибо, то что нужно. Правда скомпилировалось только после того, как добавил второе условие If akActionRef == Game.GetPlayer(), а первое изменил на If Game.GetPlayer().GetSitState() >= 3
Так и не подскажете как заселить в один дом двух неписей. Чтоб они знали, что это их собственный дом. Как одного поселить знаю, а вот с двумя и больше уже проблема !
Я вижу реализацию поставленной задачи следующим образом. Объедините их одной фракцией (создайте новую для этого) и владельцем дома укажите эту самую фракцию, а не конкретного НПС. Т.е. во вкладке Interior Data выставьте значение NONE для Owner NPC и тогда станет активен пнкт Owner Faction - тут выбирайте свою фракцию. Ну, в аи-пакетах тоже пропишите, чтобы НПС возвращались в этот дом на ночь и спали. Кровать еще нужна двуспальная со свободным доступом к обеим сторонам и подведенной сеткой путей. Что еще вас интересует?
Я знаю, что есть такая вкладка при создании персонажа но вот, что именно там выбирать нужно?
В окне актера вкладка Relationships, там на окошке правый клик и жмете New. Далее в Parent NPC выбираете своего актера, в Child NPC - того актера, к кому он будет относиться, и в Relationship Level - как он будет относиться (от вражды до любви). Тоже самое можете проделать и со вторым актером в обратном направлении. Тип отношений рекомендую Ally. Во вкладке AI Data в строке Assistance у обоих выберите Helps Allies или Helps Friends and Allies - тогда они будут друг друга защищать.
Да проблема не в колличестве. А в том, что он кастуется "На цель"(!). AddSpell просто не подходит, так как в нем не указывается цель.
Почему же не указывается? У вас в скрипте изначально было Game.GetPlayer().AddSpell() - значит спелл вешается на игрока. Если у вас диалог, тогда чтобы не путаться лучше прописать строки:
Actor NPC = akSpeaker Actor Player = Game.GetPlayer()
И после этого вы очень просто манипулируете тем, кому что добавлять. Например:
Player.AddSpell(MySpell) или NPC.AddSpell(MySpell)
Если AddSpell вас не устраивает и вы хотите чтобы сработал шейдер при добавлении спелла, тогда используйте MySpell.Cast()
Как избавить плагин от потребности загружать мастер-файл?
При выборе плагина для загрузки в СК выделите его, затем выделите ненужный мастер-файл и нажмите Ctrl+Del. После следующего сохранения ваш плагин уже не будет его требовать.
Подскажите пожалуйста : В открытом мире навмеши поделены на квадраты, а эти квадраты связаны между собой зелёными прямоугольниками. Ребят, как соединить между собой эти квадраты, если эти прямоугольники удалены. Просто дом персонажа находиться в одном квадрате, а его кузня в другом, и он отказывается идти в кузню, так как эти квадраты не соединены между собой.
Подведите навмеши максимально близко к краю ячейки с обеих сторон, желательно чтобы грани и вершины совпадали и были на одном уровне. Тогда после финализации они соединятся автоматически.
Kwerty, В этом случае вам лучше решить проблему другим способом. Загоните в спелл два эффекта и разделите их по TargetConditions в самом магэффекте. Ну, чтобы на одну цель действовал один эффект, а на другую - второй. Или даже три эффекта, что позволит вам отдельно распределить урон для целей в легких доспехах, в тяжелых и без доспехов вообще.
Для воина, закованного в броню с демедж-резистом 80% и 1000 хп Безжалостная Сила на 500 дамага в общем-то ниочем. Но вот для мага в зачарованных на ману шмотках (1800мп) с жалкими 510 хп это практически смертельно.
Я так понимаю, что проблема заключается в этом? Я предлагаю вам разделить эффекты по целям. Например, если у противника ХП ниже 300 - на него срабатывает эффект с минимальным уроном, если 300-600 - средний урон, если более 600 - максимальный урон. Или вы можете ориентироваться не на количество ХП у цели, а на ее уровень, или на ее экипировку.
Kwerty, попробуйте условие HasKeyword PlayerKeyword == 1 (только задавать не в спелле, а в самом магическом эффекте есть специальная вкладка TargetConditions и указывайте для субъекта, а не для Target).
Хотел давно узнать, как работают Чёрные книги в дополнении Dragonborn. А подробно, скрипт телепортации гг! Тойсть когда гг читает книгу, активируется анимация а потом его телепортирует! Вопрос как примерно выглядит скрипт телепортации. Только не с помощью книги, а с помощью созданного мной заклинания?
Этот вопрос уже был. Вот простейший скрипт на телепорт:
Event OnEffectStart(Actor akTarget, Actor akCaster) Game.GetPlayer().MoveTo(MyMarker) EndEvent
В условиях указываете любой удобный для вас маркер в нужной локации. Прикручиваете к магическому эффекту, а тот уже забиваете хоть в спелл, хоть в свиток, хоть в зелье, хоть в яблоко
Касательно моей проблемы, скачала Free Audio Converter, конвертация прошла успешно я заменила файл но при попытке его проиграть в скайриме - скайрим не отвечает
Возможно у вас получился слишком большой размер файлов, если вы конвертировали их в WAV. В этом случае рекомендую их пережать в XWM, а потом просто изменить расширение на WAV. Тогда вам не нужно будет лезть в редактор, а достаточно лишь заменить ими соответствующие файлы плагина.
Возникла следующая проблемка. Создаю маг эффект с прикрученным скриптом для запуска анимации, а анимация работает только со свободными руками. Каждый раз снимать все вручную неудобно. Подскажите, плиз, скриптовую команду для полной разэкипировки слотов левой и правой руки (чтобы снималось все, будь то факел, оружие, щит или спелл).
Возникла следующая проблемка. Создаю маг эффект с прикрученным скриптом для запуска анимации, а анимация работает только со свободными руками. Каждый раз снимать все вручную неудобно. Подскажите, плиз, скриптовую команду для полной разэкипировки слотов левой и правой руки (чтобы снималось все, будь то факел, оружие, щит или спелл).
Возникла следующая проблемка. Создаю маг эффект с прикрученным скриптом для запуска анимации, а анимация работает только со свободными руками. Каждый раз снимать все вручную неудобно. Подскажите, плиз, скриптовую команду для полной разэкипировки слотов левой и правой руки (чтобы снималось все, будь то факел, оружие, щит или спелл).
Немного разобрался с помощью Artem13. Добавил условие к эффекту, чтобы срабатывал только в небоевой стойке. Оружие в таком случае не мешает, щит получилось убрать с помощью Game.GetPlayer().UnequipItemSlot(39), а вот с факелом беда. Не могу понять какой слот он занимает.
- Что это за горы стоят? - А, это орки бегут!
Изменение репутации для пользователя slastik
slastikOffline
Сообщение №80
| Тема: Вопросы по скриптам Papyrus
написано: 20 августа 2013, 09:34
| Отредактировано: slastik - 20 августа 2013, 09:35
Такой вариант не хочет компилировать. Пробовал по-всякому
Работает команда Game.GetPlayer().UnequipItemSlot(39) для снятия щита. Теперь не могу понять какой номер слота у факела. Буду пытаться методом проб и ошибок.
Добавлено (20.08.2013, 13:34) --------------------------------------------- Очень странно. Все указывает на то, что факел занимает 11-й слот. Но команда Game.GetPlayer().UnequipItemSlot(11) не убирает факел. Поэтому решил проблему самым примитивным способом - добавил Game.GetPlayer().UnequipItem(Torch) и Light Property Torch Auto. Благо, что в игре используется только один тип факелов.
- Что это за горы стоят? - А, это орки бегут!
Изменение репутации для пользователя slastik
slastikOffline
Сообщение №81
| Тема: Вопросы по скриптам Papyrus
написано: 20 августа 2013, 12:18
| Отредактировано: slastik - 20 августа 2013, 12:20
Это команда, а не свойство, поэтому такое писать надо только в теле события или функции, точно также, как все остальные команды. (а ты писал вне тела, рядом со свойствами, поэтому и не компилировалось) К тому же, если в скрипте уже есть свойство akActor, то здесь надо было переименовать эту данную переменную.
Я вписывал его в событие:
Event OnEffectStart(Actor Target, Actor Caster) If game.getPlayer().GetItemCount(Item01) >= 1 Actor akActor = Game.GetPlayer() Game.ForceThirdPerson() akActor.UnequipItemEx(akActor.GetEquippedObject(1), 1, true) akActor.UnequipItemEx(akActor.GetEquippedObject(0), 2, true) Game.GetPlayer().PlayIdle(Idle01) Utility.Wait(1) Sound01.play(game.getPlayer()) Utility.Wait(Time01) Game.GetPlayer().PlayIdle(Idle02) Game.EnablePlayerControls() Else Message01.Show() EndIf endEVENT
Пробовал изменять akActor на Actor. Потом убирал строку Actor akActor = Game.GetPlayer() и менял akActor на Game.GetPlayer(), но безрезультатно. Наверно я слишком слаб еще в скриптах. А по поводу слотов - спасибо большое за информацию. Я думал, что у оружия тоже есть слоты, только скрытые.
Нужен совет. Понадобилась кубическая модель для мода. Долго искал среди ванильных, но так и не нашел ничего подходящего. В итоге поковырялся в Nifscope и из обыкновенных платформ сделал себе идеальный кубик. Теперь не могу решить проблему с коллизиями. Кто-нибудь знает как добавить в Nifscope коллизии к уже готовой модели? Или посоветуйте, плиз, ванильную модель кубической формы уже с коллизиями.
как сделать,чтоб при нажатии рычага,появлялся определенный враг?
Если вам нужно, чтобы враг появился единоразово в процессе какого-нибудь квеста - можно попробовать простой способ. Добавляете своего врага в нужную локацию и ставите галочку возле Initially Disabled. К рычагу привязываете скрипт, в котором прописываете строку типа MyEnemy.Enable() и добавляете свойство ObjectReference Property MyEnemy Auto, в котором указываете своего врага. Должно сработать.
Если вам нужно, чтобы враг появлялся многократно при каждом нажатии рычага - предлагаю другой простой способ. Добавляете в нужную вам локацию маркер. К рычагу привязываете скрипт с командой MyMarker.PlaceAtMe(MyEnemy) и в свойства добавляете строки ObjectReference Property MyMarker Auto и ActorBase Property MyEnemy Auto, в которых указываете своего врага и свой маркер.
Открываете в CK свой рычаг. В поле для скриптов жмете AddScript. В появившемся окне жмете NewScript. В следующем окне вводите имя скрипта латиницей и жмете Ok. Далее вы увидите появившийся скрипт. Открываете его, сделав на нем правый клик и выбрав EditSource. На этом этапе в скрипте будет только первая строка с именем. Добавляете в него остальные строки и жмете Save. После того, как скрипт сохранился, закрываете его. Снова правый клик на нем и жмете EditPreference. Открывается окно со свойствами. В одном из свойств вам нужно указать из выпадающего списка своего врага, а в другом указать маркер в окне ObjectWindow. В последний раз жмете Ok и сохраняете свой рычаг и плагин. Заходите в игру и проверяете.
Такой вопрос. Можно ли сделать предмет прозрачным? Т.е. по факту чтоб не было видно текстуры, но сам предмет оставался рабочим (например невидимый сундук, но юзабельный)
Можно. Открываете через Nifscope модель предмета и удаляете все, кроме коллизий. Для этого, конечно же, нужно задать предмету отдельную модель, иначе невидимыми станут все сундуки того же типа.
столкнулся с проблемой...создал диалоги торговцам и учителям,все работает в игре.когда кинул все файлы в папку с другим (чистым скайримом),диалоги есть,но окно торговли не открывают ни торговцы,ни учителя...в чем проблема может быть?папку диалог виевс кинул..
как определить какие скрипты мне нужны?они там все одинаково почти называются...
Если вы создавали свой диалог, то скрипты не могут быть ванильными, т.к. каждая новая ветка диалога использует новый скрипт. При первой компиляции игра создает вам пустой скрипт со свободным именем (что-то вроде TIF_xxxxxxx), который вы потом заполняете и переименовываете по собственному усмотрению. Так что в топиках своего диалога смотрите названия прикрепленных скриптов и копируйте их тоже. Они не ванильные, а относятся к вашему плагину.