Timeless, благодарю. Я еще подкинул работы редакторам (возможно, даже тебе) - оказывается, все это оказалось не в том разделе . Просто бессонная ночь дала о себе знать.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №452
| Тема: Общение
написано: 3 февраля 2015, 08:02
Gleб, возможно, в моде используется заклинание, в котором есть к.-л. магический эффект с типом Self, имеющий флаг Detrimental и меняющий атрибуты заклинателя. Если так, то в нем просто надо возвести флаг Painless.
Это предположение "наугад", т.к. что это за мод - без понятия.
Gvinpin, представь, что все моды будут держать свои ресурсы в Data... Как минимум, удаление объемных модов станет головной болью, а порядок загрузки двух модов, затрагивающих один и тот же оригинальный ресурс, уже так просто не изменить.
1) Твой персонаж не обладает навыком изменения >= 50 (в LVLI указан шанс появления: 100% - если имеет, 0% - в противном случае). 2) У контейнеров есть период обновления ~ 2 дня (при оригинальных настройках). Попробуй подождать столько и проверь снова.
Female Face preset for Human Orc and Mer v2 27,553 unique downloads 55,554 downloads 8kb size download with manager ... or download manually 1:56, 6 May 2012
Ronolus, у меня персонаж 1 уровня, надо проходить кучу квестов, чтобы легально добраться до Толфдира. В СК, на мой взгляд, все в порядке.
ЗЫ: Сейчас проверил с помощью консоли:
tcl - чтобы добраться до него через весь мир (у меня ничего не разведано). set pcalterationadept to 0 - чтобы предметы появились в продаже.
Результат:
ЗЫЫ: Конечно, я лезу не в свое дело, но:
1) С перками изменения у тебя что-то не то: каждый снижает стоимость заклинаний предыдущего уровня мастерства не на 25%, как заявлено, а на 50%. 2) Без перка AlterationAdept50 заклинание MMSSprinter попросту бесполезно, какая бы величина навыка изменения у актера ни была. В оригинальной игре нет заклинаний, основная работоспособность которых была бы привязана к наличию к.-л. перков. 3) MMSSprinter не изменит скорость после сотворения до момента, пока игрок не откроет меню "Активные маг. эффекты", не подберет / выкинет или не экипирует / разэкипирует предмет (или не нажмет кнопку спринта / прыжка / скрытности / блока / и т.д.). Чтобы скорость менялась сразу после сотворения заклинания (и после того, как заклинание развеется по истечении времени), надо навесить на него скрипт примерного содержания:
; MyUnplayableItem - предмет-пустышка (Misc) с нулевым весом и снятым флагом Playable.
EVENT OnEffectStart(Actor xT, Actor xC) xT.AddItem(MyUnplayableItem, 1, true) ENDEVENT
EVENT OnEffectFinish(Actor xT, Actor xC) xT.RemoveItem(MyUnplayableItem, 1, true) ENDEVENT
ЗЫ: Правда, там еще скрипт на самом квесте, но он только очищает / заполняет Alias'ы, подозреваю, при откл. / вкл. мода. Значит, должно работать. ЗЫЫ: А нет, там еще обновление раз в сутки. Значит, не будет работать без скрипта. ЗЫЫЫ: А вообще, я бы сделал следующее:
Init() F() SingleUpdate() END
Update() While 1 To FLST.GetSize() Form xF = FLST.GetAt(1 To FLST.GetSize()) CONT.RemoveItem(xF, CONT.GetItemCount(xF), true) END F() SingleUpdate() END
FNC F() While Random() CONT.AddItem(FLST.GetAt(Random()), Random(), true) END END
Ronolus, по поводу твоего опытного пути - он ошибочен. Перк умножает стоимость заклинания на 0.5. Предыдущий делает то же. Как ты правильно заметил, результат представляет собой произведение всех модификаторов (в данном конкретном случае). В итоге стоимость заклинания составляет 0.5 * 0.5 = 0.25. Значит, потери цены заклинания составляют не 25%, а 75%. В любом случае, если перк снижает стоимость на 50%, так и надо указывать в описании: "снижает стоимость заклинаний предыдущего уровня мастерства еще на 50%". Или писать так: "после взятия данного перка стоимость заклинаний предыдущего уровня мастерства будет составлять 25% от первоначальной". Но я считаю, что чем меньше длина текста в описаниях - тем положительней результат понимания этого текста после прочтения. Или так: "чем короче текст - тем лучше".
По поводу Колетты - USKP правит этот баг.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №463
| Тема: Скрипты
написано: 9 февраля 2015, 04:34
| Отредактировано: Multigone - 9 февраля 2015, 04:37
Quazar, переменная в теле скрипта существует (и хранит свое значение) в течение всего времени его работы. Переменная в теле события существует в течение работы события. Со скриптами Fallout не знаком, однако, поскольку он и Skyrim используют один движок, думаю, общие принципы скриптов аналогичны.
Следовательно, разница только в занимаемом объеме памяти. Если событием является обновление с малым периодом, то разницы вообще не будет заметно в этом случае.
1) Если тебе нужно повышение эфф. лечебных заклинаний, создаешь перк по подобию "Отдых моряка" и применяешь его к игроку через маг. эффект зачарования. В маг. эффекте: Perk to Аpply - пока эффект наложен на цель, к ней применяется указанный перк (только для игрока).
2) Можно сделать по другому: создать перк, выдать его игроку, в нем указать условие: если экипирован конкретный объект (одежда или оружие). В этом случае зачарование не нужно вовсе.
3) Изменение магнитуды маг. эффектов в заклинаниях / зачарованиях возможно сделать только через перки. Еще можно использовать SKSE и менять базовую магнитуду скриптом, но это гораздо сложнее.
Ronolus, если ты хочешь, чтобы зачарование можно было накладывать через стол, а в описании можно было прочитать что-то вроде: "Повышает эффективность лечебных заклинаний на <mag> %.", то...
В общем, я долго думал, и пришел к выводу, что это сделать невозможно. А именно: чтобы зачарование, которое можно было наложить на объект с помощью стола, имело реализуемое через перк воздействие на актера, зависящее от текущей магнитуды этого зачарования.
Цитата Ronolus
да и в отдыхе моряка реализовано совершенно непонятно - в описании эффекта сразу указано число в 10%, в навыке магнитуда установлена в 1
Поясню: перк dunFrostflowAbyssPerk никак не связан свойством dunFrostflowAbyssBoon. Оба выдаются скриптом QF_dunFrostflowAbyssQST_00048121 квеста dunFrostflowAbyssQST:
Holtof55, наверное, нужно упорядочить порядок мастер-файлов в окне Plugin / Files прежде, чем браться за окно Parent Masters. Как это сделать (5 спойлер).
1Game, и у тебя скрипт скомпилировался? Видишь ли, Event OnEffectStop(Actor Target, Actor Caster) - нет такого события в скриптах.
Если добивание запускает цепочку взрывов, значит, в этот момент на цель накладывается множество копий этого эффекта. Конкретных причин такого поведения я не знаю. Возможно, имеет место конфликт с др. скриптами из др. модов.
Простейший способ избежать этого - в скрипте сделать проверку Target.IsInKillMove(). Если цель находится в состоянии добивания, взрыва не происходит.
Event OnEffectStart(Actor Target, Actor Caster) IF !Target.IsInKillMove() && !Target.IsDead() Target.placeatme(ExplosionRef) ENDIF endEvent
Если нужно, чтобы взрыв происходил и при добивании, но один раз, потребуется чуть больше телодвижений.
В игре консольная команда SPF <имя файла> сохраняет параметры внешности игрока в указанный файл, который затем, при создании в Creation Kit нового НПС можно загрузить, используя Import на закладке Character Gen Parts. (http://www.creationkit.com/SavePCFace)
К примеру,
Код
SPF MyFace
Файл MyFace можно найти в корневой папке игры.
ЗЫ: Если используешь расширенные возможности создания персонажа (напр., CharGen Extension by Expired), то лицо ГГ будет импортировано без учета изменений, произведенных таким модом (т.е. всегда экспортируются только ванильные настройки внешности).
Float Property fD = 0.0 Auto ; Желаемое время дня (в часах), в которое будет происходить запуск (раз в день). По умолчанию: (0 ч 0 мин). Диапазон: [0.0 - 24.0).
EVENT OnInit() Float fT = Utility.GetCurrentGameTime() fT -= Math.Floor(fT) fT = fD / 24.0 - fT + 1.0 fT = (24.0 * (fT - Math.Floor(fT)) RegisterForSingleUpdateGameTime(fT) Debug.Notification("Запуск через " + fT as string + " ч.") ; Вместо уведомления ставится нужное действие. ENDEVENT
EVENT OnUpdateGameTime() RegisterForSingleUpdateGameTime(24.0) Debug.Notification("Запуск через 24.0 ч.") ; Вместо уведомления ставится нужное действие. ENDEVENT
Scriptname _MySound extends Quest ; Нужен тест. ; Неизвестно поведение этого скрипта после использования ожидания / сна в игре. ; Музыка будет играть в указанное время независимо от того, что делает и где находится игрок.
Float[] Property aT Auto ; Указать В PROPERTY время (в часах) срабатывания каждого трека (от меньших значений к большим). Диапазон значений [0.0 - 24.0). Например, 3.25 = 3 часа 15 (!!!) минут. MusicType[] Property aM Auto ; Указать В PROPERTY музыку. Количество треков должно соотв. количеству записей в предыдущем массиве (aT). Int Property iM Auto ; Указать количество записей в каждом из массивов. Например, если последняя запись в каждом из массивов имеет порядковый номер Х, здесь указать число (Х + 1).
Int iC = -1
EVENT OnInit() Float fT = Utility.GetCurrentGameTime() fT -= Math.Floor(fT) fT = aT[0] / 24.0 - fT + 1.0 RegisterForSingleUpdateGameTime(24.0 * (fT - Math.Floor(fT))) ENDEVENT
EVENT OnUpdateGameTime() IF iC > -1 aM[(iC + iM - 1) % iM].Remove() ELSE iC += 1 ENDIF aM[iC].Add() Float fT = (aT[(iC + 1) % iM] - aT [iC]+ 24.0) / 24.0 RegisterForSingleUpdateGameTime(24.0 * (fT - Math.Floor(fT))) iC = (iC + 1) % iM Debug.Notification("Старт!") ENDEVENT
ЗЫ: Оказывается, тебе были нужны сцены. А я почему-то думал, что музыка... Ладно, используй тогда музыку вместо сцен .