Странные дела, сейчас попробовал тоже без переменной - работает, хотя точно помню, что когда придумывал, как бы мне обездвижить свой "охотничий трофей", скрипт без переменной не компилировался, да и ГЕКК-вики пишет, что SetActorsAI вызывается на reference. На убиваемость чучела не испытывал, каюсь - упустил этот момент, спасибо, что поправили.
По поводу OnLoad и GameMode с DoOnce. Опять прошу поправить, если ошибаюсь, но рационально ли использовать здесь GameMode? Ведь я так понимаю, этот блок сработает сразу в начале игры или при загрузке сейва, а потом будет то и дело проверять значение DoOnce, но делать ничего не будет, а блок OnLoad будет срабатывать один раз при загрузке ячейки и потом только при следующей загрузке. Актёр без пакетов никуда не удерёт, ресурсов он жрать не будет, если он не persistent reference (так ведь?), какая тогда необходимость отключать его немедленно? Или я уже крохоборничаю? Это из-за не самого сильного компа.
поскольку скрипт висить именно на том самом референсе, на котором будет вызываться эта функция, присваивать значение ref-переменной и делать persistent не нужно, это то же самое, что масло маслянное
Так я и не делал его persistent. И вообще стараюсь персистентами не злоупотреблять.
Добавлено (13.03.2012, 02:16) --------------------------------------------- Хм... скрипт с SetActorsAI без указания ссылки скомпилировался и не будучи назначенным ни одному объекту. Что же он, зараза, в прошлый раз мне мозги компостировал?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №33
| Тема: Помощь по моддингу
написано: 17 марта 2012, 20:22
| Отредактировано: Joopeeter - 18 марта 2012, 06:59
Добрый вечер. Знает ли кто-нибудь способ как сделать из объекта World Objects -> Light (т.е. "лампочки") невидимый, но светящийся объект World Objects -> Moveble Static? Зачем мне это надо. Пытаюсь двигать источник света, но двигать с помощью функций движения (всяких там SetPos и MoveTo) удаётся пока только подвижную статику (кажется, где-то здесь об этом писали, но не могу сейчас найти то сообщение). Если создать объект Moveble Static с моделью от лампочки (называется "научи дурака богу молиться..."), то он выходит без свечения, тёмным, да ещё и видимым к тому же. Можно ли придать ему эффект прозрачности и свечения, используя только ресурсы игры, без новых текстур "или что у них есть ещё там"? Emittence не помогает. Про вариант с десятком по очереди включаемых источников я тоже догадался, но он получается несколько громоздким, если требуется несколько движущихся световых пятен недалеко друг от друга.
Добавлено (18.03.2012, 00:22) --------------------------------------------- В игре есть как минимум один подвижный источник света - Пип-бой, хотя лампочка по имени PipboyLight640 ничем таким не выделяется. Попробую копнуть в ту сторону.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №34
| Тема: Помощь по моддингу
написано: 22 марта 2012, 10:47
| Отредактировано: Joopeeter - 22 марта 2012, 10:49
Со свечой всё просто (в смысле - с её светом). Пип-бой оказался перком, в эффекте которого указано, какой лампочкой он будет светить и величина. Ставим, например, Barrel02Fire, и величину 10 - she lit up a candle, ставим какой-нибудь там KickerWarm и величину 100 - the woman's flames are reaching higher (можно ещё наложить эффект горения на всех мужиков вокруг). О! Придумал! Берём актёра, делаем его ма-а-а-аленьким (SetScale 0), но очень-очень ярким, этакая букашка-светлячок. Актёры нормально двигаются через SetPos, а чтоб не отсвечивал на компасе, светил сверху и не падал постоянно на пол - делаем из него чучело уже известным способом. Теперь можно и про ракету подумать. Варианты: 1.Тупо заскриптовать движение светлячка по параболе в направлении взгляда ГГ при условии использования ракетницы. Стрельнули - из воздуха материализовался актёр с фонариком и усвистел в небеса. Минус - полёт всегда по одной и той же траектории. 2.Зарядить его в "ракетку". Самого засунуть туда скорее всего не получится, так что придётся опять материализовать его и привязывать к координатам какого-нибудь спецснаряда, чтоб летел рядом и светился. 3.В любом случае кроме ворон в небе освещать нечего, так что придётся запускать низенько над землёй второго по проекции траектории первого на горизонтальную плоскость.
Перечитал. Ну и бред.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №35
| Тема: Помощь по моддингу
написано: 22 марта 2012, 11:16
| Отредактировано: Joopeeter - 22 марта 2012, 13:47
Актёра? А он это переживёт? В смысле останется ли он актёром, которому можно дать перк? Всё описанное придумалось только что, ещё ничего не проверял, а как прожектиль из человека сделать, чтобы он мог сказать "I'm a rocket ship on my way to Mars"я даже и не знаю.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №36
| Тема: Помощь по моддингу
написано: 22 марта 2012, 15:33
| Отредактировано: Joopeeter - 22 марта 2012, 15:44
Точно, совсем забыл, что у прожектилей есть физика. Но светиться они что-то не желают, хоть отмечай им Light, хоть нет, так что светлячка к прожектилю приделать всё же придётся. И тут возникает вопрос как поймать ядро при вылете из пушки и посадить на него Мюнхаузена? Постоянно мониторить окрестности на предмет летающих ядер? Ведь заранее, до выстрела, прожектиль никак не обозначишь. Или Вы имеете ввиду совершенно новый снаряд, с привлечением 3д максов, нифскопов или где там их делают? Старый он будет или новый, но свет, не освещающий никакую поверхность, не очень-то заметен, так что надо будет ещё запустить облако светящейся пыли (или изначально приделать его к новому).
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №37
| Тема: Помощь по моддингу
написано: 22 марта 2012, 17:49
| Отредактировано: Joopeeter - 22 марта 2012, 17:53
В игре полно объектов, освещающих только самих себя и хорошо заметных (LightBeam)
Правильно, и светящаяся пыль - один из них. Я имел ввиду, что лампочка в полёте сможет освещать только прожектиль и больше ничего, следовательно видна не будет, и нужен объект, поддерживающий Emittence, вокруг ракеты. Если делать с нуля, то можно, наверное, смастерить какой-нибудь шарообразный LightBeam. Кстати, верхняя лампочка получается вообще не нужна.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №38
| Тема: Помощь по моддингу
написано: 23 марта 2012, 07:07
| Отредактировано: Joopeeter - 23 марта 2012, 07:22
Может быть я и юный (а может быть и нет), но уж точно не тролль. Дальше будет про светлячков, кому неприятно - не читайте.
Galko, теория хорошая, дойдут руки - проверю. У меня тоже есть одна. Если просто подвесить лампу над землёй, то всё, что мы увидим - это пятно света на участке под ней. Видимого источника не будет. То есть в центре взрыва должны появиться два объекта: 1.Микро-Данко, чтобы освещать землю, здания и проч. Причём помещать его лучше даже не в эпицентре, а поближе к земле. В совсем идеальном случае их должно быть несколько с разными радиусами, но это ладно - с одним бы разобраться. 2.Яркая падающая точка - сама ракета. Сейчас посмотрел - FXBasicGlowBillboard вроде подходит, даже уже ореол имеется, но падать самостоятельно он не будет. Ну, тут уже по накатанной - в подвижную статику и плавно приземляем скриптом.
То есть даже из того, что есть, мне кажется, уже можно что-нибудь намудрить. Особенно если получится записать в прожектили какой-нибудь ракетоподобный предмет и придать ему нужную физику. С прожектилем, который делал бы всё сам - и освещл, и сам светился, и падал бы, и плавно затухал, конечно, было бы намного проще, но не знаю можно ли вообще такой сделать хоть в ГЕКК, хоть ещё где.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №39
| Тема: Скрипты
написано: 28 марта 2012, 07:00
| Отредактировано: Joopeeter - 28 марта 2012, 07:15
KAIN48, сделай скрипт квестовым, прикрепи к квесту, сам квест сделай Start Game Enable (на той же вкладке где и скрипт). На всякий случай сделай квесту приоритет 100, а чтобы он не жрал ресурсы после того как сделает дело - между "set val to 1" и "endif" вставь StopQuest [название квеста].
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №40
| Тема: Помощь по моддингу
написано: 28 марта 2012, 07:09
| Отредактировано: Joopeeter - 28 марта 2012, 09:43
я краснею, краснею вдвойне из-за того, что сам затеял эти цитаты, втройне - из-за того, что в детстве зачитал Янссон до дыр. Тем не менее
эксперимент "ракетница" был проведён и получены результаты.
Если кому интересно - тру-постъядерная ракетница, собрана на коленке из подручных запчастей. Выглядит как обрез . Стреляет зелёной фигнёй от плазмы или синими световыми гранатами. Снаряды беспилотные - чёрт его знает, где я недоглядел в прошлый раз, но лампочки движутся также как подвижная статика. Снаряд взрывается, в месте взрыва появляются светящийся шарик и лампочка (спасибо Galko - сам бы я не допетрил) и скриптово "падают". Падают они по приблизительному продолжению траектории прожектиля. Приблизительной - потому что я не знаю, по каким формулам движок считает физику, не по тем, каким в школе учат - это точно. Поэтому формулы свои - жидковакуумные. Более-менее нормально работают для не слишком крутых и пологих траекторий. В общем получилось не совсем плохо, хотя можно было бы подобрать и точнее, но тут
возникла такая проблема. Как отследить угол игрока к горизонту в момент выстрела? Т.е. как отследить угол ясно, как поймать момент? Подходящего блока как в Вегасе нет, GetIsUsedItem в скрипте не фурычит (пишут будто бы в перке работает - врут), GetAnimAction тоже, похоже, не для скриптов функция, по крайней мере, в скриптах оригинальной игры не используется. Кто-нибкдь знает как это можно сделать?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №41
| Тема: Скрипты
написано: 28 марта 2012, 08:08
Oder, а если какой-нибудь другой плагин делает так же они разве не перебьют друг друга? Просто 100% бесконфликтный способ добавить что-то торговцу - именно скриптовый. С рюкзаками не проверял, но там разве не так?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №42
| Тема: Скрипты
написано: 28 марта 2012, 10:27
не проще-ли сливать подобные плагины в один и доливать по мере поступления, чем писать квесты со скриптами?
Двояко. Плагинописателю - проще, плагиноподключателю - сложнее. Он (подключатель) должен быть ещё и в курсе какие плагины используют этот способ (не сливать же всё подряд).
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №43
| Тема: Помощь по моддингу
написано: 29 марта 2012, 11:13
| Отредактировано: Joopeeter - 29 марта 2012, 11:18
Выбрасывайте ... особой разницы в производительности не заметил.
Не знаю как там в "модовских" экстерьерах (до таких вершин оптимизации я ещё не дошёл), а в оригинальных (Фоллаут 3, кто-то собирался переносить?) разница всё же есть. Возможно, она заметна только на слабых машинах, поэтому, как владелец именно такой, всё-таки напишу. Любая локация DCworld с удалёнными более чем на 2/3 мультибаундами у меня вылетала прямо при входе (не в ГЕКК - в игре). С удалёнными на 2/3 мультибаундами и полностью удалёнными заслоняющими панелями средний процент загрузки графического процессора поднялся с 62-65 до 80-88 в разных локациях. У центрального вроде тоже поднялся немного , но это не точно. Тормозов, правда, не возникло. Железо - ноут IntelCoreDuo 2,2ГГц, ATI radeon HD3650. Это несколько выше минимальных требований, так что у кого-то может и затормозиться посильнее и вылетать повеселее. Учитывая вышесказанное, возможно, не стоит так рубить с плеча - нафиг все мультибаунды до единого и оклюзии туда же. Всё же разработчики оптимизировали не для развлечения и даже не для того чтобы у Galko потом не грузилось, а чтоб всем нормально игралось.
Да, знаю, можно сказать мол у кого железо старое тот пусть идёт в магазин за новым или ещё куда подальше - модмейкер никому ничего не должен. И это будет справедливо. А можно и не сказать. Вот, как-то так. P.S. А в Вегасе, значит, на оптимизацию забили. Ну-ну, понятно теперь откуда такие тормоза.
Лучше работает? Везёт же, а меня вот наоборот. В любом случае, если в Нью-Вегасе используются для оптимизации какие-то другие приёмы, не мультибаунды, то в перенесённых локациях (из Ф3 перенесённых, где этих приёмов не было) оптимизация, скорее всего, будет работать не в полную силу. Впрочем, оглядываться на слабые компы или нет - переносящему видней. Было уточнение, что при некоторых конфигурациях разница есть - я его написал, было пожелание (надеюсь, от лица всех, у кого похожая конфигурация) учитывать это - я его высказал.
Но ведь, по большому счету - я переношу всего лишь объекты, показ которых будет потом обрабатывать уже "безоптимизационный" движок Вегаса. Или ошибаюсь?
Для начала - чуть подробнее зачем мультибаунды вообще нужны.
Как я понял, игре не сложно визуализировать пару-тройку лишних зданий целиком, ей сложно решить какие именно части каких объектов сейчас видны игроку, а какие - нет. В итоге решение жрёт ресурсов больше, чем визуализация всего без разбора. Выше я не случайно писал про DCworld (развалины Вашингтона), там, если помнишь, на небольшом пятачке здания, здания, здания и все заслоняют друг друга - это чёртова уйма геометрии, которую надо всю постоянно обсчитывать - игрок-то вертится и бегает. Для облегчения страданий движка (и усиления - разрабов) и придумали заключать объекты (группы объектов) в простые объёмы в виде параллелепипедов и разделять их простыми прямоугольными заслонками, показался на глаза один пиксел - отображай всё, не мучайся. В Вегасе мест с такой плотной застройкой что-то даже не припомню (может и есть, просто давно уж не играл).
Лирическое отступление.
Вообще, мультибаунды и оптимизация в целом - это такая уйма труда, что тому, кто этим занимался в Фоллаут 3 впору памятник ставить. Чем больше ковыряюсь в игре через ГЕКК, тем твёрже в этом убеждаюсь. Причём модемейкеру этот труд славы не принесёт - хорошая оптимизация та, про которую в игре никто не думает - потому что она работает и всё.
Про "безоптимизационный" движок.
Если он и в самом деле такой (улучшенные алгоритмы расчёта, не требующие дополнительного вмешательства) - всем крупно повезло. Возможно, вмешательство всё же требуется, но какое-то другое, неизвестное, не как в Ф3. В этом случае наоборот - не повезло. Тогда будем считать, что те немногие мультибаунды поставил какой-то консерватор - типа мой дед делал мультибаунды, и отец делал мультибаунды, и я буду делать мультибаунды! Но почему-то вспоминается каким недоделанным был выпущен Вегас, скрее всего просто не успели - проблемных мест мало, не первоочередная задача.
Лирическое отступление 2.
За каким я вообще влез. Заметил, что тут по соседству ты переносишь всю Пустошь "с развалинами", прочитал "выбрасывайте...", вспомнил как однажды ради эксперимента выбросил, перепроверил с цифрами. На самой-то Пустоши только изредка встречаются заслоняющие панели, а вот в развалинах этих баундов с панелями десятки (в каждой локации десятки!) - сейчас выкинешь, потом если вдруг что - восстановить вручную нереально. Возможно, есть способ через FO3Edit (я в нём не силён) заныкать мешающую оптимизацию в отдельный плагин, а в конце при необходимости отныкать обратно или подключать отдельно. P.S. Судя по последнему твоему сообщению в той теме предупреждение ну о-очень сильно запоздало, даже если и было нужно.
Поправка.
Неправильно написал. Если мультибаунд полностью заслонён объекты внутри вовсе игнорируются в смысле графики (сокращаются предварительные расчёты), но если виден хоть краешек - игра считает дальше и отображает видимое - то, что в итоге на экране.
Если переместится к Источникам Гудспрингса, то контейнер уже не открывается, так же как и в любом помещении. Можно как нибудь исправить? Или например сделать переносной контейнер, если такое возможно
Если не открывается из другой локации - надо взять с собой! Скрипт на одёжке:
Code
scn RemoteContainerScript
begin OnEquip
ContainerREF.MoveTo player ContainerREF.SetScale 0 ContainerREF.Activate player
end
где ContainerREF - refID твоего контейнера. Но! Перемещение из ячейки в ячейку - дело долгое, поэтому Activate не выполнится и открытие произойдёт только со второго раза (оделся-разделся-оделся-открылось). Если такая ботва не устраивает, то нужен скрипт на контейнере (Oder, не ругайся - по другому никак не выходит)
Code
scn RemoteContainerScript2
begin OnLoad
Activate player SetScale 0
end
Проверено в Фоллаут 3. Контейнер первоначально надо поставить там, где случайно не сработает блок OnLoad - лучше всего в какой-нибудь Dummy ячейке. И ещё. Если последний раз пользовался контейнером в ячейке, которую потом отключил от игры, то вещички можно и потерять. Либо следи за этим, либо каждый раз возвращай контейнер в надёжное место.
У-у-у там скрипт-экстендер. А для третьего Фоллаута не знаешь аналогов? Хотя бы по названиям - посмотреть как умные опытные люди выкрутились.
Не надо, сам уже нагуглил - их, оказывается сотни.
И все с FOSE, так что заценить не смог. Ёпэрэсэтэ, что в данном случае можно такого сделать экстендером, чего нельзя стандартными средствами? Разве что перекладывать прямиком из подсумка напарнику, минуя собственный карман.
Злостный двойной оффтоп, но раз уж спросили здесь...
Цитата Oder
Ты Фозе не пользуешь, потому что тормозить начинает?
Нет, потому что на моей версии (скажем так, простая с неофициальным патчем) не идёт, а на какой идёт (золотая-презолотая, с самым настоящим патчем 1.7) ту я снёс - висла страшнейшим образом и ГЕКК стал часто вылетать (может и не связано, не до конца не уверен).
Космонавт, значит. Понятно теперь почему эти космонавты были такими злыми, когда я сегодня к ним на корабль залез. Вообще, предмет оказался не совсем уж бесполезным, я даже сам удивился. Пока делал, придумались аж несколько применений (не петросянских, нормальных).
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №52
| Тема: Скрипты
написано: 21 апреля 2012, 00:19
| Отредактировано: Joopeeter - 21 апреля 2012, 00:22
Кроме как перебором через GetEquipped ничего в голову не приходит. Однако, если NPC может использовать много разного оружия, или надо проверить игрока, у которого вообще может быть любое, то это долго и нудно. Расскажи в чём конкретно состоит замысел, может придумается какой-нибудь обходной путь.
А в чём проблема-то? Offset редактируется - меняй на здоровье. Правда, если, как ты пишешь, надо поменять навыки сразу у группы, то проще подкрутить цифры у персонажа-шаблона (или у промежуточного шаблона, если основной нельзя трогать). Также надо заметить, что offset не может быть меньше нуля, а это значит, что уменьшить навык с его помощью не выйдет. Тогда, наверное, надо использовать какой-нибудь дохлый шаблон с нераспределёнными навыками (все по 5). Или просто создать новый класс персонажей с нужными характеристиками и включить auto calc.
Как сделать, чтобы сделанный мною NPC подбегал к ГГ и начинал диалог?
Дать ему два пакета. Чтобы подбегал - типа Travel с конечной целью в виде игрока. Чтобы заговорил - типа Dialogue с, опять же, целью player. Пакеты поставить в зависимость от чего там должно сработать подбегание и начинание диалога (места действия, квестовых, скриптовых переменных, погоды и т.п.). В Fallout 3 хороший пример нужного - Лукас Симмс. К сожалению, не помню, кто в FalloutNV ведёт себя так же, но уверен, что и там есть кого разобрать и посмотреть как он там тикает.
Хотя почему не помню. В самом-самом начале усатый доктор (забыл как его зовут) вроде сам подходит и заговаривает, так вроде?
И при входе во все казино.
И при выходе из казино. Ёмаё, да их там больше, чем обычных персонажей.
В пакете Диалог есть все необходимое - место, где НПС ждет ГГ, дистанция, с которой он начинает движение навстречу и дистанция, на которой он начинает разговор.
Да, точно, Travel лишний. Похоже, привычка тырить готовые решения у разработчиков в этот раз сослужила плохую службу. Пакет Travel у Л.Симмса нужен, по видимому, только для того, чтобы он на ходу сказал:"Будь я проклят, опять новенькие!"
Да, к вопросу "как сделать". Есть ещё скриптовая функция StartConversation TargetActor, TopicID Даже странно, что подумал о ней во вторую очередь Правда насчёт "подбегания" не уверен, скорее всего пойдёт не торопясь.
как ускорить пули, убрать трассеры, уменьшить разброс?
Разброс. В GECK в характеристиках оружия - параметры Spread (разброс) и Min. Spread (минимальный разброс). Как ускорить. В GECK в характеристиках прожектиля, которым выстреливает оружие (Special Effects -> Projectile) - параметр Speed. Убрать трассеры. Не в GECK. Если оружие стреляет пулями, то прожектил представляет собой светящуюся палку с пулей на конце, вот эту модель и надо редактировать. Или делать новую и назначать через GECK.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №58
| Тема: Помощь по моддингу
написано: 23 мая 2012, 07:38
| Отредактировано: Joopeeter - 23 мая 2012, 07:41
Можно как-то отключить ...эм...взрывоопасность машин?
В GECK в окошке редактирования предмета из раздела Moveble Static (транспорт в нём - Vehicles) нажать на Add Destruction Data. Там прописано при каком "здоровье" предмета что должно произойти: загорелось - взорвалось - загорелось сильнее - рвануло - модель поменялась на разрушенную. Снятие галки с Enabled отключает всё это дело разом.
диалоге помимо моих вариантов есть вариант "Мне пора"
Это топик из общих диалоговых квестов. В F3 они называются Generic, в NV скорее всего тоже что-то в этом роде. К ним NPC привязываются через тип голоса (Character -> Voice Type) и через фракции - в диалогах со всеми персонажами с неуникальными голосами присутствуют фразы из этих квестов. Можно дать своему NPC уникальный голос, но(!) тогда пропадут все его фразы, которые он произносит в разных ситуациях вне диалога. Так что, если ты не готов их восстанавливать, то лучше не трогать.
Удалять из этих квестов топики не нужно! Особенно приветствия и прощания - потом ни с одним NPC не заговоришь!