Модератор форума: КсюXa, ApeX  
Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)

Скрипты
a3apbi4  Offline  Сообщение №1 написано: 7 декабря 2010, 18:01



11
Скрипты - неотъемлемая часть GECK. При написании возникает очень много казусов. Данная тема должна помочь не наступать на "грабли" новичкам и делиться опытом с другими более продвинутых мододелов.




ITU  Offline  Сообщение №1471 написано: 29 июня 2015, 17:06 | Отредактировано: ITU - 29 июня 2015, 17:07



995
BsX, сделать обычное скриптовое меню



MyMarkerStageA это XMarkerHeading на каждом этаже
И еще можно вставить после телепорта команду autosave, для автосохранений

Или вариант наделать куча дверей и вызывать их MyDoor.Activate 1

BsX  Offline  Сообщение №1472 написано: 6 июля 2015, 11:39 | Отредактировано: BsX - 6 июля 2015, 11:40


Полковник с парада


33
Как сделать, чтобы при нажатие на кнопку дверь блокировалась и ее нельзя было бы открыть с руки?

Добавлено (06 Июля 2015, 14:39)
---------------------------------------------
ITU, вот что пишет.

Я тебя проинтегрировал, я тебя и продифференцирую...
ITU  Offline  Сообщение №1473 написано: 6 июля 2015, 13:47



995
Цитата BsX

вот что пишет


вы в конце end не забыли?
в сприптах есть открывающие функцию begin
и закрывающие end
с условиями if так же, закрывающие endif

можно сократить условие if в данном скрипте, я первое попавшие меню скопировал
if ( Button == 0 ) && ( init == 1 )
и
elseif ( Button == 2 ) && ( init == 1 )
тогда уберется один endif

BsX  Offline  Сообщение №1474 написано: 6 июля 2015, 13:49


Полковник с парада


33
Как сделать сортировку предметов по полочкам, как, например, в моде Underwater Home?

Я тебя проинтегрировал, я тебя и продифференцирую...
ITU  Offline  Сообщение №1475 написано: 6 июля 2015, 13:55 | Отредактировано: ITU - 6 июля 2015, 13:55



995
Цитата BsX

Как сделать сортировку предметов по полочкам, как, например, в моде Underwater Home?


Сложно и муторно)
Лучше самому глянуть от туда скрипты

Создать активаторы с переделанной моделью предмета, с удалением веса и возможности двигаться
Создать скрипт раскладывания на эти полки, собственно можно глянуть и в моем домике, и в Underwater Home (примерное содержание: если есть предмет в контейнере, то enable наши активаторы-предметы)
Создать скрипт подбирания предметов (почти просто активирование и добавления предмета в инвентарь и disable, только для сокращения количества скриптов, все помещено в один, с словиям, что если это этот предмет, то получить нужный предмет)
Расставить эти предметы в гекке, сделать activation ref link по порядку между всеми предметами

BsX  Offline  Сообщение №1476 написано: 6 июля 2015, 14:12


Полковник с парада


33
ITU, ясно, гляну, попробую. Спасибо, друг, очень помог.

Добавлено (06 Июля 2015, 17:12)
---------------------------------------------
ITU, лифт не хочет перемещать на другой уровень, только на тот, на котором я нахожусь. Что не так?


Я тебя проинтегрировал, я тебя и продифференцирую...
JupiterJour  Offline  Сообщение №1477 написано: 6 июля 2015, 16:03 | Отредактировано: Joopeeter - 6 июля 2015, 16:05


_


Цитата BsX

Как сделать сортировку предметов по полочкам


Буквально в двух шагах идёт похожее обсуждение (отсюда и ниже). Возможно, пригодится.
P.S. Это не считая десятков, если не сотен, похожих обсуждений в древних и не очень древних глубинах форума. :)

ITU  Offline  Сообщение №1478 написано: 8 июля 2015, 07:43



995
BsX

вы как-то не полный код скопировали?
ну сделайте так...

Код
scn Vault23ElevatorScript   

  short init   
  short Button   

  begin OnActivate   

  if IsActionRef player == 1   
  ShowMessage Vault23ElevatorMessage  
  set init to 1   
  endif   

  end   

  begin gamemode   

  set Button to GetButtonPressed   

  if ( init == 1 )  &&  ( Button == 0 )  
  Player.moveto ElevatorMarkerA   
  Set init to 0   

  elseif ( init == 1 )  && ( Button == 1 ) ;  
  Player.moveto ElevatorMarkerB   
  Set init to 0   

  else   
  Set init to 0   
  endif

end


в Vault23ElevatorMessage
добавьте еще условия GetInCell Ид_Вашего_этажа != 1 , для каждого этажа
чтоб не было в меню текущего этажа

Ipatow  Offline  Сообщение №1479 написано: 8 июля 2015, 17:12 | Отредактировано: Ipatow - 8 июля 2015, 17:17



NPSID.enable у меня не работает: гек выдает ошибку
Референс, к которому по имени обращается скрипт, должен быть Persistent. Поставь флажок - ошибка исчезнет.

Romanko  Offline  Сообщение №1480 написано: 9 июля 2015, 15:47



10
Цитата Ipatow

Референс, к которому по имени обращается скрипт, должен быть Persistent. Поставь флажок - ошибка исчезнет.

Где моя ошибка? Вот скрин глянь http://savepic.su/5830658.png

Ipatow  Offline  Сообщение №1481 написано: 9 июля 2015, 16:29



Цитата Romanko

Где моя ошибка?

Практически в любом языке программирования неразумно давать объектам имена, начинающиеся с цифр. Да, это может и корректно работать, но не реже приводит к проблемам по ходу развития проекта... Так или иначе, GECK не вопринял 0bosgun как имя референса. Если референс с таким именем существует и имеет флаг Persistent - дело явно в имени объекта.

Romanko  Offline  Сообщение №1482 написано: 9 июля 2015, 16:51



10
Цитата Ipatow

Практически в любом языке программирования неразумно давать объектам имена, начинающиеся с цифр. Да, это может и корректно работать, но не реже приводит к проблемам по ходу развития проекта... Так или иначе, GECK не вопринял 0bosgun как имя референса. Если референс с таким именем существует и имеет флаг Persistent - дело явно в имени объекта.

Понял. спасибо
А где можно взять информацию о том, как привязать  маркер к скрипту PlaseAtMe. А то на офф сайте я не нашел

Ipatow  Offline  Сообщение №1483 написано: 9 июля 2015, 17:47



Цитата Romanko

как привязать маркер к скрипту

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


и при каждом нечётном входе ГГ в триггер на маркере появляются два таракана

Spalny_Vagon  Offline  Сообщение №1484 написано: 9 июля 2015, 18:10


Мастер


Цитата Ipatow

Да, это может и корректно работать

В случае с квестами это однозначно работает не корректно. В частности, результ-скрипты диалогов в упор не видят квесты, ID которых начинаюся с цифры. А компилируются без проблем.

======================
Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294
Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Romanko  Offline  Сообщение №1485 написано: 10 июля 2015, 19:04



10
Ipatow, все понял, спасибо.

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

Извини за волну вопросов. Просто сайт, откуда я брал все инструкции, не работает уже 2 дня

Добавлено (10 Июля 2015, 22:04)
---------------------------------------------
Я тут со скриптами мусолюсь. И у меня есть одна проблема: почему скрипт, которыя я щас напишу, работает частично?

Вот этот кусок работает:
scn 0test2

short DoOnce
float timer

begin ontriggerenter player
  if ( Doonce == 0 )
                                set Timer to 2
                                set DoOnce to 1
disablePlayerControls
player.addscriptpackage  MQ08PlayerFallsDownPackage
                                aoutcastZ.enable
                                aoutcastX.enable

endif
endif

А это - нет:
if ( timer <= 0 && Doonce == 1 ) 
       enablePlayerControls
        Player.RemoveScriptPackage MQ08PlayerFallsDownPackage
endif
end

Может кто-то сталкивался?


JupiterJour  Offline  Сообщение №1486 написано: 10 июля 2015, 20:49 | Отредактировано: Joopeeter - 10 июля 2015, 20:55


_


Цитата Romanko

нпс стоял как вкопанный столб


Хоть и не меня спрашивали...
Из художественного описания не совсем понятно, должен ли NPC отстреливаться не сходя с места или должен героически стоять столбом и не обращать внимания на пули.
В первом случае нужен пакет (обычно Guard) с радиусом 0 и галкой Continue during combat.
Во втором случае SetRestrained 1 в нужный момент.
А то ещё можно вообще сделать его как деревянную статую (или бетонную, не знаю какой столб имелся ввиду). И вкопать в нужном месте.

Romanko  Offline  Сообщение №1487 написано: 10 июля 2015, 21:43



10
Joopeeter, 0_o что значит запускать таймер? Я думал, что команда SetTimer to 2 и запускает таймер на 2 секунды, а отсчет идет на убывание.
По скрипту вижу, что GetSecondsPassed запускает этот процесс, да?

Я хочу, чтоб они стояли и стреляли, а не бегали по карте в поисках укрытия. А то вечно разбегаются по всей карте, как тараканы. ( это я о братстве)

И спасибо за ответ.

JupiterJour  Offline  Сообщение №1488 написано: 10 июля 2015, 22:27


_


Краем уха слышал, что в скайримовском Папирусе таймеры вот так просто запускаются, останавливаются и ставятся на паузы. В Фоллауте всё это надо делать вручную.
Функция GetSecondsPassed возвращает время, прошедшее с момента последнего вызова функции GetSecondsPassed том же скрипте. То есть если скрипт крутится 60 раз в секунду, то первый раз GetSecondsPassed будет 0, а потом где-то в районе 1/60 секунды.

Ipatow  Offline  Сообщение №1489 написано: 10 июля 2015, 22:58



Цитата Joopeeter

нужен пакет (обычно Guard) с радиусом 0 и галкой Continue during combat

В бою радиус охраны автоматически увеличивается на какую-то фиксированную величину (четыре ярда?), то есть и в позе Guard он всё равно не совсем как прибитый к полу стоит - особенно против рукопашного противника.

Romanko  Offline  Сообщение №1490 написано: 11 июля 2015, 05:04



10
Ipatow,  а как создать комбат стайл?

ITU  Offline  Сообщение №1491 написано: 11 июля 2015, 05:15 | Отредактировано: ITU - 11 июля 2015, 05:18



995
Romanko, есть еще команда SetActorsAI, которая выключает/выключает AI(поведения)  НПЦ, но с ней есть один глюк, выключать надо после нескольких секунд после появления (нахождения) рядом ГГ, иначе возникают некоторые глюки, движок игры не может поставить НПЦ в правильную позу.
Да и эта команда отключает любое поведение совсем, т.е. НПЦ будет стоять не просто как столб, а словно не живые, используется для маникенов

Ipatow  Offline  Сообщение №1492 написано: 11 июля 2015, 09:30



Цитата Romanko

как создать комбат стайл?

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

Разумеется, новый объект практически любого типа создаётся правым кликом мышкой на списке таких объектов в дереве объектов и выборе варианта "New"; однако в случаях, подобных этому, когда у объекта немеряная куча параметров, большинство которых ты не понимаешь (а некоторые параметры стилей не понимает вообще никто), будет разумно сделать копию существующего объекта и подправить какие-то мелочи, ради которых тебе новый объект и понадобился. Меняешь имя (EditorID) подходящего стиля на то, которое хочешь дать своему стилю, и по выходу из редактирования отвечаешь "да, я хочу создать новый объект".

О назначении боевого стиля персонажу. Каждый персонаж имеет "врождённый" стиль, который прописан на закладке параметров персонажа Traits. Кроме этого, если активному пакету поведения назначен определённый стиль, то на время действия пакета именно этот стиль будет действовать вместо "врождённого". И, наконец, чтобы хоть как-то притянуть разговор за уши к теме - имеется скриптовая функция SetCombatStyle, которая переназначает "врождённый" стиль персонажа. Эта функция меняет стиль безвозвратно, заданный стиль по-прежнему уступает стилю пакета, если пакет имеет стиль, и вдобавок вызов этой функции запускает процесс переоценки экипировки NPC, печально знаменитый многократным наложением объектных эффектов - с учётом всего этого всё-таки нельзя не признать, что порой эта функция незаменима.

JupiterJour  Offline  Сообщение №1493 написано: 11 июля 2015, 11:44 | Отредактировано: Joopeeter - 11 июля 2015, 11:45


_



Menipul  Offline  Сообщение №1494 написано: 12 июля 2015, 19:36



17
Всем привет! как и многим мне захотелось написать скрипт на переключение одиночного выстрела на автоматический, но проблема в том что я с криптами полный ноль хотя тут есть некоторые пояснения по этому поводу.Но сколько я не пытаюсь это понять только совсем запутался, вот в чем моя просьба к знающим написать мне этот скрипт и немного пояснить где я должен поставить только ID своего оружие .Заранее  спасибо .

johnnyclemens  Offline  Сообщение №1495 написано: 3 августа 2015, 11:09 | Отредактировано: johnnyclemens - 3 августа 2015, 11:11



3
2 вопроса.

1. простой.
1.1. Есть ли сисок скриптов для команды AddScriptPackage?
1.2. в какой файле прописаны эти паки и какой прогой они открываются?

2. сложный.
Исходные данные. Есть помещение (в принципи любое), в котором находится ГГ. Есть НПС (не компаньоны), призванные консольной окмандой.
Задача. Нужен скрипт (через диалог или банально - через команду AddScriptPackage) который заставит этих НПС находится в данном помещении. Ходить, лежать, сидеть и т.д., но не убегать, как сейчас, к месту базовой дислокации.

Есть у кого нибудь мысли?

Спасибо.

КсюXa  Offline  Сообщение №1496 написано: 3 августа 2015, 11:51


Гид по Мастерской


Цитата johnnyclemens

в какой файле прописаны эти паки и какой прогой они открываются?


Паки - то бишь пакеты поведения, прописаны в мастер файле игры falloutNV.esm а также в файлах-плагинах любых модов, в которых есть созданные авторами мода эти самые пакеты. Открываются в редакторе ГЕКК .
Подробно о пакетах поведения читаем ЗДЕСЬ
или еще подробней, с "разжевыванием" всех тонкостей - мануалы по моддингу на Тиаруме и особенно руководство по созданию полноценного компаньона..

Ой, всё...
johnnyclemens  Offline  Сообщение №1497 написано: 4 августа 2015, 10:49



3
Спасибо за разъяснения.
Я почему то посчитал, что AddScriptPackage это консольная команда на подобие resurrect или addчего-нибудь. Т.е. выбираешь объект, вбиваешь AddScriptPackage ХХХХ, где ХХХХ - тот самый пакет поведения, готовый по умолчанию. Не прав?

Судя по всему, в том что увидел по ссылке как раз есть и перечень возможных действий. Спасибо!

EngineeringGuy  Offline  Сообщение №1498 написано: 5 августа 2015, 15:00



37
Возможно_ли переписать данный скрипт таким образом,
что_бы контейнер с лутом не опустошался игрой, а сохранял всё в него вложенное


Ipatow  Offline  Сообщение №1499 написано: 5 августа 2015, 18:54



Цитата EngineeringGuy

Возможно_ли переписать данный скрипт таким образом,
что_бы контейнер с лутом не опустошался игрой, а сохранял всё в него вложенное

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

EngineeringGuy  Offline  Сообщение №1500 написано: 6 августа 2015, 00:28



37
Ipatow, ну, а если сделать как в этом моде: выкинул - активировал - мессаг с опциями: поднять, открыть, оставить

Форум » Fallout: New Vegas » Мастерская » Скрипты (Вопросы и ответы)
Поиск:





Ответ на жалобу смотрите в разделе жалоб