насколько помню там можно было просто сундук запихнуть в помещение и он цеплялся к магазину
Если ячейка принадлежала торговцу, тогда да. Но проще было прикрутить их к самому торговцу, тогда контейнера могли находиться и в других ячейках (особенно удобно, когда торговец находился "снаружи").
начинаю подозревать свой creation kit, все сделано было точно так же как в твоем ЕСП, даже все возможные другие комбинации перепробовал, все точно так же.
А хускарлы тут при чем? Проверьте может дело не в СК, а в подключенных модах, например, которые меняют торговцев/торговлю. Они могут попортить картину. Если нет, то могу предложить помощь, если дадите свой esp в ЛС (без ресурсов), т.к. сложно угадывать.
Скажите пожалуйста, а OnClose действует на контейнеры?!
Нет, не действует. Похоже изначально этот вид события создавался для дверей и подобных объектов. Открытие же любого контейнера автоматически включает режим меню, а этом режиме вообще мало что работает в скриптах.
я интересуюсь именно как создать само заклинание (где, что, как, куда нажимать и так далее)
Тут уже выше предложили идею сделать как у разрабов: это действительно скорейший способ, "без заморочек". - создаем своего непися, с флагом Summonable - изменяем ID любого дефолтного маг.эффекта, например, вызов питомца. На предложение создать новый эффект, отвечаем подтверждением, таким образом, создаем свой маг.эффект. В списке ассоциаций эффекта (Assoc.Item 1/2) устанавливаем своего созданного непися. В поле описания пишем, что эффект призывает того-то на <dur> с в точку, какую укажет заклинатель (опять же можно просто подредактировать существующее описание). - создаем заклинание - опять же, не мороча голову, берем заклинание призыва питомца ConjureFamiliar. Изменяем EditorID, название, но вместо установленного эффекта призыва питомца (поле Effects), ставим свой, только что созданный маг.эффект. Выставляем продолжительность эффекта Duration, но в зависимости от этого изменится и стоимость заклинания. Если убрать флаг Auto-Calculate, то стоимость можно задать самому. Вообще, стоимость берет свое начало от эффекта, показателя Base Cost. - дальше нужно выбрать - как добавить заклинание в игру. Лучше всего, да и быстрее, использовать тома. Изменяем опять же, какой-нибудь дефолтный том - меняем ID, и в списке Spell устанавливаем созданное заклинание призыва. Том уже добавляем куда нужно.
Если все еще непонятно, то вот ESP для наглядности.
я поставил NPC галочку на "призрак" но он у меня появился обычным, может еще что-то надо зделать?
Он и будет обычным, т.к. флаг Is Ghost делает его не убиваемым: заряды заклинаний и стрелы пролетают сквозь него, оружие не действует. Хотя, этот вопрос немного спорный, т.к. тут было мнение что этот флаг накладывает еще и визуальный "дымчатый" эффект, но у меня не получилось это сделать. Если нужно наложить визуальный эффект "призрачности", то придется воспользоваться либо щейдерными эффектами (их довольно много в соответствующем разделе, начинаются с Ghost...), либо изменить прозрачность модели, но для этого понадобится написать простенький скрипт, вроде такого:
Код
scriptName ....Script extends ActiveMagicEffect
float property fAlpha = 1.0 auto Bool property bFade = False auto Bool property bFadeRet = False auto
Event OnEffectStart(Actor Target, Actor Caster) If fAlpha != 1.0 Target.SetAlpha (fAlpha, bFade) EndIf EndEvent
Event OnEffectFinish(Actor Target, Actor Caster) if bFadeRet == False If fAlpha != 1.0 Target.SetAlpha (1.0, bFade) EndIf endif EndEvent
И добавить его в маг.эффект. Еще проще использовать уже готовое, созданное разработчиками. Например, скрипт defaultGhostScript, в нем работают несколько шейдеров, и установлен он на драконьих жрецах. Если визуализация подходяше, смело ставим на своего непися.
Мод прекрасно работает на версии игры 1.8, проблем никаких не замечал. Правда в текстовом редакторе я ничего не изменял. Ошибок при запуске SKSE Loader никаких не появляется? Попробуйте установить плагин заново, проверить с дефолтными установками.
Myprism, 1. С помощью Wrye bash и TESSnip можно создавать мастера, причем в первом можно делать не только мастера, но псевдо-мастера, когда в иной формат кодируется лишь часть файла. Кстати, можно использовать для этого и TES5Edit, тем более если он под рукой:
2. Наверное только с помощью TESSnip. Это вообще вдребезги антикомпиляционная прога, в ней можно при желании даже Skyrim.esm переделать. Хотя возможно есть еще вариант использовать опции экспорта-импорта в .csv во Wrye bash. Но я не проверял надежность работы такой схемы. 3. Во Wrye bash и TESSnip вполне возможно, и я так уже делал. Да и в том же TES5Edit произвести обратный процесс, скинуть флажок, вовсе не сложно. Недостатков пока не замечал, но почти уверен, что тут дело зависит от размеров самого кодируемого файла, точнее от количества записей в нем. Лучше для этих целей использовать не мастер, а псевдо-мастер (подозреваю, что как раз для этих целей он и создавался) - он работает как мастер-файл, но при этом имеет формат esp.
Не судите, да не судимы будите...
Изменение репутации для пользователя Demolir
DemolirOffline
Сообщение №310
| Тема: Вопросы по текстурированию
написано: 29 декабря 2012, 01:18
| Отредактировано: Demolir - 29 декабря 2012, 01:21
Программа для работы с BSA (любыми) называется FOMM (Fallout Mod Manager)
В том то и дело что не с любыми. Запакованные в FOMM bsa-архивы не читаются игрой Skyrim, в этом смысле FOMM годится только как распаковщик. Это уже проверено многими людьми. С целью запаковки далеко ходить не нужно, нужная прога Archive.exe находится в папке Skyrim, и я выкладывал здесь статью как ей пользоваться.
Вопрос-можно ли удалять магические эффекты, как например 100% сопротивление болезням данные от формы оборотня\вампира?
Нужно редактировать способности AbWerewolf и VampireVampirism - эти способность вшиты в особенности вампирической расы и расы вервольфов, и я бы не советовал там что-то менять.
Скажите пожалуйста как сделать из обычного торговца скупщика краденного.
Очень просто, для этого нужно всего-лишь поставить флаг Only Buys Stolen Items у торговой фракции, к которой принадлежит данный торговец. Например, Белетор принадлежит к фракции ServicesWhiterunBelethorsGoods и т.д.
Не судите, да не судимы будите...
Изменение репутации для пользователя Demolir
DemolirOffline
Сообщение №313
| Тема: TES5Edit
написано: 29 декабря 2012, 13:54
| Отредактировано: Demolir - 29 декабря 2012, 13:59
Конкретно под эту прогу инструкцию скорее всего никто не будет делать, потому как смысла нет. Она почти полностью копирует все функции своих предшественников TES4Edit и FO3Edit, а на них инструкций уже хватает. Даже тут есть темы, где написано много полезного про эти программы. FO3Edit для новичков FNVEdit для начинающих
Скрипт немного неполный, рабочая версия выглядит так:
Scriptname ....Script extends ObjectReference
MiscObject Property IDKeyMiscItem auto Key Property IDKeyItem auto
Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer) if akNewContainer == Game.GetPlayer() Game.GetPlayer().RemoveItem(IDKeyMiscItem, 1, 1) ; дополнительно 1 чтобы не появлялось уведомлений о добавлении/удалении предмета из инвентаря. Game.GetPlayer().AddItem(IDKeyItem, 1, 1) endIf endEvent
Решайте сами, использовать этот способ или нет. Если требуется купить 2-3 ключа, то это пригодится. Но если речь обо всех ключах, или их много, то нужно искать другое решение, иначе придется создавать множество псевдо-ключей (для замены), и скриптовать их соответственно.
Создаете псевдо-ключ из раздела Misc, он имеет ту же модель и название что и дефолтный ключ. Устанавливаете на него указанный скрипт (название произвольно), сохраняете. После указываете свойства Properties, IDKeyMiscItem - для псевдо-ключа, IDKey - для настоящего ключа, который нужно купить. Скрипт работает следующим образом: псевдо-ключ, так как он относится к предметам Misc, можно свободно покупать. Но при попадании в инвентарь игрока, он удаляется, а вместо него добавляется настоящий ключ.
Не судите, да не судимы будите...
Изменение репутации для пользователя Demolir
DemolirOffline
Сообщение №316
| Тема: Отдел помощи по переводам
написано: 31 декабря 2012, 00:43
| Отредактировано: Demolir - 31 декабря 2012, 00:47
Могу еще посоветовать Categorized Favorites Menu - полностью видоизменяет и расширяет меню "избранное". Над модом правда еще работают, но он регулярно обновляется и есть в локализации. С модификаторами интерфейса не конфликтует.
Может кто подсказать может существет другой способ узнать название рассы и выдать ее название?
Мм...я тоже пока не смог найти ответ на этот интересный вопрос, хотя столкнуться с ним пришлось в процессе перевода одного плагина. Одно могу сказать точно, дело тут не в скриптах и не в редакторе, а в особенностях локализации игры. Дело в том, что английский шрифт (латиница) прекрасно читается в уведомлениях, и тут неважно есть в них включения в виде данных или нет. Еще заметил, что эта проблема возникает только со строковыми данными, но не с числовыми. Пока что мне так же пришлось убрать включения из уведомлений, чтобы они нормально отображались на русском.
Неудачные попытки исправить: - замена Notification на MessageBox - перевод текста уведомления в данные String. Т.е. Debug.Notification(TextString+...+...) - смена языковой раскладки клавиатуры (собственно заранее знал, что дело не в этом)) Хотя и сомнительно, что дело тут в редакторе, но если не получится решить проблему с его помощью, то такие моды скорее всего придется браковать в будущем, либо оставлять подобные уведомления без перевода. Мало кто захочет править исходники файлов игры, или проводить некие сомнительные операции, только для того чтобы у него корректно заработал какой-то 1 мод.
Вообщем, конкретный ответ пока не нашел. Возможно кто-то отпишется, кто знает решение.
Замедляет ли игру упаковка мешей и текстур в Bsa файл.
Какой странный вопрос! Получается, что разработчики намеренно замедлили свою игру, т.к. все ресурсы игры запаковны именно в эти архивы . Запаковка ресурсов в bsa наоборот ускоряет загрузочные процессы, тем более что для скайрима используется принципиально новый вид архивации (об этом еще сами разрабы хвалились когда-то). Распаковка архивов ведет к увеличению времени загрузки в разы, хотя и способствует увеличению стабильности самой игры. Что касается оформления мода, то заметно, что у мододелов приобладает запаковка в bsa - это намного облегчает установку/отключение такого мода. Но, на самом деле, это не такой уж веский мотиватор, т.к. даже если ресурсы находятся в "свободном виде", то есть менеджеры вроде NMM, МО, где вопросы с установкой/отключением успешно решаются иными способами. Вообщем, решайте сами.
Так в том то и дело, что строковые данные как раз отображаются в уведомлениях, но не отображается текст самого уведомления Т.е если использовать Debug.Notification(" Вкус этой крови " + RaceString +....) , то данные RaceString читаются на русском, а " Вкус этой крови " идет кракозябрами. Я в прошлом примере попробовал использовать для этого не библиотеку Debug, а непосредственно сообщение Message, в надежде, что это что-то изменит
Не судите, да не судимы будите...
Изменение репутации для пользователя Demolir
DemolirOffline
Сообщение №324
| Тема: Тех. проблемы
написано: 4 января 2013, 02:17
В последнее время наблюдаю у себя проблемы с отправкой сообщений. Сообщение не отправляется, а появляется такая странная надпись "Доступ запрещен. Ваш IP адрес заблокирован":
Может ли это быть связано с перегрузкой сервера, или еще с какими-то причинами? Т.к. такая ошибка появляется не всегда, где-то 50х50.
Как готовый скрипт к собственно книге прикрутить? В окошке Scripts?
Есть несколько способов: - установить на базовый объект (в окошке Scripts). Тогда скрипт будет работать для любых копий и почти в любых ситуациях. - установить на копию объекта (там тоже есть вкладка Scripts). Тогда базовый объект скриптовать не требуется, но и скрипт будет работать только для данной копии. Т.е. такое скриптование годится только если копия находится в мире игры, если же она в контейнере, в чужом инвентаре и т.д., то это уже не подойдет. - установить скрипт на алиас объекта (об этом я что-то не подумал сразу). Как раз такой способ используется для дневника Алвы. Но, честно сказать, я пока не разбирался со скриптованием алиасов, и не знаю как на них работают события. В случае с дневником, используется событие Event OnActivate. Но, понятное дело, что это событие будет работать только если игра в GameMode, в инвентаре бесполезно.
Откровенно не советую, лучше привыкнуть к английскому. Все видеоуроки, туторы, гайды, и прочие мануалы создавались именно под английскую версию редактора. Кроме того, неизвестно еще как поведет себя русификация при создании плагинов и после.
Вопрос по созданию компаньонов. Как можно "заставить" дефолтного npc пойти за мной? Например, мне нужно сделать так, чтобы Йорлунд на некоторое время присоединился к команде, невзирая на то есть у меня компаньон или нет. Покопался в компаньонах, заметно, что все действие крутится вокруг двух фракций CurrentFollowerFaction (-1) и PotentialFollowerFaction (0). Но добавление этих фракций Йорлунду не дало ровным счетом никакого эффекта. Я даже диалоги персонально для него прописал и для надеги скриптом их ему добавил (хотя и так все должно работать) - не хочет кузнец отзываться. Что интересно: если создать нового npc и добавить его в эти фракции, то все работает нормально. Но к дефолтным неписям видимо нужен иной подход.
p.s. И так не хочется затрагивать дефолтных персонажей. Раньше можно было Ai пакеты просто добавлять скриптами (Add/RemoveScriptPackage), и все, непись оставался нетронутым и не конфликтовал с другими модами. А в папирусе и скриптовых команд таких нет, ровно как и аналогов.
Что то я про алиасы не до конца вкурил - они что, только для квестов доступны?
Не совсем понял, что значит "доступны", создаются или управляются? Создаются алиасы только при создании квеста, иначе никак. А вот оперировать ими похоже можно из любого скрипта, но для этого нужно указать: - в квестовом скрипте QF_QuestScriptName_00000000 должен быть зафиксирован алиас ReferenceAlias Property Alias_AliasNameID Auto - указать свойства квеста QuestRef, в котором был создан алиас - указать ID данного квестового скрипта - указать ID алиаса зафиксированое в квестовом скрипте - ...собственно что нужно сделать (функции для алиаса)
Вообщем., где-то так:
Код
Quest property QuestRef auto
Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() && (QuestRef.IsRunning()) (QuestRef as QF_QuestScriptName_00000000).Alias_AliasNameID.GetReference().Enable() endif EndEvent
Т.е, при активации определенного объекта игроком и при выполнении определенного квеста, алиас, закрепленный за выполняемым квестом, будет "включаться".