И каким образом можно поправить отсутствие рук при удержании оружия от первого лица?
Подозреваю, что отсутствуют не руки вообще, а только рукава...
В моделях есть блоки, которые должны называться строго определенным образом: Hat - часть модели прически которая видна при надетом головном уборе типа "шляпа/каска" (если видна голова) NoHat - часть модели прически которая видна при снятом головном уборе типа "шляпа/каска" PipBoyOn - часть модели отображаемая только с надетым ПипБоем PipBoyOff - часть модели отображаемая только со снятым ПипБоем LeftHand / RightHand - "голая" часть кисти руки (перчатки) для корректного отображения текстуры кожи LeftGlove / RightGlove - "железная" часть перчатки backpack - аддон типа рюкзак (в модели оружия должен быть прописан только строчными буквами без заглавных) UpperBody - часть модели которую не должно быть видно при виде от первого лица (наплечники, высокие воротники)
Так что поменяй название рукавов с UpperBody на допустим Outfit и скорее всего будет тебе счастье...
Появление всполохов при попадании, реализовано в силовых экранах анклава в 3-м Фолле. А вот как реализовать это на одежде/броне..... Хотя в принципе, если найдешь способ прикрепить в реальном времени активатор к конкретному Ноду скелета то это решит твою (и не только твою) проблему.
как всё сложно... видимо моим изобретениям всё таки суждено остаться лишь в голове.
К сожалению действительно сложно. Если изобрести способ крепления, можно было бы сделать броню которая защищает именно то, что закрывает, а не всего персонажа в целом и еще много чего интересного...
День добрый граждане. Уважаемые знатоки помогите с проблемой. Попытался сделать НКРовского солдата и рейнджера, которые вызывают ся припомощи рации, более полноценными напарниками. Поменял им содержимое инвентаря - полностью удалил то что было и накидал нового. Определил их во фракции Follover и Teammate и поставил Set Teammate to 1 убрал зависимость от "материнского" непися. Собственно вопрос: 1). Вещи которые я положил солдату/рейнджеру в инвентарь у него есть, а вещи которые я вроде как убрал из инвентаря так и остались в инвентаре... 2). Солдат/рейнджер как до моих изменений, так и после бегает за мной только по пустоши, в интериоры/экстериоры заходить не хочет... Как можно это исправить?
Принудительная переоценка при помощи EvaluatePackage (evp) иногда оказывается недостаточной, может потребоваться ResetAI, но эта функция бывает и чрезмерной...
А вот с этого места поподробнее пожалуйста: что значит чрезмерной? Что она вообще ресетит?
И подскажи вот еще что: в пакетах в частности Follow, есть окошко в котором можно выбрать CombatStyle. Так что, во время выполнения пакета будет использоваться выбранный CS или я чего-то не понимаю?
по описанию, и по встречавшимся мне примерам (моддеры задают значение этого поля - наверное, не для юмора) выглядит так
Я почему спросил-то: в оригинале везде стоит DEFAULT, причем без вариантов... Так вот что это за DEFAULT такой, где можно посмотреть как он реально выглядит? В списке CS его вроде как нет...
нужно чтобы НПС сидел и печатал на компе чтонибудь с 11 до 15
Самый простой вариант не читать туториалы, а сделать по аналогии. Загляни в Вегас. Там каждый пятый персонаж сидит и каждый десятый что-то печатает. Если конкретно, то посол Крокер в посольстве НКР как раз только и делает, что сидит и печатает, с перерывом на сон. Причем вероятно именно с 11 до 15 . Все нужные анимации можно взять оттуда же.
Как добавить через диалог Фракцию Братства стали (например) к ГГ!Другими словами чтобы ГГ стал полноценным юнитом Братства Стали?
Ну если нужно только чтобы ГГ вступил в определенную фракцию, то ответ такой же, как на предыдущий вопрос - смотри аналогии. В данном случае смотреть надо любого стандартного напарника (например Кловер), а точнее его диалоги, топик "Follower Hired". В ResultScript этого диалога напарник вступает во фракцию ГГ и ему присваивается ранг в этой фракции. Меняешь CloverRef на Player, а PlayerFaction/FollowerFaction/TeammateFaction на BrotherhoodOfSteelFaction (как-то так) и ГГ станет почти полноценным членом братства. При этом члены фракции будут вступаться за ГГ в бою но не более того. В Вегасе есть как раз то что тебе нужно: ГГ принимая на службу Буна (топик тот же) сам вступает в его фракцию. А если нужно, чтобы Стальные Братцы обращались к ГГ послушник/рыцарь/паладин, то придется прописывать дополнительные условия в ветках диалогов. ГГ есть объект уникальный и к нему неписи относятся заведомо не так, как друг к другу, поэтому вероятно придется создавать новые ветки диалогов
Если точнее то я себе это представляю так:ГГ проходит тригер с НПС жертвой раздается выстрел с крыши (попадание в неважно куда анимация которую я хочу предоставить НПС показывает,что попали в голову) и НПС жертва начинает играть свою роль (падение) а затем умирает
ncrrainjer, уважаемый, я возможно немного поздновато, но ответ уже традиционный смотри аналоги. Заглядываем в Вегас. Город NoVac (Новак) персонаж CraigBoone (Бун) в своем самом первом квесте именно выстрелом в голову, именно из снайперской винтовки, почти что с крыши (из головы динозавра) убивает того NPC'а, которого ГГ приведет в условленное место (несколько вариантов жертвы). Причем еще и при условии, что на ГГ в этот момент надета очень специальная беретка. 100%-е попадание реализовано с помощью пакета UseWeapon. Либо как сказал мастер Ipatow, только не ...SniperRef.FireWeapon... потому как в этом случае твой киллер просто выстрелит в никуда, а ...SniperRef.UseWeapon... тогда киллер будет стрелять именно в жертву. Примерно так: КиллерRef.UseWeapon WeapSniperRifle КиллерRef ЖертваRef 1 0 0 1 0 где первая цифра число выстрелов, а четвертая 100%-е попадание. Одно НО: при использовании UseWeapon (функции или пакета) у киллера обязательнодолжно быть в инвентаре указанное оружие, а при использовании FireWeapon киллер выстрелит прожектилем указанного оружия из того огнестрельного оружия, которое в данный момент у него в руках (хоть ракетой из пневматики).
Подскажите, пожалуйста. Как увеличить дальность выстрела из гранатомета и дальность броска гранаты
Какого именно гранатомета, обычного или "Толстяка"? Если обычного, то у него дальность выстрела можно сказать и так максимальная. Если "Толстяк" или гранаты то идем в Weapons, находим нужное оружие, и во вкладке Art and Sound (вторая вкладка) смотрим какой Projectile использует данное оружие. Далее идем в SpecialEffects / Projectile и находим нужный Projectile.
Нужные в данном случае параметры Projectile'я: Speed - Скорость полета пули/ракеты/гранаты, чем она больше тем дальше полетит снаряд (при Gravity > 0). Gravity - Отвечает за кривизну полета пули, чем она меньше тем дальше летит снаряд. Если == 0 то прямая траектория. Range - Собственно дальность. Максимальная длина прямой/дуги полета пули, после чего пуля исчезает. Корректный максимум 25000. Fade Duration - Время "жизни" пули. Пуля исчезает по истечении этого времени если до этого ни во что не попала и не взорвалась. Имеет смысл поставить 5.0 для пули и Timer + 0.5 для гранаты.
Explosion / Timer - (для гранат) время до взрыва. Чтобы граната успела улететь дальше имеет смысл увеличить.
Там же было дополнительное условие - попасть в голову... А если он попадёт в жертву и оторвёт ей выстрелом ногу? Всё кино насмарку! Пусть лучше в белый свет палит наверное, чтоб только "пиф-паф" прозвучало
Ну во первых (по статистике) стрельба ведется исключительно в грудь/живот, а во вторых если уж нужна стопудовая гарантия то так: КиллерRef.UseWeapon WeapSniperRifle КиллерRef ЖертваRef 1 0 0 1 1 при этом урон не будет наноситься следовательно ничего лишнего оторвано не будет, однако попадание как таковое будет засчитано и может быть использовано в скриптах или эффекте самого используемого оружия.
Гмм... Ну поскольку мы снимаем кино, то главный смысл UseWeapon я вижу в том, что стрелок будет стрелять как минимум в сторону цели. А то мало ли вдруг ГГ как раз на крышу смотрит, а снайпер бабах FireWeapon в противоположном направлении В остальном неподдельный выстрел может и испортить кадр - пусть урона нет, но decal-то кровавый нарисуется на пузе?
Если уж колом стоит выбор: кровь на пузе / выстрел в противоположную сторону по моему уж лучше кровь на пузе . Кстати (опять же по статистике) при отстреле Буном своих жертв, "посторонней" крови на жертвах как-то не было замечено...
при выстреле пуля попадает немного левее от точки прицеливания. Может можно как то выровнять прицел?
Выровнять можно. Как? Долго и нудно. А теперь по порядку: Автонаведение работает как в режиме от первого, так и от третьего лица, как с огнестрельным, так и с холодным оружием, только углы везде разные. Автонаведение от третьего лица можно отключить, при этом пули будут лететь по анимации ствола (лучше этого не делать - замучаешься наводиться). При виде от первого лица пули все рано летят в игровой прицел. При стрельбе через оптику, (именно через оптику, а не просто прицеливание) игровой прицел отключается и пули летят по анимации ствола, независимо какой основной вид - от первого лица или от третьего. Отклонения траектории пули вверх/вниз/вправо/влево зависят от используемой в данном конкретном оружии анимации атаки и соответственно почти для каждого оружия свои.
Угол "косой стрельбы" зависит также от длины ствола оружия или вернее от координат ProjectileNode в модели оружия. Чем длинне ствол и чем он дальше в сторону от игрового прицела, тем угол больше. При очень длинном стволе возможна даже стрельба назад, но это чисто визуальная часть.
Для начала делаешь свой прицел. Открываешь NisScope'ом любой понравившийся прицел, добавляешь в нем новый NiNode и как-нибудь его называешь. Переносишь на этот Node все имеющиеся детали. Сохраняешь модель под новым именем и указываешь в нужном оружии путь к ней. Затем долго и нудно пристреливаешь, сдвигая свой Node в нужную сторону. Двигать сами детали, тем более друг относительно друга, очень не советую - в игре элементы могут пропадать, да и просто проще настраивать, когда все элементы в одном пакете.
Уважаемые знатоки плиз хелп! В моделях есть параметр BSXFlags как выяснилось весьма важный и он имеет конкретные числовые значения. Подскажите какая цифра что конкретно означает.
Ты бы поведал, в чём именно твоя печаль - а то, может, на самом деле тебя интересует bkhCollisionObject -> bhkRigidBody: Layer
Может конечно и bhkRigidBody но вряд ли. Если уж изливать печаль то... Решил я намедни сделать так, чтобы ракету (гранатометную) можно было сбивать из винтовки как гранату. Замутил ей DestructionData'у. Не сбивается - пули сквозь ракету летят. Дошло, что надо добавить в модель коллизию. Добавил и началось интересное и непонятное: то пули летят сквозь коллизию будто там нет ничего, то ракета исчезает только вылетев из ствола. Наконец догадался сделать коллизию по образу и подобию собственно гранаты - ракета летает, сбивается, но вот дымный след пропал напрочь. А хотелось полноценную ракету, чтобы и дымный след был и сбивать можно было. И выяснилось что работоспособность AddonNode'ов зависит от значения этого самого BSX'а. Да и поведение коллизии тоже. В частности возможность поднять объект зависит не только от типа коллизии, этого самого Layer'а, но и от значения BSX'а. Ну вот так если коротко... Перешел по ссылке и понял, что рано лыжи одел. Снега нет еще асфальт кругом... короче не понял ни фига!
Слыхивал, что бывают несовместимые сочетания функционала...
похоже на то... только виновата тут не коллизия. Простой пример: возможность поднять предмет с земли и положить в карман обеспечивают значения BSXFalags 66 и 67 причем коллизия может быть и Clutter и Weapon и Projectile и даже Biped про остальные точно не помню. Так что я надеялся именно на расшифровку числовых значений BSX. Ну примерно такую, как расшифровка цветов коллизии. Ну на нет как говорится...
Так что, все-таки нашли адекватный способ определить, находится персонаж в воде или нет? Помнится когда когда мы пытались заставить неписей набирать водную радиацию, то для определения нахождения в воде был предложен только абсолютно шаманский способ разбрасывания вокруг персонажа малоразмерных человечков...
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №170
| Тема: ВОПРОСЫ по моддингу
написано: 3 октября 2014, 09:03
| Отредактировано: Veldion - 3 октября 2014, 09:21
В ЛС такой объем запихать проблематично поэтому пишу здесь.
Ну а вот собственно отчет:
Дляначала я сделал тестовый перк с Ability и наиболее интересными EntryPoint’ами, тестовое оружие и тестовую мишень. Специально при первом тесте не стал брать стандартные перки, абилки и оружие во избежание “незаметного влияния” других факторов.
Сделал для ГГ спецберетку, чтобы надевая/снимая ее, быстро и удобно добавлять/убирать тестовый перк (не стандартный во избежание конфликтов) в любой момент игры не залезая в консоль, которая как оказалось весьма глючная падла…
SCN TestBertka01Script Short XXX [я решил не спрашивать “HasPerk или не Has?” а пойти более простым путем] Begin GameMode if ( XXX == 0 ) if ( Player.GetEquipped TestBeretka01 > 0 ) if ( Player.IsWeaponOut > 0 ) Player.AddPerk CalmHeartPerk 1 Set XXX to 1 Endif Endif Endif END Begin GameMode if ( XXX == 1 ) if ( Player.GetEquipped TestBeretka01 < 1 ) Player.RemovePerk TestPerk01 1 Set XXX to 0 Endif Endif END Begin GameMode if ( XXX == 1 ) if ( Player.IsWeaponOut < 1 ) Player.RemovePerk TestPerk01 1 Set XXX to 0 Endif Endif END
Затемдобавил в стандартные скрипты Буна и Кэсс фрагменты, которые визуально (и как оказалось полностью достоверно) показывают наличие добавляемой перком Ability по принципу “есть абилка – надета шляпа”.
scn BooneSCRIPT (фрагмент) ......................... BEGIN GameMode if ( IsSpellTarget TestAbility01 > 0 ) if ( GetEquipped HatNCR1stReconBeret < 1 ) EquipItem HatNCR1stReconBeret 1 Endif Endif END Begin GameMode if ( IsSpellTarget TestAbility < 1 ) if ( GetEquipped HatNCR1stReconBeret > 0 ) UnEquipItem HatNCR1stReconBeret 1 Endif Endif END …………………….
scn RoseofSharonCassidyScript (фрагмент) ......................... Begin GameMode if ( IsSpellTarget TestAbility01 > 0 ) if ( GetEquipped CassHat < 1 ) EquipItem CassHat 1 Endif Endif END Begin GameMode if ( IsSpellTarget TestAbility < 1 ) if ( GetEquipped CassHat > 0 ) UnEquipItem CassHat 1 Endif Endif END …………………….
После чего осталось только проверить абилки на работоспособность для пущей достоверности. Наличие EntryPoint пришлось определять по работоспособности чисто экспериментально.
Заставил компаньонов (нанятых и нанятых/уволенных) стрелять по тестовой цели и простым персонажам с добавленным перком и без него, после чего обстрелял самих компаньонов. Повторил все действия после сохранения/загрузки.
Моих компаньонов можно нанимать хоть всех сразу, поэтому я решил взять для теста людей поскольку у того же Рэкса оружейные EntryPoint'ы сложнее тестировать.
Результат теста: [Ab–Ability, EP–EntryPoint, Т1-Бун, Т2-Кэсс]
Взял перк - Нанял Т1, Т2: ----- Ab нет, EP не работают без вариантов. Нанял Т1 – Взял перк – Убрал перк: ----- Т1 Ab нет, EP нет. Нанял Т1 – Взял перк – Уволил Т1: ----- Т1 Ab есть, EP нет. Нанял Т1 – Взял перк – Уволил Т1 – Нанял Т1: ----- Т1 Ab есть, EP есть. Нанял Т1 – Взял перк – Нанял Т2: ----- Т1 Ab есть, EP есть; Т2 Ab нет, EP нет. Нанял Т1 – Нанял Т2 – Взял перк: ----- Т1 Ab есть, EP есть; Т2 Ab есть, EP есть. Нанял Т1 – Нанял Т2 – Взял перк – Уволил Т1 – Убрал перк – Уволил Т2: ----- Т1 Ab есть, EP нет; Т2 Ab нет, EP нет.
Нанял Т1 – Нанял Т2 – Взял перк – Save/Load: ----- Т1 Ab есть, EP нет; Т2 Ab есть, EP нет. Нанял Т1 – Нанял Т2 – Взял перк – Save/Load – Взял перк: ----- Т1 Ab есть, EP нет; Т2 Ab есть, EP нет. Нанял Т1 – Нанял Т2 – Взял перк – Save/Load – Убрал перк – Взял перк: ----- Т1 Ab есть, EP есть; Т2 Ab есть, EP есть.
Вывод: 1). Перк срабатывает разово, в момент добавления/удаления. Срабатывает только на персонажах которые на момент добавления/удаления имеет статус Teammate'а. Чтобы перк заработал его нужно добавлять после того, как персонаж станет Teammate’ом. 2). Статус Teammate – обязательное условие для работы EntryPoint’ов. Если уволить компаньона не снимая с ГГперк, то у компаньона останутся и будут работать все Ability,добавленные перком. EntryPoint’ы также останутся но работать не будут. 3). Ability, которые имелись у компаньонов на момент Save/Load сохраняются и полностью работоспособны вне зависимости от того, был ли компаньон на момент Save/Load собственно Teammate’ом. EntryPoint’ы в случае Save/Load удаляются и перестают работатьбез вариантов.
Единственный способ восстановить работу EntryPoint’ов на компаньонах после Save/Load, убрать (обязательно), а затем снова добавить перк.
Так что добавлять/убирать “компаньонские” перки в диалоговых скриптах как-то не вариант – слишком много мест, где это придется делать. Проще и надежнее это делать в собственных скриптах напарников, используя проверку на Teammate’ность.
Стандартные перки работают полностью аналогично тестовым.
Если интересует работоспособность наиболее интересных EntryPoint’ов то: Calculate Gun Spread – работает Calculate Mine Explode Chance – работает только на ГГ Calculate Weapon Damage – работает Equip Speed – работает Has Improved Detection – работает Has Unarmed XXXXX Attack – работает только на ГГ Modify Attack Speed – работает * Modify Damage Threshold (attacker) – работает ** Modify Damage Threshold (defender) – работает ** Reload Speed - работает * - Изменяет скорость атаки в самом прямом смысле т.е. изменяет время, которое требуется на сам выстрел но не интервал между выстрелами. Чтобы было понятнее, изменяет скорость движения руки/оружия при рукопашном ударе но не интервал между ударами. Имеет смысл использовать только с многозарядным оружием, либо в рукопашной - для ударов "на опережение". ** - DT обретает полную функциональность только при GS-параметре fMinDamMultiplier = 0.0 При стандартном значении fMinDamMultiplier = 0.2 любое оружие наносит минимум 20% от своего номинального урона при каждом попадании даже если броня считается не пробитой.
Теперь по перкам, которые ты хотел проверить: Перк "Calm Heart" полностью работоспособен. Save/Load'ом не сносится. Перк "HandOfVengeance" работоспособен до Save/Load'а. Перк "Old Vaquero" работоспособен до Save/Load'а. Перк "CauselessRebel" не нашел чтобы где-то добавлялся. Если добавить то работоспособен до Save/Load'а. Перк "BondsOfSteel " не нашел чтобы где-то добавлялся. Если добавить то работоспособен до Save/Load'а.
З.Ы.И как я вообще мог на эти чертовы Ability переключиться? Тем более начать добавлять Ability через перк. Извращение-то какое. Никогда этой фигней не занимался, всегда AddSpell использовал, а тут вдруг… Ведь с EntryPoint’ов начинал – именно они представляют в перках основную и наверное единственную ценность. А с Ability в итоге вообще все в порядке оказалось…
Гранаты вообще оружие загадочное: если у персонажа они есть, то этот персонаж в бою использует сначала именно гранаты даже в том случае, если ствол в разы мощнее, и навык "Огнестрел" намного больше навыка "Граната". В Вегасе легионеры всегда сначала кидают копья, а уже потом берутся за мечи/винтовки. Копья ведь тоже гранаты
А по поводу халявных патронов возникла у меня намедни одна идея:
Scn СобственныйСкриптНепися Short Doonce Begin GameMode if (Doonce == 0) if (GetItemCount WeapMinigun > 0) AddItem Ammo5mm 100 ну или сколько там было в начале боя Set Doonce to 1 Endif Endif End Begin GameMode if (Doonce == 1) if (GetHealthPercentage > 75) если плохо воюет то халява кончается if (GetItemCount WeapMinigun > 0) if (GetItemCount Ammo5mm < 50) ну типа израсходовал в любом случае if (GetItemCount Ammo5mm > 5) AddItem Ammo5mm 1 Endif Endif Endif Endif Endif Endif End
Проверил в Вашингтоне и в Вегасе, вроде работает.....
Вишенке, правда, тоже полагалось бы приседать - она на старте пакета записывается в команду.
Тогда во избежании недопонимания вследствии "феерической невнятности в выражениях" давай сразу определимся, что есть "записаться в команду": Add to Faction TeammateFaction или Set PlayerTeammate 1 ?
А у Вишенки и Рыжей (и Коротышки, и Синди, и у персонала Проекта Чистоты) оказывается, совершенно одинаково стоят Set PlayerTeammate 1 и 0 в результ-скриптах Begin и End пакетов Follow.
Что стоит в результ-скриптах пакетов Follow я признаться прохлопал... Я рассматриваю "приседаемость" исключительно как визуальный индикатор "Set PlayerTeammate 1" при котором патроны начинают расходоваться, и вот совпадение - Коротышка Рыжая и Синди расходуют патроны (из Playable-стволов), а Вишенка и доктора-чистюли нет...
И часто наблюдался баг, когда мутант, израсходовав боеприпасы, не переключался на кулаки, а начинал бегать туда-сюда с бесполезным миниганом в руках - ни драться не может, ни убежать не хочет.
Не помню, а у мутанта вообще есть "кулачно-кастетная" анимация? А то этот баг свойственен персонажам у которых кончились патроны (или выбито оружие), другого оружия нет, и отсутствует unarmed-анимация...
Что это дает, в смысле такое вот разделение на два блока?
Не знаю как другие авторы, но я далеко не мастер-скриптовик. В моем случае это дает простоту, понятность и надежность работы отдельных независимых друг от друга блоков, а следовательно и всей системы в целом.
Изменение репутации для пользователя Veldion
VeldionOffline
Сообщение №176
| Тема: ВОПРОСЫ по моддингу
написано: 11 октября 2014, 05:37
| Отредактировано: Veldion - 11 октября 2014, 09:35
Обычные (не Teammate) NPC'ы расходуют патроны при стрельбе из оружия у которого: 1. Playable - флажок стоит 2. NPS Use Ammo - флажок стоит 3. Ammo Use > 0
Teammate'ы расходуют патроны при стрельбе из оружия у которого: 1. Playable - флажок стоит 2. NPS Use Ammo - без разницы 3. Ammo Use > 0
Оружие у которого: 1. Playable - флажка нет 2. Ammo Use > 0 Не расходует патроны но требует их наличия
Оружие у которого: 1. Ammo Use = 0 Не расходует патроны и не требует их наличия
bForceNPCsUseAmmo = 1
Оружие у которого: 1. Ammo Use > 0 Расходует патроны и требует их наличия
Оружие у которого: 1. Ammo Use = 0 Не расходует патроны и не требует их наличия
Флажки Playable и NPSUseAmmo не имеют значения
Перки и PlaceAtMe-клон.
Персонаж появляющийся в мире при применении функции PlaceAtMe является "чистым и стерильным" базовым объектом. Он не наследует ни чего из того, что "нажито непосильным трудом" Ref-персонажем (полученные в процессе игры абилки, вещи, статус Teammate'а, изменившиеся характеристики и т.п.). Если PlaceAtMe-клону придать (насильственно) статус Teammate'а, то на него начнут действовать перки при условии что: 1). Перк добавлен после того, как PlaceAtMe-клон получил статус Teammate'а. 2). В самом перке и в добавляемых им абилках не указан получатель бонуса. После Save/Load - Ability остаются, EntryPoint'ы слетают.
Наложение енчантов (ужос-ужос)
Наложение енчантов, приводящее к необратимому изменению характеристик неписей происходит при "Странном-Пересмотре-Инвентаря". Функция AddItem - лишь одна из многих причин вызывающих "Странный-Пересмотр". Вот список причин (возможно не полный): 1). Функция AddItem если применяется непосредственно к объекту (не косвенным способом через RemoveAllItems) 2). Доступ к инвентарю через TeammateContainer и Меню торговли (если открывается сам инвентарь, а не торговый сундук) 3). Изменение CombatStyle'а 4). Быстрое путешествие в локацию находящуюся в другой ячейке 5). Respawn ячейки (не всегда) Доступ к инвентарю через воровство, подбор персонажем предметов с земли и переэкипировка предметов во всех возможных вариантах необратимого изменения параметров изменяемых енчантами не вызывают.
Способ лечения (нудный но надежный 100%): Присвоить предмету енчант, который не будет изменять характеристики персонажа, а будет только добавлять/убирать Ability при помощи простейшего скрипта: Begin ScriptEffectStart AddSpell "УникальнаяАбилка" End Begin ScriptEffectFinish RemoveSpell "УникальнаяАбилка" End А уже эта "уникальная абилка" будет изменять характеристики персонажа (ну или делать что-то еще). В общем будет играть роль стандартного енчанта. При этом во избежании багов связанных с экипировкой предметов, обладающих енчантами, добавляющими одинаковые (по ID) Ability, для каждого вида брони/одежды придется сделать собственный уникальный енчант, добавляющий собственный уникальный (по ID) Ability.
Помогает даже тем, кто пьет ядер-колу канистрами ;)
День добрый граждане. Вопрос такой: Как научить Creature'у носить броню и менять в игре по приказу или через инвентарь, без подмены одного персонажа другим? Имеется в виду чисто визуальная часть. Допустим говорим тому же Фоксу: одень броню - он одевает набор "стандартного супермутанта", говорим сними - он остается в своей стандартной одежде...
Ладно понял спасибо. Зайдем с другой стороны - можно ли в игре поменять у персонажа базовый (материнский) объект? Как я понимаю это должно сказаться на внешнем виде...
Предварительные условия. Имеется броня (простые клоны с одинаковыми характеристиками 50 шт) под номерами с 1-го по 50-й включительно, которой в левел-листах присваиваются уровни соответственно номеру. Имеется три LevelledItem-листа с этой броней: 1-й с броней уровней 1,2,3,4,5,…50; 2-й с броней уровней 1,5,10,15,20,…50; и 3-й с броней уровней 1,10,20,30,40,50. Имеются 50 NPC-клонов входящих в LevelledCharacter-лист, которым в этом левел-листе присвоен уровень соответственно номеру. “Собственный” уровень NPC-клона по условиям эксперимента может не совпадать с его “левел-уровнем” установленным в левел листе. Имеется два “основных” левельных NPC находящихся в тестовой локации. NPC-№01 является полностью независимым, NPC-№02 использует LevelledCharacter-лист с NPC-клонами в качестве ActorBase. Имеется два контейнера с присвоенными им LevelledItem-листами с броней и две EncounterZone’ы, одна присвоена к локации, вторая непосредственно к контейнерам и NPC. Проводилось несколько экспериментов. Использовалась как специально созданная локация, так и стандартная Мегатонна. Результаты таковы:
"Собственный" уровень NPC (если не задан жестко а множителем) равен уровню ГГ умноженному на значение LevelMult. Если при этом уровень NPC получается не целым числом, то округляется до ближайшего целого. Например при уровне ГГ равном 15, NPC с множителем 3.0 имеет уровень 45, а NPC с множителем 0.5 имеет уровень 8. При этом уровень NPC не может быть меньше значения CalcMin, и больше значения CalcMax. CalcMin и CalcMax ограничивают именно уровень самого NPC, а не уровень ГГ который берется для расчета.
LevelledCharacter-лист, который используется в качестве ActorBase отрабатывает абсолютно случайно вне зависимости от уровня ГГ и “собственного” уровня как “основного” NPC, так и NPC-клонов. Уровень “конечного объекта” равен уровню “основного NPC” если флажок UseStats в настройках “основного” NPC не установлен. Если же флажок UseStats установлен, то уровень “конечного объекта” равен уровню NPC-клона из LevelledCharacter-листа. Например если в настройках “основного” NPC стоит флажок UseStats, а в качестве ActorBase используется LevelledCharacter-лист с NPC-клонами с 1-го по 50-й уровень, то уровень “конечного объекта” может быть любым в пределах от 1 до 50. При установленном в LevelledCharacter-листе флажке “CalculateFromAllLevels<=PCLevel” “списочный” уровень клона (не путать с уровнем “конечного объекта”) не может быть выше уровня ГГ. Например если в левел-листе под уровнем 1 указан злой мух, под уровнем 5 указан яо-гай, а под уровнем 15 указан коготь смерти, то оный коготь смерти появится только по достижении ГГ 15-го уровня. Злой мух и яо-гай при этом ни куда не денутся, просто вероятность их появления станет меньше. Теоретически вероятность выпадения нужного моба из списка равна единице деленной на количество доступных на данный момент наименований (в зависимости от уровня ГГ) но на практике левел-лист может зациклиться на одном-двух (случайных из доступных) наименованиях и для разблокировки требуетcя Save/Load. Если флажок “CalculateFromAllLevels<=PCLevel” не установлен то NPC-клон выбирается абсолютно случайно. Предположительно LevelledCharacter-лист отрабатывает по уровню “конечного объекта”, но поскольку в таком случае этот уровень берется по сути из самого LevelledCharacter-листа то отработка неизбежно происходит случайно.
LevelledItem-лист присвоенный NPC отрабатывает по уровню “конечного объекта”. Уровень предмета из LevelledItem-листа NPC в идеале будет равен уровню “конечного объекта” (хозяина листа). Если в LevelledItem-листе нет предмета четко совпадающего уровня, то выбирается предмет с уровнем ближайшим к уровню “конечного объекта”. Например из первого листа “конечный объект” с уровнем с 1-го по 50-й выберет предмет именно своего уровня, из второго листа “конечный объект” с уровнем 4 выберет предмет 5-го уровня, а “конечный объект” с уровнем 22 выберет предмет 20-го уровня. Если уровень “конечного объекта” находится четко посередине между уровнями предметов, то выбирается ближайшее минимальное значение уровня предмета. Например из третьего листа “конечный объект” с уровнем 15 выберет предмет 10-го уровня, а “конечный объект” с уровнем 35 выберет предмет 30-го уровня. При этом не важно был LevelledItem-лист присвоен “основному” NPC, или NPC-клону.
LevelledItem-лист присвоенный контейнеру отрабатывает абсолютно случайно.
Пересмотр уровней левельных NPC, а также предметов в контейнерах и инвентарях NPC происходит при первом входе ГГ в локацию, а в дальнейшем при каждом ресете локации.
В настройках самой EncounterZone’ы работает только флажок NeverResets. Если EncounterZone’а с установленным флажком NeverResets присвоена к локации – то блокирует всю локацию. При этом мобы не оживают, трупы не исчезают и контейнеры повторно не заполняются. Если же EncounterZone’а присвоена к конкретному Reference’у то блокирует только его. Когда на Reference (моба или контейнер) действуют одновременно две EncounterZone’ы - одна “локационная”, другая “собственная” - то Respawn данного Reference’а блокируется если хотя бы одна действующая EncounterZone’а имеет флажок NeverReset. Изменение настроек непосредственно самой EncounterZone’ы (кроме NeverResets – он работает) а именно: значения MinimumLevel, установка флажка MatchPCBelowMinimumLevel, а также указание конкретного NPC или фракции непосредственно в настройках EncounterZone’ы ни к чему не приводят.
---------------------------------------------
Пункт 2 (делаем ESP'шник Master-файлом)
"Собственный" уровень NPC отрабатывает аналогично пункту 1. LevelledCharacter-лист, который используется в качестве ActorBase отрабатывает аналогично пункту 1. LevelledItem-лист присвоенный NPC отрабатывает аналогично пункту 1. LevelledItem-лист присвоенный контейнеру отрабатывает по уровню ГГ плюс минус один уровень.
Когда на Reference (моба) действуют одновременно две EncounterZone’ы - одна “локационная” другая “собственная” - то приоритет имеет зона присвоенная непосредственно к Reference’у. Например если к NPC-Reference'у присвоена зона без флажка - то NPC будет возрождаться вне зависимости от того, стоит флажок в зоне присвоенной к локации или нет. Respawn контейнеров не блокируется в принципе вне зависимости сколько EZ на него действует. В остальном аналогично пункту 1.
EncounterZone’ы могут применяться либо для блокировки Respawn’а мобов/контейнеров и Reset’а локаций, либо в качестве некоего аналога глобальных переменных в диалогах, когда нужно связать по смыслу несколько физически разных локаций. Например чтобы Джерико не ляпнул “Как же приятно наконец выбраться из Мегатонны” находясь при этом в домике ГГ или сидя в баре у Мориарти (но физически-то не в Мегатонне) у него в настройках реплики указано: GetInZone [EncounterZone: MegatonZone == 0], а MegatonZone присвоена ко всем соответствующим ячейкам.