Андрей 5 Опубликовано 18 февраля, 2019 Опубликовано 18 февраля, 2019 Такая проблема...у некоторых людей использующих USLEP и мой мод: "Комната коллекционера" возникает проблема с витринами для кинжалов,с большими витринами для оружия,с вертикальными стойками под оружие и с одним манекеном на нижнем этаже...И самое странное что у меня с витринами для кинжалов и с вертикальными стойками для оружия всё в порядке...а вот с большими витринами для оружия и с одним манекеном на нижнем этаже у меня тоже какие-то непонятки...я всё делаю правильно,манекен через linkedRef привязываю к xmarkerheading,потом привязываю xmarkerheading к манекену,а затем через "ActiveParents" привязываю манекена к триггеру...в случае c большими витринами я через linkedRef привязываю "синий триггер" к "оранжевому активатору" и при привязывании выбираю "WRackActivator",потом я привязываю "оранжевый активатор" к "синему триггеру",и при привязывании выбираю "WRackTrigger" (я таким же способом делал витрины для кинжалов,но витрины для кинжалов работают,а большие витрины почему-то нет)...и в конечном итоге что большие витрины для оружия,что один манекен на нижнем этаже не работают...и самое интересное...если я на то место где стоит нерабочий манекен,поставлю рабочий (который я сам проверял в игре,и он работал) то этот рабочий манекен на том месте тоже перестанет работать...и я так же не могу понять почему у некоторых использующих мой мод не работают витрины для кинжалов и вертикальные стойки под оружие (я тоже использую USLEP,и у меня витрины для кинжалов и вертикальные стойки под оружие работают) ...Кто-нибудь может пожалуйста помочь решить эту проблему? Комната коллекционера 3.0.rar
werr Опубликовано 19 февраля, 2019 Опубликовано 19 февраля, 2019 Сравни скрипты для стоек ванильные и из неофициального патча. Также, я если честно не особо знаю нюансы работы GetLinkedRef() при указанном кейворде и без (на вики этого не указано). Но есть подозрение, что скрипт просто не получает нужный LinkedRef. Вопрос: зачем ты используешь WRackActivator и WRackTrigger, если в скрипте это никак не фигурирует? Мне всегда было интересно, откуда у людей берется это странное желание делать лишние телодвижения, не понимая что они значат и для чего. Это ж ритуал какой-то. В действиях должна быть логика, а в коде однозначность. Вообще напиши лучше свой скрипт для манекенов и стоек. Так не будет никаких тонкостей с совместимостью и можно сделать так, как захочется.Я бы подходил к этой системе со стендами вообще иначе (вот древняя версия скрипта для витрины, что когда-то писал):СпойлерScriptname WH_WeaponRackSCR01 extends ObjectReference Message property WH_RackMenu_message00 auto Message property WH_RackMenu_message01 auto Message property WH_RackMenu_messageFail01 auto Message property WH_RackMenu_messageFail02 auto Keyword property BlockPlayerActivation auto Keyword property BlockWorkshopInteractionKeyword auto Sound property AMBElectricArcSmall auto Formlist property SuitableKeywords auto Formlist property WH_WeaponTypeMeleeKeywords auto Objectreference property WeapMarker auto hidden Objectreference property WeapMarkerGun auto Objectreference property WeapMarker2HMelee auto Objectreference property GunToPlace auto hidden Objectreference property LightMarker auto Objectreference property LightLampOff auto GlobalVariable property WH_PlayerActRackFirstTimeGlobal auto bool property IsMeleeIncluded = false auto int WH_IsWeaponPlaced = 0 int WH_WeaponHadKeywordFeaturedInitially = 0 int WH_BackLightIsOn = 0 ;================================================= Event OnActivate(ObjectReference akActionRef) if akActionRef == Game.Getplayer() if WH_PlayerActRackFirstTimeGlobal.GetValue() == 0 WH_PlayerActRackFirstTimeGlobal.SetValue(1) WH_RackMenu_message00.Show() endif RackMenu() endif endevent Function RackMenu(int Button = 0) ;0 - activate 1 - preview weapon 2 - cancel Button = WH_RackMenu_message01.Show() if Button == 0 RackActivate() elseif Button == 1 RackLights() elseif Button == 2 ;Player wants to leave endif endfunction Function RackActivate() weapon Gun WeapMarker = WeapMarkerGun if WH_IsWeaponPlaced == 0 ;;; WE WANT TO PUT WEAPON <<<<<<<<<<<<<<<<<<< Gun = Game.GetPlayer().GetEquippedWeapon() if (Gun.HasKeywordInFormList(SuitableKeywords) == true) GunToPlace = Game.GetPlayer().DropObject(Gun, 1) if GunToPlace.HasKeywordInFormList(WH_WeaponTypeMeleeKeywords)== true && IsMeleeIncluded == true WeapMarker = WeapMarker2HMelee endif GunToPlace.MoveTo(WeapMarker) GunToPlace.SetMotionType(Motion_Keyframed) GunToPlace.AddKeyword(BlockPlayerActivation) GunToPlace.AddKeyword(BlockWorkshopInteractionKeyword) else WH_RackMenu_messageFail02.show() endif WH_IsWeaponPlaced = 1 elseif WH_IsWeaponPlaced == 1 ;;; WE WANT TO TAKE WEAPON BACK <<<<<<<<<<<<<<<<<<< GunToPlace.RemoveKeyword(BlockPlayerActivation) GunToPlace.RemoveKeyword(BlockWorkshopInteractionKeyword) GunToPlace.SetMotionType(Motion_Dynamic) Game.Getplayer().AddItem(GunToPlace) WH_IsWeaponPlaced = 0 endif endfunction Function RackLights() if WH_BackLightIsOn == 0 WH_BackLightIsOn = 1 AMBElectricArcSmall.play(SELF) LightMarker.Enable() utility.wait(0.5) ;;because it happens with delay LightLampOff.Disable() else WH_BackLightIsOn = 0 AMBElectricArcSmall.play(SELF) LightLampOff.Enable() utility.wait(0.5) ;;because it happens with delay LightMarker.Disable() endif endfunction A Random Dude's Story
Пакость Опубликовано 20 февраля, 2019 Опубликовано 20 февраля, 2019 В своё время помню сталкивался с подобной загадкой, и насколько помню конкретно со скриптами оно никак связанно не было, а скорей с модельной подноготной этих самых манекенов и какими-то глубинными внутренними багами в движке игры. Причём именно, доказано, на разных машинах/разных ОСях оно вело себя по разному. Итого в моём случае помогало просто подбирать положение и вроде не любило больших целых значений (чёткой ориентации по сторонам света). Но тоже так-себе решение ибо эти манекены и ванильные игровые много где не работают.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти