Открываешь СК. File -> Data -> Ставишь галку для плагина Демоника. Ставишь галку на плагине со сторонними прическами и делаешь его активным (кнопка Set as Active File). Теперь это плагин будет использовать Демонику как мастер-файл. Он должен загружаться в игру вместе с Демоникой. Нажимаешь ОК.
Открываешь окно объектов (Object Window) и находишь раздел Character -> HeadPart. Находишь сторонние прически. Они отмечены значком * в колонке Count. Прически могут состоять из основной части (с типом Hair), и дополнительной (с типом Misc).
Привязка к конкретной расе осуществляется в выпадающем списке Valid Races. Если нужно использовать эти прически только для расы Демоника, необходимо в этом списке найти и указать эту расу. Если нужно использовать эти прически для любой расы, нужно указать NONE (в самом вверху). Но учти, что на некоторых расах может быть проникновение моделей прически / головы друг в друга. В этом случае плагин Демоника не нужен вовсе, его не надо загружать в СК.
Привязку нужно выполнить как для Hair, так и для Misc.
Сохраняешь плагин File -> Save.
Все. Можно загружать игру, открывать меню создания персонажа и выбирать новые прически у расы Демоника.
Создаешь текстовый файл, меняешь его расширение на .psc. Открываешь его Notepad++. Вставляешь текст скрипта. Важно: файл .psc должен называться так же, как в тексте скрипта. Пример: если в тексте написано Scriptname MyScript extends ObjectReference, значит, файл .psc должен называться строго MyScript.psc Закидываешь свой MyScript.psc в папку Data -> Scripts -> Source. Там хранятся исходники скриптов. В СК открываешь окно Gameplay -> Compile Papyrus Scripts... (оно сверху). Выбираешь MyScript.psc (ставишь флаг). Нажимаешь кнопку Compile. Ждешь 1 секунду, пока скомпилируется. Готовый скрипт находится в папке Data -> Scripts, имеет расширение .pex
Scriptname MySCRIPT extends ObjectReference
Spell Property MySpell Auto
EVENT OnActivate(ObjectReference akActionRef) MySpell.Cast(akActionRef as Actor) IF akActionRef == Game.GetPlayer() Debug.Notification("Текст уведомления") ENDIF ENDEVENT
Скомпилированный скрипт цепляешь к своему объекту. Как: открываешь нужный объект, в поле Scripts нажимаешь Add. Выбираешь MyScript -> OK. Заполняешь переменные. Как: открываешь свойства скрипта (2 раза ЛКМ по скрипту, или ПКМ - Edit Properties). Переменную MySpell заполняешь вручную (своим заклинанием) с помощью кнопки Edit Value. Нажимаешь ОК -> ОК.
Сохраняешь плагин. Как будет в игре: при активации твоего объекта активирующему будет добавлено твое заклинание, если активирующий - игрок, будет показано уведомление. Все.
Суть скриптов - прямое воздействие на различные игровые элементы или их совокупности (или на всю игру в целом) с помощью команд, которые она понимает. Для этого скрипты отслеживают множество разных событий, которые происходят в различные игровые моменты.
Например:
Scriptname MySCRIPT extends ObjectReference ; Объявляется скрипт с уникальным названием MySCRIPT, расширяющий класс скриптов ObjectReference.
Spell Property MySpell Auto ; Объявляется переменная типа "заклинание" с именем MySpell. Property означает, что ее значение может меняться вручную (или др. скриптами).
EVENT OnActivate(ObjectReference akActionRef) ; Событие "активация". ; Оно срабатывает, когда объект с прикрепленным к нему данным скриптом (скамейка) будет активирован к.-л. объектом (активатором). ; Информацию об активаторе хранит переменная akActionRef. MySpell.Cast(akActionRef as Actor) ; Функция "применение заклинания" Cast, применяющая заклинание MySpell к к.-л. объекту. ; В данном случае применение происходит на объект (akActionRef as Actor), который активирует скамейку. IF akActionRef == Game.GetPlayer() ; Проверка условия, является ли активирующий (akActionRef) игроком (GetPlayer() - функция, находящая игрока). Если да, то... Debug.Notification("Текст уведомления") ; ... выполняется функция "показать уведомление в верхнем углу экрана" с таким-то текстом. ENDIF ; Конец проверки. ENDEVENT ; Конец события.
Таким образом, при активировании объекта (скамейка) произойдет применение заклинания к активирующему, а если им является игрок, будет показано уведомление (ведь если активирует скамейку какой-нибудь НПС, надобность в уведомлении отпадает). Это и есть управление игровыми объектами. Подробнее о скриптах см. в шапке темы "Вопросы по скриптам Papyrus" в этом разделе.
1) Да. 2) Не эффекта, а заклинания. Необязательно ч.-л. вписывать, можно просто заполнить эту переменную после добавления скрипта к объекту.
Цитата Multigone
Заполняешь переменные. Как: открываешь свойства скрипта (2 раза ЛКМ по скрипту, или ПКМ - Edit Properties). Переменную MySpell заполняешь вручную (своим заклинанием) с помощью кнопки Edit Value. Нажимаешь ОК -> ОК.
Sovetski, вот скрипт, его нужно прицепить к своему кольцу. Какой у тебя был до этого способ, я без понятия, поэтому лучше создай новое кольцо. Или прицепи к тому самому кольцу, предварительно удалив у него скрипт, ответственный за предыдущий способ получения очков способностей.
Scriptname _MySCRIPT extends ObjectReference
Import Game
MiscObject Property Gold001 Auto ; Золото. Автозаполнение. Message Property MyMESG Auto ; Сообщение. Заполнение вручную.
Event OnEquipped(Actor akActor) ; Событие при экипировании предмета с прикрепленным к нему данным скриптом. IF akActor == GetPlayer() ; Если экипирующий = игрок. Int iChoice = MyMESG.Show() ; Показать сообщение, запомнив выбор ответа игрока. IF iChoice == 0 ; Если выбор = 0 GetPlayer().ModAV("DragonSouls", -5) ; Уменьшить атрибута игрока "драконьи души" на величину 5 ед. По желанию - любое значение, но не забыть изменить и в сообщении. AddPerkPoints(1) ; Добавить (игроку) очков способностей в кол-ве 1 ед. Debug.Notification("Добавлено 1 ед. очков способностей.") ; Показать сообщение. В кавычках можно писать любой текст по желанию. ELSEIF iChoice == 1 ; Иначе, если выбор = 1 GetPlayer().RemoveItem(Gold001, 25000) ; Удалить у игрока предмет "золото" в кол-ве 25000 ед. По желанию - любое значение, но не забыть изменить и в сообщении. AddPerkPoints(1) Debug.Notification("Добавлено 1 ед. очков способностей.") ENDIF ; Конец проверки. ENDIF ENDEVENT ; Конец события.
Как будет в игре: при экипировании кольца появится окно с сообщением и вариантами выбора. Варианты доступны, если игрок имеет золото или души больше, чем указано. После выбора одного из вариантов добавляется 1 ед. очков способностей и удаляются души / золото. Нужен тест. Все.
Добавлено (23 Октября 2014, 23:42) --------------------------------------------- Kepper, попробуй так:
EVENT OnUpdate() IF GetRef().GetAnimationVariableBool("IsCastingRight") || GetRef().GetAnimationVariableBool("IsCastingLeft") || GetRef().GetAnimationVariableBool("IsCastingDual") RegisterForSingleUpdate(0.2) ELSE fCurrent -= GetRef().GetAV("Magicka") IF fCurrent > 0 ; Значение fCurrent определяет, сколько было потрачено маны в процессе каста. ENDIF ENDIF ENDEVENT
Суть - кол-во затраченной маны определяется по разнице между значениями маны в начале каста и в конце. Недостатки: возможна некорректное определение результата, если в процессе каста с одной руки референс-алиас вдруг вздумает кастовать со второй (ну и так далее). По-идее, для каждого типа каста (с одной, с другой или с обеих) нужно делать свои расчеты. Во всяком случае, для этого способа никакого SKSE не нужно.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №404
| Тема: Вопросы по скриптам Papyrus
написано: 23 октября 2014, 20:36
| Отредактировано: Multigone - 23 октября 2014, 20:37
Dsion, кстати, я с помощью этого метода сделал то, что не удавалось долгое время - замутил заклинание "огненный барьер" из Dungeon Siege 3. Его описание: поглощает суммарный урон в размере 75% здоровья заклинателя, после чего взрывается и прочее. Как сосчитать полученный урон? Вот только таким образом.
А вот и сам скрипт (он несовершенен, писал давно):
EVENT OnMagicEffectApply(ObjectReference akCaster, MagicEffect akEffect) IF akCaster as Actor == Target IF (akEffect.HasKeyword(MagicArmorSpell) || akEffect.HasKeyword(MagicCloak)) && !(akEffect.HasKeyword(_MVABarrierKYWD)) _MVABarrierDispelSPEL.Cast(Target) ENDIF ENDIF ENDEVENT
Правда, заклинатель погибал, если величина хита была больше, чем его здоровье. Теперь я понимаю, что нужно было бы еще давать 90% сопротивление уронам (или повышать ХП) на время действия эффекта.
fdgod7, ничего. Перенос внешости одного актера на другого с помощью Import - всего лишь перенос настроек ползунков.
Внешность Ксавьера - отдельная модель (а не просто настройки ползунков в СК). Модель нельзя применить к игроку просто так, без заморочек с созданием новой расы и прочего. В СК его настройки выставлены дефолтно.
Также он имеет уникальные текстуры. А игрок использует текстуры, предназначенные для рас "по умолчанию".
Вывод: без создания новой расы - никак.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №407
| Тема: Общение
написано: 24 октября 2014, 12:26
smurfik, у меня с "Игрой престолов" ассоциируется фраза "жалко Шона Бина". Дело в том, что узнал о сериале тогда, когда вышло уже 2 сезона... И чтобы определить, годен ли он к просмотру, решил почитать комментарии. Как результат, уже знал развязку 1 сезона.
Иероним, мои предположения, почему это может быть:
1) Заклинание имеет порог использования: заклинатель не имеет соответствующего Casting Perk (указанный в заклинании) или Min Skill Level в первом его маг. эффекте выше, чем навык актера. 2) Заклинателю не хватает маны. 3) Эффекты в заклинании используют не интересные с точки зрения НПС архетипы или атрибуты, не являющиеся Health / Stamina / Magicka / ArmorRating. 4) Актер имеет неподходящий Combat Style. 5) Фракция актера не является врагом игроку. 6) Не настроена вкладка AI Data актера.
Где находится тайная лаборатория Эвелин? Нужно применить проявляющее заклинание. Облазил попиксельно карту внутри круга радиусом 1/6 размера карты с центром в "заброшенный дом гробовщика". Не применяется.
ghost4luck, мы точно говорим об одной игре? У меня нет никаких маркеров.
И еще вопрос для тех, кто играл:
После победы над Протектроном-5000 в пещере, которая ведет к северо-западным пляжам Сайсила, у меня остался в живых один тип (из трех). Далее поступило такое задание: он решил обратиться к Легиону за мед. помощью, нужно проследить, как он добрался. Я набижал исследовать пляжи, а на задание пока забил. Теперь я не могу его нигде найти. В Великолепную Пятерку не вступал. Ни в городе, ни по пути от пещеры до города его нет. Где он может быть?
ghost4luck, угу. Дневник я не нашел, он был в книжной полке, на которой было написано "пусто". Теперь да, маркер появился.
Спасибо. Вчера ночью часа два потратил на поиски. Прикол еще в том, что когда первый раз заходишь в дом гробовщика, персонажи говорят что-то вроде "такое чувство, будто поблизости скрывается тайная лаборатория". Отлично, думаю, щас я ее найду.
Программа PEXDecompile позволяет декомпилировать PEX файлы в DPEX файлы, которые можно открыть в любом текстовом редакторе. Открываете программу, нажимпете Decompile, выбираете PEX, и все, программа создаст DPEX в том же месте где находится исходный PEX файл.
Циферки урона, которые с каждым уровнем персонажа возрастают экспоненциально, однако, для убийства врагов все равно нужно делать столько же ударов / попаданий.
Заполняешь переменные. Как: открываешь свойства скрипта (2 раза ЛКМ по скрипту, или ПКМ - Edit Properties). Переменную aaaFRAperkEbonyBlade заполняешь автоматически с помощью кнопки Auto-Fill. Нажимаешь ОК -> ОК.
Ronolus, еще есть настройка в самом заклинании. Но если речь о меню "Активные маг. эффекты", то для каждого эффекта заклинания можно указывать свой Menu Display Object, все должно работать.
Сделай проклятые артефакты (даёт что то оочень могущественное но взамен заберает что то важное (или просто убивает и нужно снять проклятие прежде чем одевать) + нельзя снять (квест чтобы снять))