baglebld, Никак. Их число зашито в движок. Это число практически использовано. Если не ставить дополнения к Скайриму, то там появляются свободные слоты, то тогда вы получите гарантированный конфликт с дополнениями и со всеми модами, которые попытаются изменить слоты в кузнице.
Добавлено (27 Января 2014, 09:03) ---------------------------------------------
Цитата anton
Йес, сам докопался !Оказывается этот "пи-пи-пи" движок показывает от 1-го лица только те предметы, которые привязаны к именованным слотам. Я использовал слот 59 (unnamed), но когда поменял его на 36 (Ring) всё встало на свои места
Всё интереснее. Список слотов, которые видны от первого лица устанавливается в свойствах расы. Т.е. там можно поставить показывать вид от первого лица для 59-го слота. Я так сделал для колец в нестандартных слотах в своём моде Кольценосцы. Но тогда может быть такая проблема: если кто-то сделает элемент брони, занимающий этот слот, но не сделает для этого элемента вид от первого лица, будет вылет из игры при одевании этой брони.
2 Arin - попробуйте поставить пакет в наивысшем приоретете и введите ему проверку на определенную стадию квеста в поле conditions. И когда вам надо исполнение данного пакета, просто переставьте квест на нужную стадию!
Уважаемый Вип, я уже писала, что квестовый(!) пакет нельзя(!) добавить в список к нпс. И стадия на нем отмечена. Так что я даже не знаю, как заставить нпс выполнить этот пакет, раз его нет у него в списке.
Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых. Джордж Бернард Шоу
Уважаемый Вип, я уже писала, что квестовый(!) пакет нельзя(!) добавить в список к нпс.
Верно. Его нельзя и привязать к алиасу актёра из другого квеста. Дело в том, что в пакете написано, к какому квесту он привязан. Так сделайте новый пакет. Точно такой же, но без привязки.
Изменение репутации для пользователя VIPerMX
VIPerMXOffline
Сообщение №6725
написано: 27 января 2014, 12:00
| Отредактировано: VIPerMX - 27 января 2014, 12:01
Уважаемый Вип, я уже писала, что квестовый(!) пакет нельзя(!) добавить в список к нпс. И стадия на нем отмечена. Так что я даже не знаю, как заставить нпс выполнить этот пакет, раз его нет у него в списке
Простите, видимо не так вас понял. Тогда совет Myprism вам в помощь. Можно просто создать копию пакета или сделать с нуля для вашего нпс.
Уже где-то видел, но нужно поподробнее и для нубов. Как устранить проблемку с падением чёрт-знает-куда оружия, при установке оного в стойку? (Имеется ввиду "Эбонитовый меч")
А можно связывать предметы через LinkedRef, но которые находятся в разных локациях? Типа дёрнул рубильник в одной комнате, что-то появилось в другой. А то появление предметов и людей прямо после нажатия кнопки выглядит глупо.
Верно. Его нельзя и привязать к алиасу актёра из другого квеста. Дело в том, что в пакете написано, к какому квесту он привязан. Так сделайте новый пакет. Точно такой же, но без привязки.
Спасибо за помощь. Я совсем забыла добавить спикера в алиас квеста.
Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых. Джордж Бернард Шоу
Изменение репутации для пользователя OmnisiahPriest
Как установить правильно TESVSnip? У меня ошибку при запуске выдаёт, про шрифты что-то.
Добавлено (27 Января 2014, 23:30) --------------------------------------------- Или каким другим способом можно отвязать лишний мастерфайл? В редакторе удалить из списка не получается, не исчезает просто.
Добавлено (28 Января 2014, 01:11) --------------------------------------------- Сделал крупный плагин с домом. Поддержка "Усыновление детей в Скайриме", все дела. Так вот, переселяю туда семью, детишки норм всё - по дому бегают, маркерами пользуются. А вот с женой трабла - в доме стоит на одном месте, на улицу выйдет - пройдётся до одной точки, постоит, и назад. Хотя разные маркеры есть везде. Ну там сесть на лавочку или на грядке махать тяпкой.
OmnisiahPriest, что именно будет делать персонаж, определяется AI-пакетами, которые ты ему поставил. А маркеры только подсказывают ему где этим надо заниматься.
Изменение репутации для пользователя OmnisiahPriest
Добавлено (29 Января 2014, 02:15) --------------------------------------------- Вот ещё момент. Решил сделать несколько вариаций для плагина. Например, пустой обеденный стол для тех, кто хочет вручную расставить всё. Запустил в редактореЮ не выделяя активным, удалил всё со стола, сохранил это в маленький 5-кб файл. В лаунчере ставлю его ниже основного. Захожу в игру - всё на своих местах, как и было. ЧЯДНТ?
В AI пакетах Лидии установлено место, где их надо исполнять. Если они работают, то она просто отправится в Дом Тёплых Ветров. Если персонаж находится в компаньонах или супругах, то соответствующие квесты ставят его алиасам другие пакеты. Они исполняются с приоритетом. Раз не уходит домой, значит, родные пакеты замещены квестовыми. А раз ничего путного не делает, значит с квестовыми пакетами там бардак. В частности, для каждого дома предусмотренного для проживания с супругом в игре ставится свой набор AI-пакетов.
Добрый день, уважаемые коллеги. Есть у меня одна задумка. Хочу, чтобы охранник на воротах при подходе ГГ опускал подъемный мост, открывал ворота и поднимал решетку. Теоретически это, кажется, возможно. Нужен будет триггер-активатор, сам охранник, рычаг с маркером мне, кажется, тоже как-то попадался. Правда, неплохо бы сделать так, чтобы это происходило на регулярной основе, т.е: вошел в зону - мост опустился - прошел - вошел в другую зону - мост поднялся. И - в обратном порядке, когда уходишь из крепости. Как думаете, насколько это реально без написания собственных скриптов? Стоит ли огород городить?
Samund, совершенно реально. Вот только непонятно, почему без собственных скриптов? Ведь на триггерах и на всяких подвижных частях висят скрипты. Не собственные, но без них обойтись нельзя. Дальше, поведением охранника управляют AI-пакеты. Их надо переключать квестом. В основе квеста всё равно будет лежать скрипт и уже собственный. Если пакеты переключать не квестом, а скриптами, то, тем более, без собственных не обойтись.
Вот только непонятно, почему без собственных скриптов?
Что касается скриптов, висящих на триггерах - без них я никуда, конечно. А вот по поводу собственных все просто: я их писать не умею Моих скромных знаний VBA не хватает, чтобы с налета осилить Papyrus (таки ни разу не программер). По поводу квестов... Нда, тоже придется изучать вопрос. Myprism, спасибо, теперь знаю, что нужно осваивать!
Привет всем! Есть такой мод "XFL Как быть лидером", это мод расширяющий возможности управления компаньонами В нём есть возможность переодевать компаньонов, но при выборе этой одежды есть баг с волосами Ну в нём ещё много багов! Например, один самый плохой, - если оставить Серану, ветка "Пошли со мной" в диалоге больше не появиться. Я знаю, как отредактировать игровую одежду, убрать капюшон, сменить ID, но не знаю где изменить ID в скрипте. Слишком много и не понятно. В сообщении кнопок выбора указан пустой квест, в котором такой скрипт.
Message Property FollowerOutfitClothingMenu Auto Message Property FollowerOutfitLightMenu Auto Message Property FollowerOutfitHeavyMenu Auto
ReferenceAlias Property Alias_Outfit Auto
bool Sleepwear = false bool isGroup = false
int Function GetIdentifier() return 0x1001 EndFunction
; akCmd 0 - Apply Outfit ; akForm1 - Receiving Actor ; akForm2 - Outfit ; aiValue1 - Sleepwear Event OnActionEvent(int akCmd, Form akForm1 = None, Form akForm2 = None, int aiValue1 = 0, int aiValue2 = 0) If akCmd == 0 If aiValue1 == 0 ApplyOutfit(akForm1 as Actor, akForm2 as Outfit, false) Elseif aiValue1 == 1 ApplyOutfit(akForm1 as Actor, akForm2 as Outfit, true) Endif Endif EndEvent
Bool Function showMenu(Actor follower) ; Re-implement return true EndFunction
Bool Function showGroupMenu() ; Re-implement return true EndFunction
Function activateMenu(int page, Actor follower) ; Re-implement isGroup = false XFL_TriggerMenu(follower, "SubMenuType", "PluginMenu", page) EndFunction
Function activateGroupMenu(int page, Actor follower) ; Re-implement ; Do nothing isGroup = true XFL_TriggerMenu(follower, "SubMenuType", "PluginMenu", page) EndFunction
Function XFL_TriggerMenu(Actor followerActor, string menuState = "", string previousState = "", int page = 0) GoToState(menuState) activateSubMenu(followerActor, previousState, page) EndFunction
Function activateSubMenu(Actor followerActor, string previousState = "", int page = 0) ; Do nothing in blank state EndFunction
State SubMenuType ; Choose which type of outfit to wear Function activateSubMenu(Actor followerActor, string previousState = "", int page = 0) int OutfitMenu_Default = 0 int OutfitMenu_Sleepwear = 1 int OutfitMenu_Back = 2 int OutfitMenu_Exit = 3
If previousState != "" FollowerMenu.XFL_MessageMod_Back = 1 EndIf
Alias_Outfit.ForceRefTo(MenuRef) ; Menu text
int ret = FollowerOutfitTypeMenu.Show() If ret == OutfitMenu_Default Sleepwear = false XFL_TriggerMenu(followerActor, "SubMenuOutfit", GetState(), page) Elseif ret == OutfitMenu_Sleepwear Sleepwear = true XFL_TriggerMenu(followerActor, "SubMenuOutfit", GetState(), page) Elseif ret == OutfitMenu_Back FollowerMenu.XFL_TriggerMenu(followerActor, "PluginMenu", FollowerMenu.GetParentState("PluginMenu"), page) ; Force a back all the way to the plugin menu Elseif ret == OutfitMenu_Exit FollowerMenu.OnFinishMenu() Endif
GoToState("") EndFunction EndState
State SubMenuOutfit Function activateSubMenu(Actor followerActor, string previousState = "", int page = 0) int OutfitMenu_None = 0 int OutfitMenu_Clothing = 1 int OutfitMenu_LightArmor = 2 int OutfitMenu_HeavyArmor = 3 int OutfitMenu_Back = 4 int OutfitMenu_Exit = 5
If previousState != "" FollowerMenu.XFL_MessageMod_Back = 1 EndIf
Actor actorRef = None If !isGroup actorRef = followerActor Endif
Alias_Outfit.ForceRefTo(MenuRef) ; Menu text int ret = FollowerOutfitMenu.Show() If ret == OutfitMenu_None ;ApplyOutfit(actorRef, None, Sleepwear) FollowerMenu.OnFinishMenu() XFLMain.XFL_SendActionEvent(GetIdentifier(), 0, actorRef, None, Sleepwear as Int) Elseif ret == OutfitMenu_Clothing XFL_TriggerMenu(followerActor, "SubMenuOutfitClothing", GetState(), page) Elseif ret == OutfitMenu_LightArmor XFL_TriggerMenu(followerActor, "SubMenuOutfitLight", GetState(), page) Elseif ret == OutfitMenu_HeavyArmor XFL_TriggerMenu(followerActor, "SubMenuOutfitHeavy", GetState(), page) Elseif ret == OutfitMenu_Back XFL_TriggerMenu(followerActor, "SubMenuType", "PluginMenu", page) Elseif ret == OutfitMenu_Exit FollowerMenu.OnFinishMenu() Endif
GoToState("") EndFunction EndState
State SubMenuOutfitClothing Function activateSubMenu(Actor followerActor, string previousState = "", int page = 0) int OutfitMenu_Back = 8 int OutfitMenu_Exit = 9
If previousState != "" FollowerMenu.XFL_MessageMod_Back = 1 EndIf
Actor actorRef = None If !isGroup actorRef = followerActor Endif
Alias_Outfit.ForceRefTo(MenuRef) ; Menu text int ret = FollowerOutfitClothingMenu.Show() If ret < OutfitMenu_Back ;ApplyOutfit(actorRef, Outfits_Clothing[ret], Sleepwear) FollowerMenu.OnFinishMenu() XFLMain.XFL_SendActionEvent(GetIdentifier(), 0, actorRef, Outfits_Clothing[ret], Sleepwear as Int) Elseif ret == OutfitMenu_Back XFL_TriggerMenu(followerActor, previousState, "SubMenuOutfit", page) Elseif ret == OutfitMenu_Exit FollowerMenu.OnFinishMenu() Endif
GoToState("") EndFunction EndState
State SubMenuOutfitLight Function activateSubMenu(Actor followerActor, string previousState = "", int page = 0) int OutfitMenu_Back = 7 int OutfitMenu_Exit = 8
If previousState != "" FollowerMenu.XFL_MessageMod_Back = 1 EndIf
Actor actorRef = None If !isGroup actorRef = followerActor Endif
Alias_Outfit.ForceRefTo(MenuRef) ; Menu text int ret = FollowerOutfitLightMenu.Show() If ret < OutfitMenu_Back ;ApplyOutfit(actorRef, Outfits_LightArmor[ret], Sleepwear) FollowerMenu.OnFinishMenu() XFLMain.XFL_SendActionEvent(GetIdentifier(), 0, actorRef, Outfits_LightArmor[ret], Sleepwear as Int) Elseif ret == OutfitMenu_Back XFL_TriggerMenu(followerActor, previousState, "SubMenuOutfit", page) Elseif ret == OutfitMenu_Exit FollowerMenu.OnFinishMenu() Endif
GoToState("") EndFunction EndState
State SubMenuOutfitHeavy Function activateSubMenu(Actor followerActor, string previousState = "", int page = 0) int OutfitMenu_Back = 7 int OutfitMenu_Exit = 8
If previousState != "" FollowerMenu.XFL_MessageMod_Back = 1 EndIf
Actor actorRef = None If !isGroup actorRef = followerActor Endif
Alias_Outfit.ForceRefTo(MenuRef) ; Menu text int ret = FollowerOutfitHeavyMenu.Show() If ret < OutfitMenu_Back ;ApplyOutfit(actorRef, Outfits_HeavyArmor[ret], Sleepwear) FollowerMenu.OnFinishMenu() XFLMain.XFL_SendActionEvent(GetIdentifier(), 0, actorRef, Outfits_HeavyArmor[ret], Sleepwear as Int) Elseif ret == OutfitMenu_Back XFL_TriggerMenu(followerActor, previousState, "SubMenuOutfit", page) Elseif ret == OutfitMenu_Exit FollowerMenu.OnFinishMenu() Endif
GoToState("") EndFunction EndState
Function ApplyOutfit(Actor followerActor, Outfit outfitRef, Bool isSleepwear) If outfitRef == None outfitRef = Naked Endif If followerActor != None followerActor.SetOutfit(outfitRef, isSleepwear) ; Else ; int i = 0 ; While i <= XFLMain.XFL_GetMaximum() ; If XFLMain.XFL_FollowerAliases[i] && XFLMain.XFL_FollowerAliases[i].GetActorRef() != None ; XFLMain.XFL_FollowerAliases[i].GetActorRef().SetOutfit(outfitRef, isSleepwear) ; EndIf ; i += 1 ; EndWhile Endif EndFunction
Может кто то делал что то подобное и сможет помочь!
Мостик, спасибо! Конечно, если ничаво не выйдет, буду обращаться за помощью. Попробую только сначала сам разобраться - все равно надо. Давно хочу, но времени маловато: Конструктор - такая штука, если в него залез и начал что-то делать, то это надолго. Как с ремонтом - начать можно, а закончить - нельзя (можно только приостановить волевым усилием)
Как изменить слот брони? Вам нужно провести изменения в 3-х местах 1) Items/Armor - интересующая нас броня. В окне редактирования брони в списке Biped Object снять выделение с ненужных слотов и пометь нужные(должен быть отмечен хотя бы один слот) 2) По всех Items/ArmorAddon используемых Armor(см список Models в окне редактирования Armor) проделать туже операцию с их списками Biped Object, если в них были выделены не нужные слоты. 3) Во всех nif-файла используемых в Items/ArmorAddon, у которых меняли слоты, отредактировать свойство Partitions -> Partitions -> Body Part(см выше в ArmorAddon/Biped Object)
Если где-то вы не сделаете изменения, то в игре при надевании брони модель не будет нарисована, и вы увидите пустое место(в плоть до летающей головы).
Помогите нубу, как провести третий пункт... в игре при одевании предмета, он не рисуется. очень буду благодарен. можно стучать в скайп "haker.game"
В общем такой вопрос... Хотел сделать играбельным капюшон пыточных дел мастера, но ничего не могу с ним поделать(меню серое какое то) ничего изменять нельзя... И еще... Искал в интернете Соловьиный капюшон с маской только с убранной чернотой( ну чтоб лицо видно было) Если есть такой скиньте..
Добавлено (30 Января 2014, 16:43) --------------------------------------------- И еще, с нексусом не дружу, тут маски нету...А я хотел чтоб с маской но без черноты)
Добавлено (30 Января 2014, 16:47) --------------------------------------------- ArmorTorturerHood называется CK
Ок. Открываешь его и находишь выпадающий список Template Armor: Сейчас там выбран ArmorThievesGuildHelmet. Кликай по списку, выбирай NONE (стоит самым первым), и все поля станут доступными для редактирования. Ставишь галочку Playable, после чего в Template Armor ставишь обратно ArmorThievesGuildHelmet. Все, капюшон играбелен.
P.S. На будущее, если возникает проблема с каким-то предметом, приводи не его название, а его ID. По ID искать гораздо быстрее, чем по названию.