Azazellz Опубликовано 2 февраля, 2020 Опубликовано 2 февраля, 2020 02.02.2020 18:27:21, CISCO.:i:..:i:. сказал(-а):PlayGamebryoAnimation PlayGamebryoAnimation работает иначе. У него другой синтаксис. https://www.creationkit.com/index.php?title=PlayGamebryoAnimation_-_ObjectReference
Azazellz Опубликовано 2 февраля, 2020 Опубликовано 2 февраля, 2020 Да, еще попробуй вот это https://www.creationkit.com/index.php?title=GetAnimationVariableBool_-_ObjectReference https://www.creationkit.com/index.php?title=SetAnimationVariableBool_-_ObjectReference Может там у нижки есть какой-то стат в графе, который указывает на то, что она сейчас открыта. Ты ее закрываешь геймбрио-анимацией, но она стат не изменяет, поэтому игра думает, что книга все равно открыта. Хз только, что это за стат, и где там его можно посмотреть.
CISCO.:i:..:i:. Опубликовано 2 февраля, 2020 Опубликовано 2 февраля, 2020 Azazellz большое спасибо за советы - буду пробовать
budu200 Опубликовано 10 февраля, 2020 Опубликовано 10 февраля, 2020 (изменено) Драсте... :) В игрюлю всяко переиграл.... С кучей модов превратил игру в пошаговую стратегию... Не хочется отпускать игрулю - нравится... Решил идти путем модостроения, сделать мод под себя... Вообщем типа мододел любитель.(Это про себя, чтобы уровень был понятен...) Для начала вопрос...Вытащил скрипт с мода с купальней, c раздеванием проблем нет, а вот с одеванием проблема :sad: . То что ГГ не одевается, эт понятно... в коде этого нет... но в том моде мои стражники после купальни одеваются...тот же скрипт у меня - хоть убей...Не хотят... Дубликат кольца с того мода продублировал и прицепил к скрипту. Scriptname RL_ReEquipAll extends ObjectReference Armor property DummyRing auto Event OnTriggerEnter(ObjectReference akActionRef) if(akActionRef != Game.GetPlayer()) actor who = akActionRef as actor who.AddItem(DummyRing, abSilent = true) who.EquipItem(DummyRing, abSilent = true) who.UnEquipItem(DummyRing, abSilent = true) who.RemoveItem(DummyRing, abSilent = true) endif EndEvent В том моде стражники(мной созданные стражники, с моими пакетами) одеваются - у меня нет... может ли влиять Exterier и Interier? зы.. оба тригера(с этим скриптом) находятся в Exteriors, а у меня в Interiors. В код вставил "Проверку", "Проверка" появляется, в левом верхнем углу... Сразу второй вопрос в тему... хочется чтобы и ГГ одевался обратно автоматом...Предполагаю, нужно получить id одежды при вхождении в зону, сохранить ее в массиве и потом опять ее одеть по id из массива... Это возможно сделать средствами кодинга? Изменено 10 февраля, 2020 пользователем budu200
Azazellz Опубликовано 10 февраля, 2020 Опубликовано 10 февраля, 2020 10.02.2020 12:10:34, budu200 сказал(-а):В том моде стражники одеваются у меня нет... может ли влиять Exterier и Interier? Нет, не может. Вернее, не должен. Скрипт странный, конечно. Добавляет, экипирует, и удаляет какое-то кольцо. Я так понимаю, чтоб перезапустить ванильный ИИ экипировки предметов - чтоб он сам предметы из инвентаря экипировал после такого "пенделя" (кстати, очень изящное решение, если это так). Но вот почему ивент стоит "OnTriggerEnter" - когда персонаж входит в зону триггера? Не логичнее было бы использовать "OnTriggerLeave" - когда персонаж из зоны выходит?
budu200 Опубликовано 10 февраля, 2020 Опубликовано 10 февраля, 2020 (изменено) Ну... после такого "пенделя" должны одеть Outfit, и одевают... Но разница только в Ext и Int. у меня Int тестовая лока. Где-то читал, нужно перегрузить локу в Int тогда произойдет смена на Outfit... Типа с этой проблемой трудно бороться(с Outfitom) А по раздеванию и одеванию ГГ есть мысли? Зы... там 2 тригера общий на зону - раздевания NPC, второй на выходе одевает.... фурнитура(скрипт) в купальне просто раздевает только ГГ. для общего понимания на раздевание ГГ и NPC... Scriptname RL_SaunaSitUnequip extends ObjectReference Import Game Import Utility Import Debug ObjectReference property SaunaDoor01 auto String strSaunaRelax = "You begin to feel relaxed as sauna restores your body and soul" Event OnActivate(ObjectReference akActionRef) if(akActionRef == Game.GetPlayer()) actor who = akActionRef as actor who.unequipall() Notification(strSaunaRelax) endif EndEvent ;----------- Scriptname RL_SaunaEnterUnequip extends ObjectReference Event OnTriggerEnter(ObjectReference akActionRef) if(akActionRef != Game.GetPlayer()) actor who = akActionRef as actor who.unequipall() endif EndEvent Изменено 10 февраля, 2020 пользователем budu200
Azazellz Опубликовано 10 февраля, 2020 Опубликовано 10 февраля, 2020 10.02.2020 13:22:58, budu200 сказал(-а):Где-то читал, нужно перегрузить локу в Int тогда произойдет смена на Outfit... Вот такого я нигде не видел. Но я много чего не видел, так что мало ли =) 10.02.2020 13:22:58, budu200 сказал(-а):А по раздеванию и одеванию ГГ есть мысли? Тут все гораздо сложнее. Надо, во-первых, где-то запоминать удаляемые предметы. Потом эти предметы надо еще и экипировать обратно. Я вижу так: при входе в купальню на ГГ вешается скрытый маг.эффект, который висит, пока ГГ в купальне. В нем на ивенте OnEffectStart команда на unequipall (ну или снятие вещей по слотам), и ивент OnObjectUnequipped. В этом ивенте мы можем определять, какая вещь снята была, и соответственно в какой-нибудь список ее внести (внутри скрипта в список переменных, в массив, в формлист - как сделаешь). По выходу из триггера эффект снимается, и на ивенте OnEffectFinish все, что было снято, экипирует назад. Можно еще через это вот по слотам пройтись, посмотреть что там экипировано, и уже конкретные вещи снять.
budu200 Опубликовано 10 февраля, 2020 Опубликовано 10 февраля, 2020 (изменено) упс.. :sad: Изменено 12 февраля, 2020 пользователем budu200
budu200 Опубликовано 12 февраля, 2020 Опубликовано 12 февраля, 2020 10.02.2020 18:02:42, Azazellz сказал(-а):Можно еще через это вот по слотам пройтись, посмотреть что там экипировано, и уже конкретные вещи снять. Использовал слоты и FormList, ГГ нормально раздевается и одевается... СПС
budu200 Опубликовано 17 февраля, 2020 Опубликовано 17 февраля, 2020 HasKeywordInFormList - Form : в 4 фаллауте есть... А как в тессе есть что нить аналогичное?
Azazellz Опубликовано 17 февраля, 2020 Опубликовано 17 февраля, 2020 17.02.2020 09:18:08, budu200 сказал(-а): HasKeywordInFormList - Form : в 4 фаллауте есть... А как в тессе есть что нить аналогичное? Нет вроде. Но можно прогнать формлист целиком по циклу и в каждой записи проверить наличие кейворда.
budu200 Опубликовано 17 февраля, 2020 Опубликовано 17 февраля, 2020 17.02.2020 13:59:49, Azazellz сказал(-а): Нет вроде. Но можно прогнать формлист целиком по циклу и в каждой записи проверить наличие кейворда. Чет не соображу через какую функцию выдернуть Keyword из FormList, FLST.GetAt(iIndex) получает Form...keywordow не видит....
Azazellz Опубликовано 17 февраля, 2020 Опубликовано 17 февраля, 2020 17.02.2020 14:36:29, budu200 сказал(-а): Чет не соображу через какую функцию выдернуть Keyword из FormList, FLST.GetAt(iIndex) получает Form...keywordow не видит.... Ну. Форму ты получил. Потом юзаешь на нее HasKeyword. Если хотя бы раз будет True - значит, в формлисте есть что-то с этим кейвордом.
budu200 Опубликовано 17 февраля, 2020 Опубликовано 17 февраля, 2020 17.02.2020 15:02:09, Azazellz сказал(-а): Ну. Форму ты получил. Потом юзаешь на нее HasKeyword. Если хотя бы раз будет True - значит, в формлисте есть что-то с этим кейвордом. Ок.. попробую
budu200 Опубликовано 26 февраля, 2020 Опубликовано 26 февраля, 2020 (изменено) Подскажите... notification("Необходимо : " + Item1.getName() + " " +CountItem1 + " шт") ; в этой строчке русский текст кракозябрами endIf else notification("Приходите с " + mHourToEnable as int + " до " + mHourToDisable as int) ; в этой строчке норма пишет... Не соображу почему? :sad: з.ы. Ни какие манипуляции не помогают, Item1.getName() если присутствует или же Переменная в которую получил через Item1.getName() ... Русский текст в кракозябрах... Item1.getName() убираю, все норма... Не победил.. Судя по всему какой то внутренний глюк... Печалька... Изменено 26 февраля, 2020 пользователем budu200
CISCO.:i:..:i:. Опубликовано 20 апреля, 2020 Опубликовано 20 апреля, 2020 (изменено) Доброго времени суток! Подскажите почему не работает тыкbool property isInPullPosition = True Auto ObjectReference Property MyDoor Auto ObjectReference Property MyActivator Auto EVENT onActivate (objectReference triggerRef) If (isInPullPosition) MyDoor.PlayGamebryoAnimation("Forward", "true") self.BlockActivation() utility.wait (5.5) MyActivator.Enable() self.BlockActivation(false) isInPullPosition = False else MyActivator.Disable() MyDoor.PlayGamebryoAnimation("Backward", "true") self.BlockActivation() utility.wait (5.5) self.BlockActivation(false) isInPullPosition = True endIf endEVENT вешаю это на активатор (кнопку) - анимация и Enable Disable работают а блокировка на нажатие кнопки не срабатывает. Изменено 20 апреля, 2020 пользователем CISCO.:i:..:i:.
Azazellz Опубликовано 21 апреля, 2020 Опубликовано 21 апреля, 2020 20.04.2020 23:03:07, CISCO.:i:..:i:. сказал(-а):вешаю это на активатор (кнопку) - анимация и Enable Disable работают а блокировка на нажатие кнопки не срабатывает. Прочитай примечания. Там сложно с этой штукой. Где-то тут, некоторое время назад, мы обсуждали скрипт с активацией водопадов по нажатию разных рычагов. В ванили есть аналог, где надо было решать паззл - открыть несколько решеток путем подбора нужной последовательности нажатия на рычаги. Вот там, в ванильных скриптах, я вроде как видел рабочую защиту от повторной активации. Но что это за скрипт, в каком данже это было использовано - я уже и не помню.
werr Опубликовано 21 апреля, 2020 Опубликовано 21 апреля, 2020 20.04.2020 23:03:07, CISCO.:i:..:i:. сказал(-а):Доброго времени суток! Подскажите почему не работаетBlockActivation - тут немного не то. Когда хочешь реализовывать блокировку от повторных нажатий "не вовремя", нужно это делать через стейты. Ниже переделал твой скрипт. 5.5 секунд взято из него же. По-хорошему, смотришь на время воспроизведения анимации движения рычага и это время и берешь. Bool property isInPullPosition = true auto ObjectReference property MyDoor auto ObjectReference property MyActivator auto auto STATE INITIAL Event OnActivate(ObjectReference triggerRef) if isInPullPosition isInPullPosition = false MyDoor.PlayGamebryoAnimation("Forward", "true") MyActivator.Enable() GotoState("BusyAnimating") else isInPullPosition = true MyDoor.PlayGamebryoAnimation("Backward", "true") MyActivator.Disable() GotoState("BusyAnimating") endif endevent ENDSTATE STATE BusyAnimating Event OnBeginState() Utility.Wait(5.5) GotoState("INITIAL") endevent ENDSTATE A Random Dude's Story
CISCO.:i:..:i:. Опубликовано 21 апреля, 2020 Опубликовано 21 апреля, 2020 21.04.2020 06:27:27, Azazellz сказал(-а):Прочитай примечания. Там сложно с этой штукой. Если бы я хорошо понимал на английском - так нет - учится было лень в своё время. 21.04.2020 14:17:24, werr сказал(-а):нужно это делать через стейты. Я даже слова такого не знаю) 21.04.2020 14:17:24, werr сказал(-а):По-хорошему, смотришь на время воспроизведения анимации движения рычага и это время и берешь. Именно от туда и взялось это время - Большое спасибо за скрипт - как проверю отпишусь.
CISCO.:i:..:i:. Опубликовано 21 апреля, 2020 Опубликовано 21 апреля, 2020 21.04.2020 14:17:24, werr сказал(-а):Ниже переделал твой скрипт Ещё раз большое спасибо! Проверил скрипт в игре - всё работает!
arifon Опубликовано 23 апреля, 2020 Опубликовано 23 апреля, 2020 (изменено) Ребята подскажите как лечить, в храме небесной гавани каждые сутки один персонаж застревает у входа и не уходит с места, это дико раздражает, пробовал перезагружать игру, не помогает, из модов установленны USLEEP и пару ретекстуров, но они же не должны влиять на скрипты, помогите пожалуйста Изменено 23 апреля, 2020 пользователем arifon
Azazellz Опубликовано 23 апреля, 2020 Опубликовано 23 апреля, 2020 23.04.2020 10:32:36, arifon сказал(-а): Ребята подскажите как лечить, в храме небесной гавани каждые сутки один персонаж застревает у входа и не уходит с места, это дико раздражает, пробовал перезагружать игру, не помогает, из модов установленны USLEEP и пару ретекстуров, но они же не должны влиять на скрипты, помогите пожалуйста К скриптам это отношения точно не имеет. Ну и вроде как у них там на входе в храм пост, где часовой стоять должен.
werr Опубликовано 23 апреля, 2020 Опубликовано 23 апреля, 2020 23.04.2020 10:32:36, arifon сказал(-а):в храме небесной гавани каждые сутки один персонаж застревает у входа и не уходит с места, это дико раздражает 23.04.2020 11:01:58, Azazellz сказал(-а):К скриптам это отношения точно не имеет.Это игрок? A Random Dude's Story
Azazellz Опубликовано 23 апреля, 2020 Опубликовано 23 апреля, 2020 23.04.2020 13:21:46, werr сказал(-а):Это игрок? Это НПС. Но застревание же не со скриптами связано, а с АИ пакетами. Или навмешами. На моей памяти там только при первом визите Дельфина тупила, жаровни зажигать не хотела, из-за чего главный квест не двигался. Но и это тоже не скрипты, это квесты.
werr Опубликовано 23 апреля, 2020 Опубликовано 23 апреля, 2020 23.04.2020 13:57:42, Azazellz сказал(-а):Я прикалываюсь конечно. Но "каждые сутки в мире ТЕС застревает один персонаж" - звучит как начало социальной рекламы.А серьезно, неофициальный патч хренову тучу всего меняет. Они даже положение камней в мире двигают, потому что в ванили местами встречались зазоры. Чего уж тут про скрипты и пакеты. Самое банальное - это они стак аи пакетов кому-то из НПС поменяли неудачно. Но гадать я не буду. A Random Dude's Story
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти