Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Да, еще попробуй вот это

https://www.creationkit.com/index.php?title=GetAnimationVariableBool_-_ObjectReference

https://www.creationkit.com/index.php?title=SetAnimationVariableBool_-_ObjectReference

Может там у нижки есть какой-то стат в графе, который указывает на то, что она сейчас открыта. Ты ее закрываешь геймбрио-анимацией, но она стат не изменяет, поэтому игра думает, что книга все равно открыта.

Хз только, что это за стат, и где там его можно посмотреть.

Опубликовано (изменено)

Драсте... :)

В игрюлю всяко переиграл.... С кучей модов превратил игру в пошаговую стратегию... Не хочется отпускать игрулю - нравится... Решил идти путем модостроения, сделать мод под себя... Вообщем типа мододел любитель.(Это про себя, чтобы уровень был понятен...) 

Для начала вопрос...Вытащил скрипт с мода с купальней, 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  из массива... Это возможно сделать средствами кодинга?

Изменено пользователем budu200
Опубликовано
10.02.2020 12:10:34, budu200 сказал(-а):
В том моде стражники одеваются у меня нет... может ли влиять Exterier и Interier?

Нет, не может. Вернее, не должен.

Скрипт странный, конечно. Добавляет, экипирует, и удаляет какое-то кольцо. Я так понимаю, чтоб перезапустить ванильный ИИ экипировки предметов - чтоб он сам предметы из инвентаря экипировал после такого "пенделя" (кстати, очень изящное решение, если это так).

Но вот почему ивент стоит "OnTriggerEnter" - когда персонаж входит в зону триггера? Не логичнее было бы использовать "OnTriggerLeave" - когда персонаж из зоны выходит?

Опубликовано (изменено)

Ну... после такого "пенделя" должны одеть 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

Изменено пользователем budu200
Опубликовано
10.02.2020 13:22:58, budu200 сказал(-а):
Где-то читал, нужно перегрузить локу в Int тогда произойдет смена на Outfit...

Вот такого я нигде не видел. Но я много чего не видел, так что мало ли =)

 

10.02.2020 13:22:58, budu200 сказал(-а):
А по раздеванию и одеванию ГГ есть мысли?

Тут все гораздо сложнее. Надо, во-первых, где-то запоминать удаляемые предметы. Потом эти предметы надо еще и экипировать обратно.

 

Я вижу так: при входе в купальню на ГГ вешается скрытый маг.эффект, который висит, пока ГГ в купальне.

В нем на ивенте OnEffectStart команда на unequipall (ну или снятие вещей по слотам), и ивент OnObjectUnequipped. В этом ивенте мы можем определять, какая вещь снята была, и соответственно в какой-нибудь список ее внести (внутри скрипта в список переменных, в массив, в формлист - как сделаешь).

По выходу из триггера эффект снимается, и на ивенте OnEffectFinish все, что было снято, экипирует назад.

 

Можно еще через это вот по слотам пройтись, посмотреть что там экипировано, и уже конкретные вещи снять.

Опубликовано
10.02.2020 18:02:42, Azazellz сказал(-а):
Можно еще через это вот по слотам пройтись, посмотреть что там экипировано, и уже конкретные вещи снять.

Использовал слоты и FormList, ГГ нормально раздевается и одевается... СПС

Опубликовано
17.02.2020 09:18:08, budu200 сказал(-а):

HasKeywordInFormList - Form : в 4 фаллауте есть... А как в тессе есть что нить аналогичное?

Нет вроде.

Но можно прогнать формлист целиком по циклу и в каждой записи проверить наличие кейворда.

Опубликовано
17.02.2020 13:59:49, Azazellz сказал(-а):

Нет вроде.

Но можно прогнать формлист целиком по циклу и в каждой записи проверить наличие кейворда.

Чет не соображу через какую функцию выдернуть Keyword из FormList, FLST.GetAt(iIndex) получает Form...keywordow не видит.... 

Опубликовано
17.02.2020 14:36:29, budu200 сказал(-а):

Чет не соображу через какую функцию выдернуть Keyword из FormList, FLST.GetAt(iIndex) получает Form...keywordow не видит.... 

Ну. Форму ты получил. Потом юзаешь на нее HasKeyword. Если хотя бы раз будет True - значит, в формлисте есть что-то с этим кейвордом.

Опубликовано
17.02.2020 15:02:09, Azazellz сказал(-а):

Ну. Форму ты получил. Потом юзаешь на нее HasKeyword. Если хотя бы раз будет True - значит, в формлисте есть что-то с этим кейвордом.

Ок.. попробую

  • 2 недели спустя...
Опубликовано (изменено)

Подскажите...

 

notification("Необходимо : " + Item1.getName() + " " +CountItem1 + " шт") ; в этой строчке русский текст кракозябрами
   endIf
  else
   notification("Приходите с " + mHourToEnable as int  + " до " + mHourToDisable as int) ; в этой строчке норма пишет...

 

Не соображу почему? :sad:

з.ы. Ни какие манипуляции не помогают, Item1.getName() если присутствует или же Переменная в которую получил через Item1.getName() ... Русский текст в кракозябрах... Item1.getName() убираю, все норма...

Не победил..  Судя по всему какой то внутренний глюк... Печалька...

Изменено пользователем budu200
  • 1 месяц спустя...
Опубликовано (изменено)

Доброго времени суток! Подскажите почему не работает

тык
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 работают а блокировка на нажатие кнопки не срабатывает. Изменено пользователем CISCO.:i:..:i:.
Опубликовано
20.04.2020 23:03:07, CISCO.:i:..:i:. сказал(-а):
вешаю это на активатор (кнопку) - анимация и Enable Disable работают а блокировка на нажатие кнопки не срабатывает.

 

Прочитай примечания. Там сложно с этой штукой.

 

Где-то тут, некоторое время назад, мы обсуждали скрипт с активацией водопадов по нажатию разных рычагов. В ванили есть аналог, где надо было решать паззл - открыть несколько решеток путем подбора нужной последовательности нажатия на рычаги. Вот там, в ванильных скриптах, я вроде как видел рабочую защиту от повторной активации.

Но что это за скрипт, в каком данже это было использовано - я уже и не помню.

Опубликовано
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
Опубликовано
21.04.2020 06:27:27, Azazellz сказал(-а):
Прочитай примечания. Там сложно с этой штукой.

Если бы я хорошо понимал на английском - так нет - учится было лень в своё время.

 

21.04.2020 14:17:24, werr сказал(-а):
нужно это делать через стейты.

Я даже слова такого не знаю)

 

21.04.2020 14:17:24, werr сказал(-а):
По-хорошему, смотришь на время воспроизведения анимации движения рычага и это время и берешь.

Именно от туда и взялось это время - Большое спасибо за скрипт - как проверю отпишусь.

Опубликовано (изменено)

Ребята подскажите как лечить, в храме небесной гавани каждые сутки один персонаж застревает у входа и не уходит с места, это дико раздражает, пробовал перезагружать игру, не помогает, из модов установленны USLEEP и пару ретекстуров, но они же не должны влиять на скрипты, помогите пожалуйста

Изменено пользователем arifon
Опубликовано
23.04.2020 10:32:36, arifon сказал(-а):

Ребята подскажите как лечить, в храме небесной гавани каждые сутки один персонаж застревает у входа и не уходит с места, это дико раздражает, пробовал перезагружать игру, не помогает, из модов установленны USLEEP и пару ретекстуров, но они же не должны влиять на скрипты, помогите пожалуйста

К скриптам это отношения точно не имеет.

Ну и вроде как у них там на входе в храм пост, где часовой стоять должен.

Опубликовано
23.04.2020 10:32:36, arifon сказал(-а):

в храме небесной гавани каждые сутки один персонаж застревает у входа и не уходит с места, это дико раздражает

 
23.04.2020 11:01:58, Azazellz сказал(-а):

К скриптам это отношения точно не имеет.

Это игрок?
Опубликовано
23.04.2020 13:21:46, werr сказал(-а):
Это игрок?

Это НПС.

Но застревание же не со скриптами связано, а с АИ пакетами. Или навмешами.

 

На моей памяти там только при первом визите Дельфина тупила, жаровни зажигать не хотела, из-за чего главный квест не двигался.

Но и это тоже не скрипты, это квесты.

Опубликовано
23.04.2020 13:57:42, Azazellz сказал(-а):

Я прикалываюсь конечно. Но "каждые сутки в мире ТЕС застревает один персонаж" - звучит как начало социальной рекламы.

А серьезно, неофициальный патч хренову тучу всего меняет. Они даже положение камней в мире двигают, потому что в ванили местами встречались зазоры. Чего уж тут про скрипты и пакеты. Самое банальное - это они стак аи пакетов кому-то из НПС поменяли неудачно. Но гадать я не буду.

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...