столкнулся с проблемой...создал диалоги торговцам и учителям,все работает в игре.когда кинул все файлы в папку с другим (чистым скайримом),диалоги есть,но окно торговли не открывают ни торговцы,ни учителя...в чем проблема может быть?папку диалог виевс кинул..
так они ванильные ведь..или обязательно все равно?как определить какие скрипты мне нужны?они там все одинаково почти называются...
Добавлено (28.08.2013, 20:30) --------------------------------------------- кстати,есть способ быстро построить меши на большой территории?ато у меня очень большая,а recast based generation отказывается их строить..2-3 кусочка построил маленьких и все..
Тогда сделай способность, которая добавляется при одевании
Спасибо, это ещё одна важная особенность скриптинга, про которую я забыл ! Просто в голове не укладывается делать казалось бы обычные вещи через магию. Я так когда то цеплял на ГГ обработку "Евентов" т.к. опять оказалось что по другому это сделать вообще нельзя. Такое ощущение, что если хочешь сделать более менее нормальный работающий скрипт, его сразу надо делать через магический эффект. Там уж точно всё будет работать как в мануалах описано...
На всякий случай, хочу показать свой маленький но рабочий код. Может быть более опытные скриптеры смогут показать косяки, которых я пока не замечаю. (очень бы хотелось узнать зачем такой простой код реализовывать через квест, что такое "глобальные" циклы по сравнению с моим и как их применять, ну и конечно же почему всё таки не работает событие OnUpdate() ...) :
Sound Property SomeSound Auto Int SoundREF EffectShader Property EffectShaderSource1 Auto VisualEffect Property VisualEffectSource1 Auto ObjectReference PlayerREF
ПС: забыл описать работу скрипта: когда надевается шапка, скрипт включает постоянный повторяющийся звук типа ....LPSD и кастует на носителе первый эффект. И дальше с промежутком в 12 сек ненадолго подкастывает второй эффект. Когда шапка снимается - все эффекты и звук пропадают.
Не знаю точно, как оно у Беседки реализовано, но для меня как для прикладника это просто ужасть Фактически (на мой взгляд) обработчик события OnEquipped работает всё время, пока предмет одет. Т.е. фактически реализован бесконечный цикл, а это нехилая нагрузка на систему, поскольку она только тем и занята, что в этом цикле крутится. Спасает ситуацию, похоже, только наличие системной функции паузы, которая, опять же - возможно, позволяет переключиться на другие задачи. Повторюсь, это с т.зр. классического программирования.
Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
как определить какие скрипты мне нужны?они там все одинаково почти называются...
Если вы создавали свой диалог, то скрипты не могут быть ванильными, т.к. каждая новая ветка диалога использует новый скрипт. При первой компиляции игра создает вам пустой скрипт со свободным именем (что-то вроде TIF_xxxxxxx), который вы потом заполняете и переименовываете по собственному усмотрению. Так что в топиках своего диалога смотрите названия прикрепленных скриптов и копируйте их тоже. Они не ванильные, а относятся к вашему плагину.
Понадобился дом - создал, продублировал ванильный интерьер, объеденил их, все работает, игрок заходит - выходит, нет проблем. А вот компаньон заходит но не выходит, а бежит к игроку непонятно откуда спустя минуту после того как игрок вышел из дома, я так понимаю он респавнится не возле дома а хрен знает где. Подскажите как с таким бороться.
Изменение репутации для пользователя Imperator3
Imperator3Offline
Сообщение №5318
написано: 28 августа 2013, 21:06
| Отредактировано: Imperator3 - 28 августа 2013, 21:07
Gv1n, Видимо, проблема с навмешами. Кликаешь по этой кнопке:
Смотришь, появилась ли красная сетка на полу. Если появилась - хорошо, если нет - надо настраивать:
В любом случае надо финализировать навмеши путем выбора этого пункта меню:
Треугольник, на котором (или около которого) стоит маркер телепорта, станет зеленым:
После этого компаньон должен нормально ходить по поверхности. Любые NPC ходят только по той поверхности, на которой настроены навмеши. Если навмешей нет, NPC не смогут пройти по поверхности.
Изменение репутации для пользователя grandrit
grandritOffline
Сообщение №5319
написано: 29 августа 2013, 01:00
| Отредактировано: grandrit - 29 августа 2013, 01:57
Еще вопросик. Поставил реплейсер тел (LB). Добавил расу лунари (прописав ей скин ЛБ), добавил пару компаньонов с теми же манипуляциями. Сначала было все нормально. Но после того как я похимичил с одним из модов (не относящихся к этим) головы поменяли оттенок. И обратно становиться такими же как тела не хотят даже после переустановки LB и модов компаньонов. Даже пробовал заменять меши и текстуры в этих модах на те что стоят в LB (с переименованием). Все работает, но головы все равно другого оттенка. Даже cntrl+F4 не помогает. Может кто с таким сталкивался?
Так что в топиках своего диалога смотрите названия прикрепленных скриптов и копируйте их тоже.
Если скрипты топиков и квестов не переименовывал, то найти их по названию тяжело, проще в папке включить сортировку "по дате", и тогда все твои скрипты окажутся на самом верху, ведь они созданы/изменены позднее остальных скриптов. А там уже просто отсортировать свой-чужой.
В варианте Антона нагрузки вообще никакой. Событие молчит, только раз в 12 сек. проверяется переменная и срабатывает запуск шейдера. Всё остальное время скрипт полностью молчит и ничего не делает.
Т.е. там (в движке) реализована такая же квазимультизадачность, как в винде?
Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Т.е. там (в движке) реализована такая же квазимультизадачность, как в винде?
В принципе да. В Папирусе обработка скриптов происходит только "по требованию", просто так скрипты не проверяются и не обрабатываются, как это было в Обливионе. Запуск скрипта происходит по событию или по обращению к нему другого скрипта. Вот в скрипте Антона сработало событие "объект экипировался" и оно отрабатывает до исполнения всех команд в нём. Поскольку в нём сделан цикл, то обработка этого блока-события не закончится, пока работает цикл. Но если произойдёт другое событие, например "объект снят" или сторонний скрипт запустит в этом какую-то функцию, то эти блоки событий и/или функций будут обрабатываться независимо от исполнения блока OnEquipped. Таких работающих блоков в скрипте может быть сколько угодно. К тому же, если снять и одеть предмет снова, то и новое событие OnEquipped запустит новый блок-событие. Получится уже два таких работающих блока, и так можно запустить хоть сотню одинаковых событий/функций.
Вот в скрипте Антона как раз и произойдёт этот вариант "размножения" блоков события до бесконечности, если ненадолго снимать и опять одевать шапку. О чём я совсем забыл предупредить самого Антона, поэтому его скрипт надо доработать, чтобы избежать подобного.
Artem13: проверил загрузку при надетой шапке и действительно нет никакой разницы, многозадачность отлично работает!
AleksTirex: Спасибо за анализ кода и советы ! я и не догадывался что есть такие особенности. (только "Utility.Wait(12.0)" это был не косяк а маленькая фишка, типа постэффекта когда ГГ шапку снял, а её воздействие его ещё не "отпустило" , но большого толку от него по правде нету) И ещё хочу сказать ОГРОМНОЕ спасибо за идею с магическим эффектом для анимированных объектов !!! Обязательно её попробую! Это будет шикарный выход для меня для создания живых бесконфликтных вещей!
Ой, я и забыл про возможность "размножения" кода! А ведь и действительно если быстро надевать и снимать шапку так и будет. Когда то с моими "личинками" такое было, так пришлось с помощью "состояний" с этим бороться. Но этот метод с переменной мне больше нравиться - он проще.
Доброго времени суток. У меня установлено два мода: Обновлённый "Дом тёплых ветров" / Berts Breezehome Remodel и Хранилище коллекционера \ Collector's Vault. Так вот собственно в чём вопрос: можете написать как из подвала нового дома ветров сделать переход в хранилище? Заранее благодарен!
Так вот собственно в чём вопрос: можете написать как из подвала нового дома ветров сделать переход в хранилище?
Не объединяя оба мода и не привязывая их друг к другу? А в каком моде делать "кнопку/дверь/скрипт" этого перехода, в своём новом моде? Сделать можно любой вариант, но нужны пояснения/подробности.
Изменение репутации для пользователя mayor
mayorOffline
Сообщение №5328
написано: 30 августа 2013, 04:40
| Отредактировано: mayor - 30 августа 2013, 09:24
AleksTirex, хочу ещё раз сказать тебе большое спасибо за идею с маг. еффектом ! Я проверил - корона отлично работает !!! Можно привязать заскиненные обьекты к любым нодам скелета, и светом так же легко управлять. Причём, насколько я понял, на такую одежду можно попробовать повесить как минимум три анимации: Strat/Loop/End, а может и свою вызывать можно с помощью PlayGamebryoAnimation(). В общем я просто в восторге ! (я несколько месяцев пытался всякими хитрыми манёврами обманывать систему, чтобы заставить анимацию работать, но до такого способа не додумался)
Теперь осталось только включить заново фантазию и замутить чего-то оригинальненького !!!
ПС: кстати, для того чтобы корона правильно надевалась на голову, нужно только поменять привязку в НИФ файле в блоке [NiStringsData] (который называется "AttachT") с MagicEffectNode на NPC Head [Head].
всем доброго..как на текстуру ландшафта добавить траву?всмысле как в ванильных тектурах - выперает да колыхается))
Открываешь ландшафтную текстуру в меню Miscellaneous - LandTexture: Переходишь в раздел WorldObjects - Grass, выбираешь нужную тебе траву и переносишь ее сюда: Нажимаешь ОК, все.
Не объединяя оба мода и не привязывая их друг к другу? А в каком моде делать "кнопку/дверь/скрипт" этого перехода, в своём новом моде? Сделать можно любой вариант, но нужны пояснения/подробности.
Не объединяя их. Отредактировать мод дом тёплых ветров и в нём добавить дверь. Ну или там есть лифт и как-то сделать кроме ререхода по этажам переход и в хранилище.
Не объединяя их. Отредактировать мод дом тёплых ветров и в нём добавить дверь. Ну или там есть лифт и как-то сделать кроме ререхода по этажам переход и в хранилище.
Там напротив штатного телепорта сделан ещё один такой же, который ведёт в хранилище. В самом хранилище будет появляться люк рядом с остальными люками, который ведёт обратно в дом.
Если интересно, то вот там примерно так:
Скритп на активаторе с нифом как телепрот в доме. Устанавливается в доме "Прохладных ветров". ------------------- Activator Property A001_DR_CollectorsNext auto Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() ObjectReference MarkerRer = Game.GetFormFromFile(0x01002757, "collectors_chamber.esp") as ObjectReference if MarkerRer ObjectReference MarkerDoorRer = MarkerRer.PlaceAtMe(A001_DR_CollectorsNext) MarkerDoorRer.SetPosition(MarkerDoorRer.X, MarkerDoorRer.Y, MarkerDoorRer.Z - 10) Game.GetPlayer().MoveTo(MarkerDoorRer) else Debug.Notification("MarkerRer NONE ") ; @!!!! endif endif EndEvent ======================= Скритп на активаторе с нифом "Люк" ------------------ ObjectReference Property MarkerHomeRer auto Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.GetPlayer() if Game.GetFormFromFile(0x03000D63, "0001BertsBreezehomeRemodel.V.2(collectors).esp") as ObjectReference Game.GetPlayer().MoveTo(MarkerHomeRer) endif self.Disable() self.Delete() endif EndEvent
Изменение репутации для пользователя Kolyanus93
Kolyanus93Offline
Сообщение №5334
написано: 30 августа 2013, 18:37
| Отредактировано: Kolyanus93 - 30 августа 2013, 18:51
Всем доброго дня. Скажите, пожалуйста, почему после редактирования внешности нпс, у них потом вообще теряется цвет лица? Тело остаётся нормальным, с текстурами реплейсера, а вот лицо просто однотонное без всякой красоты. Такое впечатление, будто бы у мня нет нормальных текстур для лица. До этого пользовался NPC Editor-ом и горя не знал а теперь эта зараза отказалась работать, и вот пришлось ковырять этот идиотский Creation Kit. Отредактировать фейс, выставить макс статы и раздать перки - большего мне и не нужно от редактора.
кто имел дело с созданиями квестов?создавал квест четко по видео кальяна,нпц вообще не хочет заводить диалог...в чем может быть проблема?в getisid указал его..
Спасибо большущее, но я клацаю на новый телепорт и остаюсь на месте. Из другого дома зашёл в хранилище там нового люка нет.
Прошу прощения, это моя невнимательность - запаковщик BSA обрезал название архива, а я не заметил этого. Вот исправленный вариант: http://yadi.sk/d/Rf4LQcw58WbIG
*** Без первоначальной активации телепорта люка в хранилище не будет, он создаётся активатором телепорта.
***** ***** Таким способом можно сделать дверь-телепорт в любой дом их любого мода, причём без привязки к тому моду. Если у кого будет желание, то распишу это дело подробнее.
AleksTirex, надобности особой не предвидится, но весьма любопытно. Поделись знанием.
Отними у меня апельсин - и я тебя убью Съешь мой апельсин - и я тебя убью Подари мне апельсин - и... я тебя убью Мне не нужен никто, лишь мой апельсин А тот кто не пойман - не ассасин!
Изменение репутации для пользователя AleksTirex
AleksTirexOffline
Сообщение №5340
написано: 31 августа 2013, 01:18
| Отредактировано: AleksTirex - 31 августа 2013, 01:46
Сперва открывается мод с нужным домом/локацией, куда мы хотим сделать дверь из своего дома. Там в доме ищется любой удобный маркер, на месте которого будет стоять дверь-активатор. Записывается FormID его референса, этот номер написан окне Reference этого маркера в самом верхнем правом углу в скобках. Закрываем этот мод, он больше не нужен.
Открываем СК и загружаем основной мод. Если мод на основе ESM, то загружаем этот ESM и после загрузки сохраняемся с названием ... - это будет мод-патч к этому ESM. Создаём активатор с понравившимся нифом (способ назначения нифа без распаковки описан в этой теме немного раньше). Создаём активатор для ответной двери, который будет устанавливаться во втором доме, тем же способом.
01002757 - FormId референса маркера, где будет устанавливаться дверь в доме/локации из второго мода. Этот номер написан окне Reference в самом верхнем правом углу в скобках (тырк-тырк по маркеру). Маркер любой удобный для расположения на нём двери (cocMarker, XMarker, и т.д.)
mod_house.esp - название мода с домом/локацией.
aActivatorDoor - активатор второй двери (делается не дверь, а активатор).
if Game.GetFormFromFile(0x03000D63, "myMod.esp") as ObjectReference
Game.GetPlayer().MoveTo(MarkerHomeRef)
endif
self.Disable()
self.Delete()
endif
EndEvent
03000D63 - FormId референса двери-активатора в доме из этого мода. Этот номер написан окне Reference в самом верхнем правом углу в скобках (тырк-тырк по активатору).
MarkerHomeRef - назначается дверь-активатор в доме из этого мода.
В принципе, условие if Game.GetFormFromFile(0x03000D63, "myMod.esp") as ObjectReference для работы не надо, но это как бы защита от лажи из-за отсутствия данного мода, т.к. сама дверь активатор создана и остаётся в этой локации даже без этого мода.
Сохраняем. Всё готово.
Принцип действия: при активации первой двери-активатора идёт проверка на наличие второго мода и получение референса на установку двери, проверяются неудалённые ранее созданные двери во втором доме и по обнаружению удаляются, создаётся новая дверь, игрока телепортирует в нужный дом.
При активации второй двери игрока телепортирует в свой дом и удаляется эта дверь. Если игрок хочет бегать через разные двери, при этом чтобы эта дверь оставалась, надо просто изъять удаляющие команды из второго скрипта (их первого удалять эти команды нельзя, иначе двери могут плодится).
Если вы первый мод выключили, то во втором моде остаётся эта дверь, ведь она создана и записана в сохранке. При актвации такой двери она просто удалится (если удаление вы убрали, то просто не будет никаких срабатываний, т.е. лаж не возникнет).