Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.
возможно ли привязать эффект увеличения роста (на подобие команды "setscale") к силовой броне?
Гм. Первая мысль была делать это не динамически, а статически - то есть просто увеличить размеры самой силовой брони. Не будет конфликтов с другими модами, тоже изменяющими масштаб (навскидку вспоминается мод, который просто вносит небольшое разнообразие в размеры людей, чтобы не выглядели слишком штамповаными), не будет странностей с перемасштабированием, когда объект меняется, а его коллизия - нет (скажем, ты можешь увеличить человечка, чтобы ему озеро стало по колено, но он всё равно через озеро "поплывёт" над водой, потому что помнит, какой у него "на самом деле" размер). Но поскольку броня надевается на тот же самый человеческий скелет, увеличенная в пропорции 1.3 броня будет сидеть... Ну, как если бы там внутри действительно был человек (представь себе, что силовая броня сгибает ногу не там, где колено у человека внутри, а где колено у брони! движок сломать ногу человеку не позволит, и выглядеть это будет странно - скорее всего, ногу скрутит в крендель).
Получается, что придётся наплевать на побочные эффекты перемасштабирования и именно его и устроить. В точности как ты предположил - дать броне новый эффект, скрипт которого будет по старту эффекта выставлить буквально SetScale 1.3, а по финишу SetScale 1.0...
Здравствуйте. Как можно сделать так, чтобы при определенных действий, в определенном месте появлялся объект. Например: отправил гулей в космос, на тумбочке в Новаке появилась маленькая ракета. Это из области скриптов или как-то еще можно этого добиться?
Как можно сделать так, чтобы при определенных действий, в определенном месте появлялся объект. Например: отправил гулей в космос, на тумбочке в Новаке появилась маленькая ракета. Это из области скриптов или как-то еще можно этого добиться?
Например, можно нужный объект в нужное место положить сразу, поставить этому его экземпляру (reference) флажок Initially Disabled, и в какой-то момент в каком-то скрипте выдать про него функцию Enable. Если и так уже какие-то Enable/Disable происходят, можно привязать этот экземпляр к уже пропадающему/появляющемуся при помощи свойства экземпляра Enable Parent (возможно, с инверсией). Можно объекты не исчезать/появлять, а перетаскивать их с места на место - например, лежала ракета на полу в недоступном складе, а ты её рраз и MoveTo на тумбочку. Наконец, можно просто динамически сотворить объект при помощи PlaceAtMe...
Например, можно нужный объект в нужное место положить сразу, поставить этому его экземпляру (reference) флажок Initially Disabled, и в какой-то момент в каком-то скрипте выдать про него функцию Enable. Если и так уже какие-то Enable/Disable происходят, можно привязать этот экземпляр к уже пропадающему/появляющемуся при помощи свойства экземпляра Enable Parent (возможно, с инверсией). Можно объекты не исчезать/появлять, а перетаскивать их с места на место - например, лежала ракета на полу в недоступном складе, а ты её рраз и MoveTo на тумбочку. Наконец, можно просто динамически сотворить объект при помощи PlaceAtMe...
А можно подробнее пожалуйста. Я не очень силен в этих вещах. Если в кратце, то хочу сделать мод, который бы добавлял разные маленькие трофеи в номер мотеля в Новаке, после выполнения квестов. Редактором владею на уровне изменения параметров оружия и создания интерьеров. Пытался сделать на примере покупки верстака, через терминал в люксе Лаки 38, но нужного скрипта не нашел. Да и не совсем понял куда в квесте его вставлять, даже если нашел бы. Если не сложно, то какой-нибудь простой пример, было бы очень здорово.
Изменение репутации для пользователя STELS_BOY
STELS_BOYOffline
Сообщение №1595
написано: 24 июня 2017, 20:07
| Отредактировано: STELS_BOY - 24 июня 2017, 20:07
sabardfix, Создаешь триггер в определенном месте и вешаешь на него скрипт такой или в результируещем скрипте в квесте пишешь - 456.enable ;(Вместо 456 пишется REF имя обьекта):
scn 123 ;(вместо 123 название скрипта) short doOnce begin onTriggerEnter player ;(Если игрок зайдет в триггер) if doOnce == 0 456.enable ;(Вместо 456 пишется REF имя обьекта) set doOnce to 1 endif end
Здравствуйте. Я уже обращался сюда с просьбой о помощи, но к сожалению так и не смог разобраться. Хочу сделать так, чтобы после выполнения квеста, в определенном месте, появлялся определенный предмет. Я понял что в игре это реализовано, так, что нужный предмет изначально находится на своем месте, но с пометкой "изначально отключен". Скрипт же его появляет. Может есть здесь добряк скриптовик, который бы смог объяснить как это сделать самому.
Изменение репутации для пользователя Shtuka
Shtuka
Сообщение №1597
написано: 29 июля 2017, 15:38
| Отредактировано: shtuka - 29 июля 2017, 15:42
sabardfix, привет, чтобы правильнее ответить нужно знать что у тебя за квест, есть ли например диалог, после котрого нужно сделать появление? Это нужно знать, потому как результирующий скрипт(команду) можно по разному исполнить, ну вот вписать в поле диалога, а может в поле стадий...
shtuka, любой квест. К примеру запустил гулей в космос, на полке в номере Новака, появилась сувенирная ракета. И так дальше, со всеми квестами. Мне важно понять сам принцип, ведь с помощью этого, можно не только сувениры на полки ставить, а скажем, изменять сами поселения. Чем больше выполнил квестов, тем больше изменений в мире произошло. Хотя бы косметических.
Изменение репутации для пользователя tundruck73
tundruck73Offline
Сообщение №1599
написано: 29 июля 2017, 15:56
| Отредактировано: tundruck73 - 29 июля 2017, 15:57
Ref id вы самостоятельно должны дать копии своего предмета, помещенной в игровой мир. То есть кладете предмет на нужное место, открываете двойным кликом окно Reference и в верхней строке что-нибудь пишете (на картинке редактор для Fallout4, но разницы в данном случае нет никакой): Ref Id не должен начинаться с нуля и вообще с цифр, иначе могут возникнуть проблемы со скриптом.
P.S. Не забывайте отметить галкой чекбокс initially disabled
sabardfix, походу вы только начинаете модить, может дать учебников по Гекку? Есть у меня собственная подборка, по крайней мере самые популярные там есть.
Добавлено (29 Июля 2017, 19:18) ---------------------------------------------
a1
tundruck73, я тоже использую а1, реально очень удобно, удобней чем аааа или zzz
tundruck73, а скрипт писать в "результирующий скрипт"? Т.е. ту строку, которую вы написали, скопировать в окно результирующего скрипта, но вставить id квеста и предмета? shtuka, я, как бы это сказать, гуманитарий, так что раздел со скриптами, как и программирование в целом, для меня на столько темный лес, что ух. Учебники не помешают в любом случае.
sabardfix, если вы хотите воспользоваться результирующим скриптом, то первая строчка не нужна. Просто напишите ПредметREF.enable в окне Result script финальной стадии вашего квеста или в последней фразе диалога, который в нем звучит. Проверка нужна лишь в том случае, если мы пишем "большой" скрипт для предмета или для квеста.
shtuka, а1 - хорошее сочетание, удобное. Мне нравится
Мосье, же не манж па сис жур... Умер 23.04.2019
Изменение репутации для пользователя Shtuka
Shtuka
Сообщение №1606
написано: 29 июля 2017, 16:35
| Отредактировано: shtuka - 29 июля 2017, 16:36
sabardfix, забыл спросить. Вы хотите, чтобы предмет появлялся после выполнения сделанного вами квеста? Или речь идет о каком-то квесте из оригинальной игры? Если квест ванильный, то я бы не стал его трогать во избежание сюрпризов, проще еще один сделать, технический.
shtuka, спасибо tundruck73, ну да, выполнил и предмет появился. Попробовал, ничего не произошло. Для примера я поместил бочку в дом дока Митчела, справа от пистолета пулемета. Поставил галочку "изначально отсутствует", ref id написал barrel. Затем в самой последней стадии самого первого квеста "Удар по голове" добавил строку: barrelREF.enable начал новую игру, выполнил квест и ничего не произошло. Где может быть ошибка?
shtuka, tundruck73, хаха! Получилось!=) Правда название квеста теперь на английском. Такое же, кстати, происходит и после редактирование оружия или брони. Как оставить русский язык?
Изменение репутации для пользователя tundruck73
tundruck73Offline
Сообщение №1611
написано: 30 июля 2017, 02:00
| Отредактировано: tundruck73 - 30 июля 2017, 07:16
Использовать русифицированный FalloutNV.esm. Cлучайно у меня он завалялся на яндекс-диске - тыц.
Можно, конечно, обратно перевести название квеста (или любого другого изменяемого объекта) на русский в вашем моде, но в данном случае повторю, что трогать ванильный квест - занятие рискованное, лучше сделать новый, предназначенный только для активации вашего предмета. Идете в раздел "квесты", тыкаете в него правой кнопкой мыши, выбираете вариант "New" и создаете новый квест с новым ID, допустим, a1myQuest. Отмечаете чекбокс Start game enable, ставите какой-нибудь приоритет, например 10: Сделав все это, нажимаете ОК, пока вам этот квест не нужен, сейчас надо писать скрипт. Жмете на кнопку с карандашом на верхней панели, открывается окно Script Edit. Нажимаете в нем на кнопку Script, выбираете вариант New: После этого в окне Script type выбираете вариант Quest: Сам скрипт будет выглядеть примерно так:
scn a1myQuestScript
begin Gamemode if GetQuestCompleted VCG01; здесь ID квеста "Удар по голове" ПредметRef.enable stopquest a1myQuest; эта команда останавливает наш квест после того, как он выполнил свою функцию и стал не нужен endif end
Сохраняете этот новый скрипт, просто закрыв его, а потом возвращаетесь к своему квесту, открываете его и в окне Script выбираете только что написанный скрипт, после чего нажимаете ОК. Все, дело сделано.
Кстати, проверку GetQuestCompleted можно поменять на GetStage. В этом случае нужный предмет будет появляться при наступлении определенной стадии какого-либо квеста, а не при его завершении. http://geck.bethsoft.com/index.php?title=GetStage
Доброго времени суток! Ребят, кто шарит в скриптах? Скажите как сделать чтобы свет вращался,ну например как полицейские мигалки? Я видел такое в моде RE2 для Фоллаут. В гекк,в разлеле свет,есть klaxon light,-это оранжевая сигнальная лампа,и когда например открываешь дверь,эта лампа начинает вращаться вместе с оранжевым светом.
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №1617
написано: 26 декабря 2017, 10:41
| Отредактировано: КсюXa - 26 декабря 2017, 13:25
есть klaxon light,-это оранжевая сигнальная лампа,и когда например открываешь дверь,эта лампа начинает вращаться вместе с оранжевым светом.
Вращение света клаксона заложено в саму 3D-модель этой лампы, ну то есть - в ней(в модели) есть встроенные анимации свечения и вращения. По умолчанию эти анимации не проигрывается, поэтому к этой лампочке прикручен скрипт, заставляющий в нужный момент проигрывать нужную анимацию (команда playgroup в скрипте). А нужный момент для этого клаксона - это как раз открывание двери. Клаксон связан с дверью реф-связью и дверь является "включателем" для клаксона. Скрипт для клаксона называется KlaxonLightScript. Его можно взять за основу, чуть подправить и приспособить под свои нужды. Как править - тут нужны уточнения. В том плане, что нужно знать, как задумано это вращение в игре: что это будет за "мигалка", где будет стоять, когда должна включаться и кто её должен включать. P.S. Названия встроенных анимаций, если они есть в моделях, можно посмотреть в Превью. Это когда в окне объектов выделяешь выбранный объект и по клику ПКМ в контексте выбираешь "Просмотр". Откроется окно и в низу окна будет отдельное поле со списком встроенных в модель анимаций. Можно выбрать любую и по кнопке пуск, посмотреть, как она проигрывается.
КсюXa, Ксюша это конечно хорошо все, буду пытаться редачить скрипт. Ты спросила смотря какие нужды,вот отвечаю:-В моде который я делаю будет несколько машин полиции,задача такая,вот ты заходишь на эту локацию а там стоят машины полиции,двери открыты,а мигалки сверкают. Смысл,сделать скрипт на постоянную работу анимации. Сам клаксон не нужен,нужно лишь накладной источник света заставить сверкать должным образом. Есть какие нибудь идеи по этому поводу? Просто этот скрипт мне уже как 1,5-2 года покоя не даёт. Отпишись пожалуйста. Я не прощаюсь)
Изменение репутации для пользователя КсюXa
КсюXaOffline
Сообщение №1619
написано: 27 декабря 2017, 03:53
| Отредактировано: КсюXa - 27 декабря 2017, 03:54
georgy11, ну вот смотри - в ГЕКК в категории активаторов есть объект KlaxonLight. Это лампа-мигалка.
А в категории Light (источники света) есть объект KlaxonLightGlow. Это луч света от лампы мигалки
На локации они составляют пару: лампа-мигалка светится и внутри её вращается лампа. А поверх лампы светится и вращается внешний луч.
Оба этих объекта используют один и тот же скрипт KlaxonLightScript. Для твоих целей достаточно такого варианта: сделать дубликаты активатора и свечения (открыть, поменять ID и сохранить, как новые объекты). Затем в категории скриптов создать новый простенький скрипт, в котором прописать команду на постоянное проигрывание анимации свечения\вращения и назначить этот скрипт своему новому активатору и новому источнику света.
scn {Имя скрипта} - без скобок и английскими буквами
begin OnLoad playgroup left 0 end
begin gamemode if isAnimPlaying == 0 playgroup left 0 endif end
Затем размещаешь лампу-активатор в локации, "вешаешь" на неё колечком луч-свечение, как на третьей картинке и готово. В игре эта мигалка-сирена всегда будет светиться и свет вращаться. Кстати, у копии луча света (которую разместишь в локации) на вкладке Extra можно увеличить радиус освещения. По-умолчанию там стоит 256.
КсюXa, Ксюш, спасибо тебе огромное что разъяснила что к чему. Когда все сделаю,то мод будет здесь на сайте,сможешь посмотреть. В список людей которым я благодарен за любую оказанную помощь при создании мода,ты уже попала. Дальше я сам. Спасибо ещё раз, и с наступающим Новым годом тебя!
Добавлено (20 Марта 2018, 04:48) --------------------------------------------- Ксюх,Привет,вынужден снова к тебе обратиться. Дело вот в чем: Есть скрипты для простейшего квеста по поиску документа\записки? Выглядит это так: Приходим на локацию,читаем там найденную записку,после прочтения появляется название квеста "Невидимый враг", и добавляется задание:" Найдите все документы о вирусе"(всего их 20) После нахождения всех квест завершается. Ну собственно и все. Сможешь чем нибудь помочь?