Перейти к содержимому


Фотография
- - - - -

Скрипты в GECK


  • Авторизуйтесь для ответа в теме

#21 Ссылка на это сообщение AxelRoadman

AxelRoadman
  • Скиталец
  • 37 сообщений

Отправлено

Так как темы по скриптингу здесь нет, я решил создать таковую.

Знающие люди, подскажите, существует ли функция, при помощи которой можно узнать, сколько времени player провёл в режиме сна.
Есть функция GetPCSleepHours, но насколько я понял, она возвращает значение, которое игрок выставляет в меню сна. Мне кажется это не очень надёжным.
Мне нужна надёжная функция, которая по окончании сна, возвратила бы количество часов/минут/секунд.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 38

#22 Ссылка на это сообщение VladislavDragon

VladislavDragon
  • Живу в своё удовольствие !
  • 294 сообщений
  •  

Отправлено

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



#23 Ссылка на это сообщение lantainiell

lantainiell
  • Скиталец
  • 51 сообщений

Отправлено

Всем привет! С новым годом! Вопрос по G.E.C.K.. Хочу изменить цвет кожи персонажа из мода(голова негра а тело белого- о таких глюках писали в описании мода). В игре смотрю в консоли ID персонажа, но в редакторе такого ID почему-то нет...Что я делаю не правильно?



#24 Ссылка на это сообщение Karandra

Karandra
  • Знаменитый оратор



  • 3 685 сообщений
  •    

Отправлено

Кто-нибудь знает как поменять текстуру головы с помощью скрипта в GECK для New Vegas? Есть функция SwapTextureOnRef, но она не работает для головы, только для тела. Использую так:

SwapTexture player "FemaleHead" "characters\daughtersofares\Head\1"

pre_1454504183__logo.png Kortex Mod Manager: Discord | GitHub | Web-site

#25 Ссылка на это сообщение Arteia

Arteia
  • Знаменитый оратор

  • 3 701 сообщений
  •    

Отправлено

Здравствуйте! Подскажите, пожалуйста, команду для получения перка. Имено в ГЕККЕ, тему не перепутала))) Собираюсь создать книги, при прочтении которых получаешь ту или иную способность

UPD: Нашла! Извините, в этой вики фиг сориентируешься


Памятные медальки

FM

#26 Ссылка на это сообщение Simonov50

Simonov50
  • Новенький
  • 3 сообщений

Отправлено

Какой параметр в Fallout3 определяет расстояние, на котором можно активировать предмет ?

(Видел в  нете UseRange  - но он сюда не подходит и ничего похожего в gamesetting нет)   



#27 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

Присоединяюсь к Артее. Команда на выдачу перка в ГЭКК-е?



#28 Ссылка на это сообщение Pepel12

Pepel12
  • Скиталец
  • 46 сообщений
  •    

Отправлено

Присоединяюсь к Артее. Команда на выдачу перка в ГЭКК-е?

player.AddPerk MS03DreamCrusherPerk


Сообщение отредактировал Pepel12: 18 мая 2025 - 14:31


#29 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

player.AddPerk MS03DreamCrusherPerk

Уже сам разобрался, но спасибо.

 

Кстати, а что делать с референсами? Как их правильно прописывать в фоллаутском скрипте? Например, конкретную НПС отображать, ТОЛЬКО если ГГ соответственной расы - во всём разобрался давно, кроме, как именно в ГЭКК указать конкретно ее реф.



#30 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

И еще: сделать скриптово, чтобы интеллект определенной расы нельзя было поставить ниже, скажем,7, а силу выше 4 - возможно?



#31 Ссылка на это сообщение Pepel12

Pepel12
  • Скиталец
  • 46 сообщений
  •    

Отправлено

Уже сам разобрался, но спасибо.

 

Кстати, а что делать с референсами? Как их правильно прописывать в фоллаутском скрипте? Например, конкретную НПС отображать, ТОЛЬКО если ГГ соответственной расы - во всём разобрался давно, кроме, как именно в ГЭКК указать конкретно ее реф.

Это проще чем кажется. 

 

Ставишь нпс. На него пару раз кликаешь. В Reference Editor ID прописываешь например Raketa01Ref.

Далее Галочку на Initiall Disable(Изначально отключен) и Persistent Reference если вдруг не стоит ->Ok

Теперь скрипт с условием,  допустим через активатор.

 

ScriptName Boos

 

begin onActivate

 

;Дополнительные условия

 

Raketa01Ref.enable

 

End

 

Добавляешь в мир активатор, желательно новый, вешаешь на него скрипт Boos.

Сохраняешь/проверяешь/добавляешь условия по вкусу. Вроде как-то так было.

 

Что касаемо расы в условиях функция вроде такая:  Если (Игрок или  ref ссылка НПС).GetIsRace (Раса для проверки на совпадение)

 

if player.GetIsRace Ghoul
Raketa01Ref.enable
endif

 

Примерно так, там по ходу разберешься.


Сообщение отредактировал Pepel12: 04 июня 2025 - 23:05


#32 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

Это проще чем кажется. 

 

Ставишь нпс. На него пару раз кликаешь. В Reference Editor ID прописываешь например Raketa01Ref.

Далее Галочку на Initiall Disable(Изначально отключен) и Persistent Reference если вдруг не стоит ->Ok

Теперь скрипт с условием,  допустим через активатор.

 

ScriptName Boos

 

begin onActivate

 

;Дополнительные условия

 

Raketa01Ref.enable

 

End

 

Добавляешь в мир активатор, желательно новый, вешаешь на него скрипт Boos.

Сохраняешь/проверяешь/добавляешь условия по вкусу. Вроде как-то так было.

 

Что касаемо расы в условиях функция вроде такая:  Если (Игрок или  ref ссылка НПС).GetIsRace (Раса для проверки на совпадение)

 

if player.GetIsRace Ghoul
Raketa01Ref.enable
endif

 

Примерно так, там по ходу разберешься.

Буду смотреть.



#33 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

Так, спасибо, Пепел Двенадцатый. А я вот какую штуку еще спрошу:

 

Как сделать мелкий активатор, который не собьешь и не передвинешь при помощи Z?



#34 Ссылка на это сообщение Pepel12

Pepel12
  • Скиталец
  • 46 сообщений
  •    

Отправлено

Так, спасибо, Пепел Двенадцатый. А я вот какую штуку еще спрошу:

 

Как сделать мелкий активатор, который не собьешь и не передвинешь при помощи Z?

В разделе World Objects, там где подраздел Door(Двери) и Static, есть подраздел, первый по счету Activator, делается обычно через него.

 

Вроде как, все модели там статические, без физики падения.

 

Ну а дальше по классике,  выбираешь, что приглянулось в разделе, меняешь Id, Name(Отображение названия в игре), пересохраняешь, дальше открываешь  измененный активатор снимаешь старый скрипт, если был, выбираешь новый.  Выносишь активатор на сцену, пару раз на него щелкаешь,  Панелька 3D Data – параметр Scale отвечает за размер модельки. 

 

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



#35 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

В разделе World Objects, там где подраздел Door(Двери) и Static, есть подраздел, первый по счету Activator, делается обычно через него.

 

Вроде как, все модели там статические, без физики падения.

 

Ну а дальше по классике,  выбираешь, что приглянулось в разделе, меняешь Id, Name(Отображение названия в игре), пересохраняешь, дальше открываешь  измененный активатор снимаешь старый скрипт, если был, выбираешь новый.  Выносишь активатор на сцену, пару раз на него щелкаешь,  Панелька 3D Data – параметр Scale отвечает за размер модельки. 

 

В п

 

В разделе World Objects, там где подраздел Door(Двери) и Static, есть подраздел, первый по счету Activator, делается обычно через него.

 

Вроде как, все модели там статические, без физики падения.

 

Ну а дальше по классике,  выбираешь, что приглянулось в разделе, меняешь Id, Name(Отображение названия в игре), пересохраняешь, дальше открываешь  измененный активатор снимаешь старый скрипт, если был, выбираешь новый.  Выносишь активатор на сцену, пару раз на него щелкаешь,  Панелька 3D Data – параметр Scale отвечает за размер модельки. 

 

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

 

Знаю, но мелкие активаторы (медвежонок, пюпитр) все равно падают.



#36 Ссылка на это сообщение Pepel12

Pepel12
  • Скиталец
  • 46 сообщений
  •    

Отправлено

Знаю, но мелкие активаторы (медвежонок, пюпитр) все равно падают.

Дело в параметрах модели. Данную  проблему можно решить 3 способами:

 

1.Кратко. 3ds Max + Nif plagin, импорт модели, в модификаторе bhkRigidBody в объекте коллизий меняем пункт Convex Shape(Объект с физикой падения) на Strips Shape(Статик) , Выбираем на сцене точку с именем bhkRigidBody(она в виде квадрата в центре оси, имя может быть другое) в параметрах меняем Mass(масса объекта) на 60, экспорт.

 

2.  Через NifSkope, загружаешь модель, ищешь пункт bhkCollisionObject -> bhkRigidBody –Layer  и Layer Copy меняешь на  OL_STATIC – Mass на 60, сохраняешь. Возможно что-то упустил, можешь поковыряться или сравнить с готовой статикой по параметрам.

 

3. Через скрипт FOSE, но это уровень «еб--ся мишки». Так делать не надо.


Сообщение отредактировал Pepel12: 07 июня 2025 - 15:36


#37 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

Спасибо, попробую.



#38 Ссылка на это сообщение SisterlovingAltmer

SisterlovingAltmer
  • Форумный сестролюб
  • 51 сообщений
  •    

Отправлено

Итак, разобрался, в чем была загвоздка... скрипт просто нули не хочет признавать. Заменил их на ааа, всё прошло как по маслу.

 

Но теперь спрошу опять:

 

1. Возможно ли создать новое меню (не рецепт, именно меню) крафта, если да, то как?

 

2. Возможен ли автоподгон черт лица НПС (но НЕ пола!) под черты лица ГГ? Если да, то как этого дообиться? Вроде бы так с батей в третьем Фоллауте было.

 

3. Возможно ли изменение имени НПС, напр. с "Неизвестная девушка" на, скажем "Иоланта" скриптово через диалог, если да, то как?



#39 Ссылка на это сообщение Pepel12

Pepel12
  • Скиталец
  • 46 сообщений
  •    

Отправлено

Итак, разобрался, в чем была загвоздка... скрипт просто нули не хочет признавать. Заменил их на ааа, всё прошло как по маслу.

 

Но теперь спрошу опять:

 

1. Возможно ли создать новое меню (не рецепт, именно меню) крафта, если да, то как?

1. Самый простой по типу крафта Fallout 3 сообщение -меню+скрипт, для обработки  событий этого меню.

 

Object Window ->Miscellaneous ->Message

 

В разделе создаешь новый id например TerasMsg (id используется в скрипте для вызова)  Галочку на Message Box, если не стоит.

 

В Message Text пишешь текст который появится на над кнопками при активаций объекта или события. Например: “Для создания оружия вам понадобится металлолом”.

 

Menu Bullions  создаешь 3 новые кнопки.

 

Item Text название выделенной кнопки. Первой обычно присваивают имя “Отмена” и в скрипте она пустая. Вторая “Собрать пистолет”, третья “Cобрать  автомат”

 

Item Conditions тут создаются условия при которых кнопки будут отображаться, аналогичны условиям диалоговой системы.---Ok

 

Дело за скриптом:

 

ScriptName WeaponCraftS

 

short Button

 

Begin OnActivate

 

ShowMessage TerasMsg

 

End

 

Begin GameMode

 

set Button to GetButtonPressed

 

If button == 0

 

; Отмена

 

elseif button == 1

 

; Собрать пистолет

 

if ( player.GetItemCount SpareParts >= 2 )  ;Если у игрока есть 2 куска металлолома

 

Player.additem Weap10mmPistol 1 ; Добавить 10-мм пистолет

 

player.removeitem SpareParts 2 ;Удалить 2 куска металлолома

 

endif

 

elseif button == 2

 

; Cобрать  автомат

 

if ( player.GetItemCount SpareParts >= 4 )  ;Если у игрока есть 4 куска металолома

 

Player.additem WeapChineseAssaultRifle 1; Добавить Китайский автомат

 

player.removeitem SpareParts 4 ;Удалить 4куска металлолома

 

endif

 

endif

endif

endif

end

 

1.1  В виде терминала, Object Window ->World Objects->Terminal / принцип создания тот же.

 

1.2 Через диалоговую систему. Бегло. Создается новый квест+Npc. В квесте в разделе Topics(Темы) добавляются новые темы, в них диалоги, в диалогах есть поле Condition в нем настраиваются условии. Поле Result Script  вписывается результат диалога, например  результат крафта  Player.additem Weap10mmPistol 1. Дальше ставится какой нить активатор в виде модели верстака , к нему скрипт на активацию диалога с npc. В адоне «Разлом» на вегас, есть пример, торговый ящик вроде.

 

1.3 В Вегасе есть своя система крафта с отдельным  интерфейсом. Честно в ней не ковырялся, но предполагаю, что она работает, как в  Fallout4. Создается или дублируется новый верстак, далее в самих рецептах идет настройка необходимых ресурсов, и там же пункт привязка к конкретному Id верстака.

 

1.4 Непосредственно меню-интерфейс, на подобие выбора перка, торговли, диалога с плавающей камерой, голода, самого MCM, спидометр транспорта. Сам интерфейс пишется(разметка элементов для вывода данных) в  формате XML, подключается через функций из Fose или Nvse, а вот логика уже конкретно зависит от того, что ты хочешь сделать. Где-то хватит стандартных  функций, где-то расширенных. А вот для чего глобального , каких нить механик, например паркура и ползанью по стенам, как в ассасине, потребуется визуал студия с++ и компилятор для dll.


Сообщение отредактировал Pepel12: 20 июня 2025 - 19:25


#40 Ссылка на это сообщение Pepel12

Pepel12
  • Скиталец
  • 46 сообщений
  •    

Отправлено


3. Возможно ли изменение имени НПС, напр. с "Неизвестная девушка" на, скажем "Иоланта" скриптово через диалог, если да, то как?

 

Поменять не получится, только присвоить.

 

Создается npc, id Например:IolantaS.

 

Cоздается Message, id Например: IolantaD.

 

В поле Title присваемое имя Иоланта.

 

Функция IolantaS.SetActorFullName "IolantaD" прописывается в поле Result Script. ->Compile Scripts.

 

Еще как вариант. Если стоит Fose или Nvse, открыть консоль, клик на NPC, команда SetName НовоеИмя.


Сообщение отредактировал Pepel12: 20 июня 2025 - 19:57





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых