как найти base id у персонажа добавленного модом, мне нужно сделать этого персонажа бессмертным (это компаньон).
При наличии в игре FOSE: 1. имея в виду этого компаньона, открыть в игре консоль. 2. ткнуть мышкой в компаньона - высветится имя и FormID этого экземпляра. 3. команда "GetBaseObject" покажет FormID базового объекта. 4. команда "SetEssential <FormID-из-пункта-3> 1" сделает все экземпляры этого моба бессмертными. 5. закрыть консоль и записаться. Способ неприменим для левельных мобов (у тех надо отслеживать всю цепочку наследования и ставить флажок бессмертия в изначальном шаблоне), но для типичного компаньона никакие специфически разработчицкие утилиты не нужны...
Как в GECK сделать к примеру: не играбельный предмет глобус сделать играбельным чтобы можно было его добавить к себе инвентарь. кто не понял чтобы создать новый предмет нужно иметь его модели и текстуры, а тут наоборот имея готовые сделать на их основе играбельный предмет при этом не прибегая к распаковке игровых архивов
Именно в GECK и именно не распаковывая на время запуска GECK? Не самое традиционное сочетание... Наименование упакованного в стандартный BSA-архив файла модели (текстуры в этот момент тебя не интересуют) ты можешь посмотреть в объекте movable static того глобуса, для которого ты хочешь сотворить misc объект. Чтобы GECK позволил испольовать это имя файла при указании модели в создаваемом объекте, файл с таким именем должен существовать и желательно быть NIF-файлом. Поэтому берёшь первый попавшийся NIF, переименовываешь его в нужное имя и кладёшь в нужное место, создавая по пути недостающие папки. Запускаешь GECK, указываешь этот файл как модель новому глобусу - картинка в этот момент будет, конечно, от того NIF, который ты временно подсунул - и сохраняешь мод с указанной моделью. Затем удаляешь временно подсунутый файл вместе с лишними опустевшими папками - но имя файла модели объект уже помнит, и показывать GECK теперь будет уже правильный глобус из BSA. В этот момент можно, если хочется, побаловаться и текстурами, перекрашивая стандартную модель глобуса собственными texture set - но тут, конечно, без распаковки оригинальной текстуры в качестве образца будет трудно - не зная развёртки, рисовать текстуры... хлопотно.
set WeaponInHandRef to player.GetEquippedObject 5 if WeaponInHandRef.GetIsID Weap10mmPistol == 1
Раз уж вопрос возникал - GetEquippedObject выдаёт FormID базового объекта. То, что переменная названа про "Ref", не сделает применение WeaponInHandRef.GetIsID законным... Собственно, нужная тебе проверка должна бы была звучать if WeaponInHandRef == Weap10mmPistol
Кстати кто нибудь пробовал создать Spell с 5 эффектами а условиями прописать очередность их выполнения если такое сделать мне вообще скрипты не нужны
Ну, в некоторых случаях можно сделать один спелл, меняющий видимое действие "по ходу переваривания угощения"... Скажем, если спелл состоит из одночасовых IN+1 и ST-1, двухчасовых ST+1 и AG-1 и трёхчасового AG+1, то в первый час этот спелл прибавляет интеллект, во второй час силу и в третий ловкость (по окончании действия последнего из подэффектов отваливается весь спелл). Ни единого скрипта, натуральный продукт!
Что делать? У меня проблема в том, что при установки многих модов текстуры (мода) в формате bsa, при подключении мода в игре вместо текстур восклицательный знак. Если текстуры просто в папке, то всё нормально.
Когда что-то не так с текстурами - объекты оказываются покрашены в ядовито-сиреневый цвет или "подхватывают" окраску произвольных окружающих объектов (в этом случае при смене угла зрения раскраска "переливается"). Когда что-то так с моделями - вместо объектов отображаются красные квадраты с белым восклицательным знаком (до текстур в этом случае дело вообще не доходит).
Содержимое BSA-архивов автоматически подключается, когда начало имени архива совпадает с полным именем модуля (например, при загрузке модуля "Super Mod.esp" игре будет доступно содержимое архивов "Super Mod Things.bsa" и "Super Mod - Textures.bsa", но не "Super Textures.bsa" и не "Super.bsa"). Если ты, например, переименовал модуль, но не менял имена архивов - архивы "потеряются".
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1386
| Тема: Помощь по G.E.C.K.
написано: 2 февраля 2015, 16:06
| Отредактировано: Ipatow - 2 февраля 2015, 16:10
Чаще всего предметы, находящиеся в контейнерах (в том числе в руках мобов, включая ГГ), не имеют FormID. Когда FormID есть, это присходит из-за того, что недавно объект был объектом мира - самостоятельно существовал в 3D-пространстве игры - и потому являлся Reference с собственным FormID. В течение некоторого времени игра ещё не забыла, что этот объект был Ref - так же, как при входе ГГ в интерьер снаружи не приводит к мгновенному замиранию мира по ту сторону двери, и, например, преследующие ГГ мобы немного погодя вбегут следом в этот интерьер. Эта "краткосрочная память" сбрасывается, например, сохранением-восстановлением игры: записался-восстановился, и мир за дверью замер, а пулемёт в руках потерял FormID.
Возможно, недопонимание вызвано тем, что тип переменной называется REF, хотя её значение может быть любым FormID, хоть номера объектов, к которым применима логика эталон/экземпляр, хоть номера объектов совершенно другой системы - погода, стиль боя, звук, скрипт и т.д.
Насколько я могу судить, тебе совершенно не нужен FormID референса, конкретного экземпляра, находящегося в руках. Тебе нужен как раз FormID базового объекта. Я ведь правильно понимаю, что у тебя там задумка вида? -
SET Weapon TO GetEquippedObject 5 IF (GetWeapoIsAutomatic Weapon) …IF ((GetWeaponType Weapon) > 4) проверяем, достаточно ли силы противостоять отдаче очереди двуручной дуры …ELSE у одноручных скорострелов отдача меньше, но тоже проверим …ENDIF ENDIF IF ((GetWeaponResistType Weapon) = 60) проверяем, достаточно ли интеллекта энергетически разить цель ENDIF и так далее куча проверок - типа достаточно ли снайпер, чтобы осилить оптический прицел, не слишком ли тяжёлая пушка просто в килограммах, в противопожарной ли одежде умник пытается орудовать огнемётом - всё на основании свойств базовго объекта оружия, не интересуясь, из какого мода оружие и как оно называется, не говоря уж про FormID какого-то конкретного экземпляра этого оружия...
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1387
| Тема: Помощь по моддингу
написано: 3 февраля 2015, 01:01
| Отредактировано: Ipatow - 3 февраля 2015, 01:03
Т.е. если вернуть эти значения для нужных фракций как было в оригинале - то их AI станет ванильным? Хочу оставить трусливое зверье
Нет, он поменял смысл режима Foolhardy (как говорится, два плюс два равняется единице для маленьких значений двойки). Не фракциям что-то назначил, а перекосил систему оценки силы противника, на которой построен AI всех мобов. С его поправкой никто в игре не будет "не отступать и не сдаваться"... Любая встреча какого-нибудь патруля стальных братцев с бандой рейдеров должна выглядеть комически: оба отряда развернутся и в ужасе убегут друг от друга.
Можешь попробовать вернуть fConfidenceFoolhardy нулевое значение - возможно, остальные исправления не так чудовищны.
Как создать в сетке навмеш "розовые" ребра ячеек, позволяющие НПС спрыгивать
Navmesh Creation Workflow: Drop Downs You can mark certain edges as safe places for NPCs/Creatures to jump down from a ledge to a lower area. Be warned that they are very trusting, and may jump down anywhere that has a drop down marker, even if it could hurt or kill them.
Select the top and bottom edge (order not necessary) and the press "P" Drop Downs are marked by a pinkish purple marking on the top and bottom connected edge. Only use drop down markers in places that NPCs/Creatures can safely jump down. It's a good idea to have the lower edge be in front of the top edge, otherwise the NPC/Creature can get stuck trying to drop down. Finalizing may sometimes wipe this information, and may have to be done after you finalize. Be sure to check your dropdowns after finalizing. Good for allowing NPCs/Creatures to follow player instead of running around, taking the long way. Good for allowing followers to keep up with you.
Т.е. оружие у них есть, но оно левитирует рядом с рукой и непись, похоже. считает, что его нет. Кто-нибудь сталкивался с подобным? как это фиксить?
Да, при этом застревании оружия NPC полностью небоеспособен (хотя при штатном значении Foolhardy они убегать не убегают - добросовестно подбегают к врагу и пристально смотрят ему в глаза). Такой эффект получается при использовании сочетания модов, когда один из модов невовремя для другого (иногда прямо для себя) исполняет функцию AddItem. Применение этой функции к кому угодно кроме главного героя и без того вызывает проблемы, переклинивание анимации взятия в руки оружия это уже так, вишенка сверху...
Поскольку сплошь и рядом это эффект сочетания модов, то вычисление виновника путём отключения модов по одному не очень эффективно...
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1390
| Тема: Помощь по моддингу
написано: 5 февраля 2015, 16:50
| Отредактировано: Ipatow - 5 февраля 2015, 17:25
Т.е. проблема вызывается модами, добавляющими оружие в левел-листы? Или любые предметы? Это касается только НПС или и торгашей? С добавленным оружием только пара модов, а вот с разным лутом - еще с десяток. Кое-что я б мог порезать без особого ущерба, скажем, лут - если это поможет.
Виновна одна из функций, вызывающих автоматическую переоценку экипированного имущества - чаще всего это функция AddItem, добавляющая какой-то предмет в инвентарь моба (не обязательно экипируемый - бутылочная крышка, падающая в карман при выпивании газировки, может спровоцировать ровно тот же эффект), но, например, SetCombatStyle тоже вызывает переоценку экипировки (формально она может перенадеть только оружие.. ну, этот глюк именно с оружием... но функция исполняет геморрой по полной программе, передёргивается всё надетое, не только оружие). К левельным объектам проблема прямого отношения не имеет. Торговцев проблема касается тогда, когда что-то при помощи AddItem добавляется в карманы торговца, а не в один из торговых сундуков.
Любой скрипт, в котором AddItem выполняется в адрес моба кроме ГГ, или в котором вызывается SetCombatStyle, может заклинить оружие. Баг этот недокументированный, и точной информации о том, как именно "застревает" анимация, нет. Есть куча противоречивой эмпирической информации (я делал специальный тестовый мод, который у меня безотказно заклинивает-расклинивает анимацию, и хотя у некоторых игроков он действует так же, у других анимация не "застревает": оружие дёргается, но блокировки не происходит). И есть достоверная информация о том, что каждая переоценка экипировки вызывает повторное наложение объектных эффектов надетого, чего самого по себе достаточно, чтобы отказаться от любых модов, использующих AddItem в адрес инвентаря мобов. К сожалению, это очень многие моды - и пример с бутылочной крышкой саму оригинальную игру включает в их число
Не совсем так, я хотел для каждого стандартного оружия прописать отдельные конкретные требования. И за неимением идеи лучше, решил сделать это "по грязному", просто начал перечислять все пушки по виду
Можно то же самое очень по-разному реализовывать. Например, сгруппировать оружие с одинаковыми требованиями. Разнообразие требований, наверное, меньше разнообразия оружия?
IF (Player.IsWeaponInList ListOfST5Weapons) && ((Player.GetAV Strength) < 5) SET UnequipFlag TO 1 ShowMessage YouNeedST5 ENDIF IF (Player.IsWeaponInList ListOfST3Weapons) && ((Player.GetAV Strength) < 3) SET UnequipFlag TO 1 ShowMessage YouNeedST3 ENDIF ... IF UnequipFlag SET Weapon TO Player.GetEquippedObject 5 Player.UnequipItem Weapon ENDIF
Т.е. я так понял, что окончательно найти источник бага и пофиксить его (в т.ч. выбрасыванием глючных модов) нельзя?
Найти и устранить причину проблем возможно, но хлопотно (надо анализировать все скрипты всех модов и исправлять те, которые суют палку в колёса). Методом отключения модов по одному можно добиться того, что симптом (застревание оружия посреди анимации) перестанет проявляться; сама проблема там внутри останется, но когда её не видно, её можно игнорировать.
С силой проблем нет, там диапазон от 2 до 10 максимум, а вот со скиллами? Там разброс очень большой, да еще и где-то взрывчатка, где то без оружия, рукопашное и т.д. Можно конечно разделить на SmallGuns 25 SmallGuns 50 SmallGuns 75 SmallGuns 100 и так же с остальными, но это довольно скучно. И я пытался уйти от таких железобетонных значений (25*n)
Возможно, отказ от железобетонных ступенек и придаст игре что-то вроде реализма, но я что-то сомневаюсь... Скажем, если бы то же было сделано для замков/терминалов - их в игре тысячи, и там разброс требуемого для взлома скилла не выглядит странно. Но видов стандартного оружия не больше сотни, считая уникальное, считая не помещённое в оригинальную игру, считая все эти перочинные монтировки - ну так и какой резон устраивать "плавную степенчатость"? Игрок возьмёт в руки за всю игру с дюжину видов оружия, так что неступенчато просто не выйдет. А раз всё равно ступеньки - почему не 25-50-100?... Ну, это философия.
Создаёшь один формлист и заносишь в него всё оружие. Создаёшь другой формлист и заносишь в него такое же количество специально созданных мусорных предметов (в их свойствах не нужно прописывать ничего, кроме цены - они в игровой мир не попадают и работают числами; цена каждого предмета равняется <требуемая сила>*1000 + <требуемый скилл>).
SCRIPTNAME MyScriptName REF Weapon REF tmpRef SHORT Index SHORT Price SHORT Check1 SHORT Check2 SHORT Skill BEGIN GameMode …SET Weapon TO Player.GetEquippedObject 5 …SET Index TO ListGetFormIndex WeaponsList Weapon …IF Index == -1 ……RETURN …ENDIF …SET tmpRef TO ListGetNthForm PriceList Index …SET Price TO GetItemValue tmpRef …SET Check1 TO Price / 1000 …SET Check2 TO Price - (Check1 * 1000) …SET Skill TO GetWeaponSkill Weapon …IF Check1 ……IF (Player.GetAV Strength) < Check1 ; мало силы ……ENDIF …ENDIF …IF Check2 ……IF (Player.GetAV Skill) < Check2 ; мало скилла ……ENDIF …ENDIF END
Главный корень проблемы, скорее всего, в повышенном значении параметра uGridsToLoad (9) в Fallout.ini.
"Скорее всего"? Ты ведь не хочешь сказать, что бросаешься словами вроде "ничего не помогает" и "поделать с этим ничего нельзя", даже не попробовав загрузить проблемное сохранение на чистой игре (без модов и вивисекции настроек)?
Если пробовал, не писал бы про uGridsToLoad - оно в этом случае ни в чём не повинно. Опять же, "чистая" игра и игра, в которой отключены дополнительные модули (а все риплейсеры в Meshes, Textures и т.д. так и лежат), не совсем одно и тоже...
выставить приблизительные значения по осям X Y Z. Можно сориентироваться по координатам соседнего объекта.
Я обычно не стесняюсь активного содержимого в модах (даже если это один раз отработавший квестскрипт, который тут же свой квест и остановил)... Поэтому если мне не надо строить что-то долговечное, проблему укладывания предмета в мир я решаю при помощи PlaceAtMe (а если надо ну непременно на коврик положить штуку - ну ещё MoveTo в коврик)
А в Вегасе они разве стоят косо именно влево-вправо?
В этом, как я понимаю, движок вегаса не отличается... Флажков в ModelList два - Tilt Front/Back и Tilt Left/Right. В третьем фоле у муравьёв, тараканов, скорпионов, робомозгов и сентри-ботов поставлены оба, у браминов, кентавров, собак, кротокрысов и яогаев только вперёд/назад. Что из этого присутствует в вегасе - вероятно, в таком же виде и присутствует.
угол актёра, как я понял - это как повёрнут его "взгляд" вокруг какой-либо оси. Вокруг игрека он не повёрнут никак.
Гмм... Вероятно, я ошибся в предположениях. У меня была такая мысль, что там предоставляется какая-то избыточная информация... Строго говоря, направление это штука совершенно не трёхмерная. Она двумерная. Как астроному для однозначного указания на звезду (в определённый момент с определённой обсерватории, конечно) достаточно дать две цифры - азимут и угол возвышения - и дополнительная информация может только что-то из этого продублировать... Частный вывод - авторы игры напрочь не подумали, закладывая три поля под информацию о направлении.
В целом задача шибко хорошего решения не имеет... И потому, что сами персонажи состоят из небольшого количества частей (пятка и плечо - одно и то же, и потому предмет, надетый на пятку, будет надет и на плечо). И потому, что ко всему, что ниже шеи, логика "конформуляции" неприменима - это удручает уже потому, что и просто рубашка не подстраивается под форму тела (сделал модель тела с мощными бицепсами или чуть другой формы бюстом - изволь теперь все рубашки/пиджаки/шубы "перешивать") - и само собой разумеется, что попытка надевать одежду по частям приводит к тому, что части друг в друга "проваливаются". Да, моддерам (вышеназванный мод тому образцовый пример) удалось подобрать комбинации частей одежды, которые друг с другом худо-бедно сочетаются. Но только друг с другом, а не с какой-то ещё одёжкой - потому что универсальное решение невозможно...
в ГЕКК, если ты удаляешь какой-то предмет\объект из игры или списка предметов, и если он где-то используется (скрипт, списки, квесты, и т.д.), тебя предварительно предупредят об этом.
Предупреждать умеет и TES5Edit, но чем бы модуль ни редактировался, всегда остаётся возможность существования зависимых модулей, которым удаляемый объект жутко нужен, но, к несчастью, эти модули сейчас в редактор не подгружены и потому поднять панику не могут. GECK, конечно, эту проблему решает хладнокровно - попросту запрещает редактировать ESM и запрещает назначать мастерами ESP
TES5Edit!? Оу, я с ним не работал почти..не знал, что он может работать с файлами Фоллаута)
Может показаться странным, но это его настоящее название... Под именем (переименование exe-файла и приложение файлика про "hardcoded") FNVEdit он становится весь из себя вегасовский редактор, под кличкой FO3Edit он уже третьему фолу друг товарищ и брат...
О его предупреждениях - не всегда предупреждения выдаются именно в момент выполнения какого-то действия, но там есть отдельная операция в его меню "проверить на корректность", и вот она все эти оторванные хвостики найдёт и предъявит.
А как отменить рекомпиляцию скриптов? Такой способ подойдет? После того, как были рекомпилированы все скрипты игры. Это нужно исправить: - FNVEdit, открываем наш плагин.
...выбираем пункт меню Remove "Identical to Master" records и одним кликом сносим все эти копии.
для некоторых целей звуковые файлы должны содержать какие-то дополнительные данные (которые ещё неизвестно как туда вносятся). Например, такие данные должны быть у зацикленных звуков (loop) типа жужжания потрошителя и треска пулемётов.
Не помню, кто мне это рекомендовал, но как будто бесплатный Wavosaur умеет расставлять нужные маркеры внутри WAV.
Я заметил в некоторых оптиках - этот формат стоит третьим- и светится плохо. Внизу когда стоит - вроде лучше.
Если ты подумал, что смысл текстуры (что она делает) заложен в неё саму, а то, какая по счёту это текстура, неважно - ты совершенно не понял устройство текстурного набора. Светиться может только третья текстура (glowmap - третий элемент набора и только третий), и то не для всех шейдеров (те, которые третью текстуру интерпретируют не как glowmap - а, например, как фильтр перекраски причёски - свечение вообще не поддерживают).
Я встревожен. Я не могу придумать такую ситуацию, в которой всё было бы хорошо, но при этом Каин полтора месяца не мог бы выйти сюда на связь. Способа узнать, что там и как, у меня нет. Возможно (надеюсь), "не всё хорошо" - всё-таки невелика беда.
И ещё один момент. Когда дочка-пятиклассница вышла погулять и что-то её уже месяц никто не видел - это веский повод для паники. Но Каин - большой даденька. Давайте доверять его способности решать проблемы и принимать решения.
как сделать чтоб главный герой при сильном перевесе не мог вообще двигаться
Обычно это делают при помощи скрипта, который непрерывно смотрит за перегрузкой... Часто поборники реализмов при этом палку перегибают. Вспоминается прецедент про игрока, который нечаянно взял из шкафа сотню миниганов - ГГ упал, потерял сознание... А в целях ультрареализма там ещё драконовские ограничения на сохранение игры были, и из-за них срубать игру было жалко... В общем, только через пару суток реального времени удалось выбросить из кармана эти две тонны миниганов, ГГ в отключке чуть не помер от жажды (зато выспался).