Повторяю, это место находится в Wasteland. Выбираешь Wasteland в выпадающем списке окна Cell View и ищешь там внешние окрестности Мегатонны. Большинство наружных ячеек называются просто "Пустоши", но некоторым для удобства поиска дали собственные названия. В частности, как уже дважды было написано, местность перед воротами, где стоит Велд и сидит водяной страдалец, называется MegatonMainGate. Также, как было предложено, можно "выйти" туда из MegatonWorld через дверной маркер. Как вариант если, например, не помнишь про локацию ничего кроме "там стоит помощник Велд", можно найти этого Велда в Object Window, ткнуть в него правой кнопкой, выбрать Use Info и в нижнем окошке (Used in these cells) будут ячейки, в которых стоят его копии (в данном случае одна). Щёлкнуть дважды и в Render Window загрузится эта ячейка.
Тут не нужен скрипт, а нужен Object Effect. В нём стандартный базовый эффект DamageHealth (по крайней мере, в F3 он так называется) с условием на принадлежность к легионерам (тут уж тебе видней как эта принадлежность определяется). Тип объектного эффекта - Оружие, величина (Magnitude) базового эффекта в нём - 10, Range - "при касании".
Блока OnKnockout нет, но осталась функция GetKnockedState. Там, правда, есть нюанс при проверке актёров, сбитых с ног PushActorAway, плюс к нокаутированным относятся ещё парализованные и "утомлённые" до упаду, то есть до нулевого значения характеристики fatigue. Собственно, не ясно даже, что там остаётся на долю knocked down. Так что придётся следить за этим. А вот как её применить, это зависит от конкретной задумки. В простейшем исполнении можно просто отслеживать, на ногах ли актёр, в каждом фрейме:
Code
short Once
Begin GameMode
if GetKnockedState==1 if Once==0 ShowMessage zzMsg set Once to 1 endif else if Once==1 set Once to 0 endif endif
End
Если замысел таков, что актёр непременно вступает в бой с игроком, то можно схитрить и обойтись без гейммода, а вместо этого отслеживать прекращение драки (валяющийся актёр, естественно, не воюет). Придётся, правда, усложнить и ввести задержку, а то, похоже, в момент срабатывания блока OnCombatEnd его бессмертный носитель ещё не считается "knocked out". Для задержки можно использовать эффект. Базовый эффект - скриптовый:
Code
Begin ScriptEffectFinish
if GetKnockedState==1 showMessage zzMsg endif
End
На его основе - объектный с продолжительностью 1 секунда. На актёре остаётся только
Code
Begin OnCombatEnd
CIOS zzObjectEffect
End
Можно ещё не делать актёра бессмертным, а воскрешать ResurrectActor в блоке OnDeath, но там тоже свои баги.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №245
| Тема: Помощь по G.E.C.K.
написано: 29 ноября 2012, 07:10
| Отредактировано: Joopeeter - 29 ноября 2012, 07:13
И я так понимаю, что для актера из фракции, враждебной моему игроку (enemy -100), другого повода прекратить бой нет.
Почему же. Во-первых, можно принудительно прекратить бой функциями StopCombat и SCAOnActor. Во-вторых, можно удрать и спрятаться. Актёр со временем успокоится и блок сработает. В-третьих, он может и победить. Для того и городил огород с проверкой GetKnockedState, чтобы на ходячем актёре не срабатывало.
В приниципе, этот эффект можно ведь потом и отвязать от актера?
У эффектов можно задать длительность. У предложенного - одна секунда, потом он самоотвязывается. Если требуется, чтобы после какого-то момента игры он перестал даже накладываться, то надо задать ему условия. Какие - зависит опять от конкретных обстоятельств.
Есть еще функция "resetAI", о которой предупреждают, что это жесткий метод. Я правильно понял, что она вот как раз отвяжет все пакеты от НПЦ и превратит его в овощ?
Пакеты, прописанные у базового NPC на вкладке пакетов, во время игры удалить нельзя никак. Можно только иногда, если им заданы условия, добиться того, чтобы ни одно из них не соответствовало истине. И то, овощем не станет, будет вертеть башкой, говорить, ходить и драться при необходимости. Для полного или частичного превращения в овощ используются другие способы.
refusepit, убедись, что стул из раздела Furniture (с синими человечками), а не из статики. У статической, фальшивой мебели в названии обычно присутствует Static. Маркеры мебели (синие человечки) могут быть не видны, если отключен показ маркеров в ГЭКК. Отметь флажок Markers в View -> Show Hide Window или просто нажми "М". Убедись, что свойствах копии стула не отмечечена галка Ignored By Sandbox (игнорируется пакетом Sandbox). Убедись, что в настройках Sandbox'а наоборот, отмечена галка Furniture (other than beds). Навмеш под самой мебелью не нужен, только под стоячим маркером-человечком.
Ну, вот вошел я в дом, и все мои вещички легли в шкафчик, например. ... Так, вот я чавой-то нашел: РемовеАллИтем
Оружие, сувениры, крышки, всякий хлам - всё легло в шкафчик, даже штаны, которые на тебе, и те снялись и отправились туда же. Ты уверен, что это именно то, что тебе требуется? А то там строчкой ниже есть RemoveAllTypedItems.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №251
| Тема: Помощь по G.E.C.K.
написано: 8 декабря 2012, 23:32
| Отредактировано: Joopeeter - 8 декабря 2012, 23:33
Обычно это делается так. Нужный ресурс извлекается из .bsa с сохранением такого же пути к файлу, что и в архиве (вот так, например). Добытое из архива с помощью ГЭКК назначается в качестве модели, звука или чего там требовалось. Потом можно этот файл удалить, игра уже сможет видеть его в архиве. Также сравнительно недавно тут рядом был предложен способ без распаковки архивов. И конкретно про прицел было совсем уж недавно в соседнем разделе.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №254
| Тема: Помощь по G.E.C.K.
написано: 12 декабря 2012, 17:23
| Отредактировано: Joopeeter - 12 декабря 2012, 17:23
скорее всего в настройках такого пакета указан игнор боя
Игнор боя, если я правильно помню, там достигается функцией SetRestrained, а через настройки пакета добиваться такого игнора, насколько я мог заметить, бесполезно.
Просто не хочется плодить файлы, тем более звуковые (они все же не 2 кБ весят).
Существует мод "Дядя Лео", использующий исключительно оригинальные звуковые файлы, так там .esp примерно на 50 кб и озвучки примерно мегов на 30. Так что, похоже, увы...
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №256
| Тема: Скрипты
написано: 17 декабря 2012, 18:58
if GetDead if GetAV health>0 ResurrectActor 1 endif endif
End
Но этот способ также оживит убитого или развоплощённого не с консоли, а каким-либо скриптом. Ещё можно было сделать, чтобы после оживления здоровье сбрасывалось на тот уровень, который был до применения Kill, но я намеренно не стал - смерть читерам!
Глупый но давно терзающий меня вопрос: почему когда создаю нового НПС выбираю ему расу Афроамериканец он все равно бледный?
Я правильно понял, что тебя не причина на самом деле интересует, а как исправить? Мне вот тоже в своё время было интересно. Я спросил и меня отправили сюда.
А если это какая-то определённая локация, то можно накрыть либо огородить всё триггером. Вошёл посторонний - прибавляем единичку, вышел - убавляем. Или нужна "визуализация", чтоб непись нарезал пару кругов около ГГ?
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №259
| Тема: ВОПРОСЫ по моддингу
написано: 18 декабря 2012, 15:00
| Отредактировано: Joopeeter - 18 декабря 2012, 14:52
Только, если подумать, это не поможет: по-моему, скрипты очищают инвентарь на каждой стадии "взросления" в Убежище. Я просто кладу все в шкафчик в кабинете Смотрителя. Он смотритель, у него в заначке что хошь оказаться может!
А так - наверное, править скрипт квеста в Убежище: когда он доходит до стадии "Побег" - тогда и добавлять.
Я глубоко убеждён, что править оригинальные скрипты и вообще трогать ванильное надо только в крайнем случае, предварительно хорошенько разобравшись что же ты делаешь и на что это потом повлияет. Хоть в данном случае никаких таких особых последствий и не предвидится, но лучше всё же сделать свой квест, отметить ему Start Game Enabled, в квестовом скрипте добавить предметы игроку с проверкой, что пройдена последняя очищающая инвентарь стадия начальных квестов (хм, никогда не думал об этом в таком разрезе, действительно, карапузу бронежилеты с пушками без надобности) и тут же остановить этот квест.
Да и будет ли всё так просто с курением, закурит ли ГГ таким образом?
Ну, запустить PlayIdle на игроке мне ни разу не удавалось, а вот если сделать ему (себе то есть) AddScriptPackage с прописанными Idle-анимациями, то они проигрываются. Работает с пакетами Guard, Find, Travel и Sandbbox, нацеленными на Current Location либо на что-то, находящееся прямо под игроком. С ними же, но нацеленными куда либо ещё, не работает, другие не проверял. Контроль при этом полностью теряется (иногда навсегда) и возвращается (или как повезёт) только после RemoveScriptPackage. Также анимации видны только от третьего лица, а от первого отрубается управление, видно, что голова совершает какие-то движения, но не видать ни собственных рук, ни бутылки, ни сигареты (ёмаё, сразу ясно, что я далёк от здорового образа жизни, нет бы на отжиманиях проверял!). А вот функции для принудительного перехода к виду от третьего лица не предусмотрено, только обратно.
Можно ли в редакторе включить/отключить показ объектов disabled? Логически мне кажется, что должно такое быть... вон, в доме игрока сколько всякой перекрывающейся дряни из "стилей жилища" понапихано - неужто так и пихали, при всеобщей видимости?
Через View -> Show/Hide Window можно включать/отключать видимость разных типов объектов (статических, подвижных, актёров и т.д.). Клавишей "1" можно циклически делать выделенные в окне рендера предметы невыделяемыми-невидимыми-обычными. Невыделяемость и невидимость предметов распространяется только на окно рендера, в окне Cell View можно с ними делать что хочешь, в том числе снова выделить и нажать единицу.
А я бы, как обычно, без экстендера сделал. Создал бы одёжку без модели и вообще без ничего, только с названием и объектным эффектом. Назначил бы её кольцом в нос или в ухо или ещё куда-нибудь, где не занято, а на клавишу вешал бы на стандартную от 1 до 8 через пип-бой.
Добавлено (04.01.2013, 20:41) --------------------------------------------- Или наоборот. Фейковая одёжка без эффекта, а в тот эффект, что на основной шмотке, добавил бы условие, что это самое кольцо вдето куда следует.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №265
| Тема: Помощь по G.E.C.K.
написано: 4 января 2013, 16:57
| Отредактировано: Joopeeter - 4 января 2013, 17:01
Фигасе! А я думал, что в результ-скриптах переменные не объявляют! А что если объявить их где-нибудь в более традиционном месте? В том же квестовом скрипте, например. Или в скрипте на NPC. Или глобально в конце концов.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №266
| Тема: Помощь по G.E.C.K.
написано: 10 января 2013, 11:55
| Отредактировано: Joopeeter - 10 января 2013, 12:40
У меня что-то подобное было, когда я решил посмотреть, из чего сделан дом игрока. Сдвинул кусочек стены, а он на место и не встает...
Такое случается сплошь и рядом. Во многих случаях (но не всегда) помогает привязка сетки к ссылке. На той же вкладке Movement, где задаётся шаг перемещения при включенной привязке, жмём на Snap to reference и выбираем из списка либо в окне рендера ссылку, которая станет новой точкой отсчёта для сетки. Об этом, кстати, есть в "Картотеке" и в туторах, по-моему, тоже. Но изредка случается, что сетка не желает привязываться к чему нужно и блоки всё равно стыкуются со щелями, причём иногда в редакторе это почти не заметно. Лучше выявлять такие вещи пораньше, во время "капитального строительства", до расстановки и раскладки мелочей по полочкам и уж точно до создания рум-маркеров и прокладки навмеша. Так что тестирование и внимательный осмотр из игры, тестирование и осмотр. В случае обнаружения такой фигни я обычно делаю так: точно подгоняю один из "неправильных" блоков к соседнему "правильному" (не мышкой, а изменяя координаты в окне свойств ссылки, шаг в одну сотую, как правило, даёт нужную точность); привязываю сетку к подогнанному "неправильному" блоку; выделяю остальные "неправильные" блоки и с включенной привязкой подгоняю их к первому ("неправильные" к "неправильным" подгоняются нормально). Про лечение запущенных случаев можно почитать здесь (англ.) и здесь (рус.) http://tiarum.com/wiki/Fallout3_GECK:Вкусности_(Tidbits) . Но навмеш и особенно рум-маркеры придётся переделывать.
окошко начисления опыта не всегда вылезает, даже когда сам кого-нибудь прихлопнешь
Чтобы игроку начислили опыт за победу над врагом, он должен самостоятельно снести тому не меньше 40% здоровья. Этот процент задаётся настройкой iXPDeathRewardHealthThreshold. В её описании на ГЭКК-вики, как и вообще во всём разделе про начисление опыта, ничего не сказано про компаньонов и про то, делятся ли они опытом с ГГ. Собственных наблюдений по этому вопросу у меня нет, так как с напарниками не бегаю. Ждём кого-нибудь пообщительнее.
Добавлено (10.01.2013, 17:11) --------------------------------------------- Только что консольно "прикомпаньоненный" SetPlayerTeammate 1 Джерико перестрелял всю Мегатонну, а игроку ни крошки опыта не перепало.
Добавлено (10.01.2013, 17:15) --------------------------------------------- И это правильно.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №268
| Тема: Помощь по G.E.C.K.
написано: 11 января 2013, 18:05
| Отредактировано: Joopeeter - 11 января 2013, 18:13
Да не, refusepit, карму снимают за уникальных, "именных" Изгоев - защитников Рокфулов там всяких и т.п. Они и на вкладке Traits определены как хорошие, у них и для отрезания доступны не пальцы, а уши (а иначе и быть не могло - см. условия перка, точнее условия Target его Entry Point), так что сенсации не случилось - всё в пределах обычных кармо-пальцевых зависимостей. Возможно, путаницу ещё внесли нейтральные роботы, которые ходят со злыми пальценосными патрульными Изгоев. Вот такие они все сложные и противоречивые, что неудивительно, учитывая историю фракции.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №269
| Тема: Помощь по G.E.C.K.
написано: 13 января 2013, 00:41
| Отредактировано: Joopeeter - 13 января 2013, 00:44
А то я опасался, что, например, поставив setAV-ом ноль, сделаю героя иммунным к радиации. Или наоборот, мгновенно облучу его так, что он, извиняюсь, подохнет на месте.
Я бы посоветовал поосторожнее с SetAV. Например, если воспользоваться этой функцией для изменения грузоподъёмности игрока, то она (грузоподъёмность) застрянет на новом значении навсегда - и хоть ты чего обпейся или объешься. Также ГЭКК-вики предупреждает об особенностях использования SetAV для изменения здоровья ГГ. Что случиться с повреждаемыми "процентными" характеристиками типа мобилити-кондишенов и прочего, не знаю, но для их временного изменения (повреждения и восстановления) как раз и используют DamageAV и RestoreAV. Так что не исключено, что поставив ноль ты что-то такое странное и сделаешь. Вообще, если посмотреть оригинальные скрипты, то там SetAV главным образом применяется к характеристикам типа Aggression, Confidence, Assistance и т.п., часто ещё к загадочным характеристикам variable под разными номерами, изредка к основным из S.P.E.C.I.A.L. и только в очень-очень специальных случаях к health и mobilitycondition.
Изменение репутации для пользователя JupiterJour
JupiterJourOffline
Сообщение №270
| Тема: Помощь по G.E.C.K.
написано: 21 января 2013, 14:15
| Отредактировано: Joopeeter - 21 января 2013, 14:25
Перегородить тот навмеш триггером, который выдавал бы (AddScriptPackage) всем вошедшим, кроме игрока и избранного NPC (в случае "всем нельзя, кроме..."), пакет путешествия к какому-нибудь маркеру немного в сторонке. В конце путешествия лучше для надёжности пакет отобрать (RemoveScriptPackage), а то у скриптовых пакетов я наблюдал проблемы с их переоценкой "естественным путём". Игроку скриптовых пакетов, по-моему, лучше не давать. При необходимости можно просто грубо развернуть его носом в другую сторону и всё. Ещё можно попробовать при входе-выходе из триггера убирать и возвращать сам навмеш (DisableNavmesh и EnableNavMesh). Сам я этими функциями, правда ни разу не пользовался, помню только из тутуора, что для них надо сделать спецучасток навмеша, что, если рассудить, и так ясно.