Возможно прописать моему объекту стандартную модель не распаковывая bsa архив?
Гм. Имеется в виду - использовать в GECK диалог выбора модели, не имея файл модели, лежащий в нужном месте? Если нужно только выбрать файл - достаточно, чтобы в момент выбора там лежал хоть какой-то NIF, не обязательно тот, который и будет на самом деле. Положить файл в нужную папку с нужным именем, выбрать его в диалоге, после чего удалить этот временный NIF - при дальнейшей работе GECK прекрасно разберётся: раз нет в папке файла и даже самой папки, подгрузим из BSA. Можно обойти использование диалога, просто прописав путь к файлу с помощью FO3Edit - тот не интересуется, есть ли на месте файл сейчас, он тебе верит, что когда будет пора работать, файл уже будет в том или ином виде.
Если тебе нужно переопределить текстуры - тогда на время заполнения полей диалога класть на место надо не какой попало NIF, а настоящий (или по крайней мере такой, у какого текстурированным блокам даны точно такие имена, как у настоящего из BSA). Это тоже можно сделать в FO3Edit - но поскольку для этого надо знать, как именно названы и пронумерованы блоки, а чтобы их имена и номера вручную писать в "список поправок" модели, тебе скорее всего придётся самому заглядывать в NIF - а значит, он всё равно будет для этого вытащен из BSA, и проще временно положить его самого на законное место и расписать текстурные наборы в стандартном диалоге GECK.
найти оригинальную модель вашего оружия, и выкачать ее (из BSA архива). Затем, открыть модель через НифСкоп. Если новая текстура для оружия уже готова - Вам стоит лишь добавить ее (как бы "наложить") ее на оружие. И сохранить новую модель.
Вообще-то, так делают только тогда, когда на модель нельзя наложить текстурный набор - например, зверушку можно перетекстурировать только явным вписыванием новых текстур в NIF - а винтовку сам GECK велел перекрашивать, не меняя модели! Ну да, в момент привязки новых текстур NIF (совершенно стандартный, вытащенный из родного BSA) должен лежать отдельным файлом - но когда редактирование объекта закончено, NIF можно удалять, дальше все его прекрасно найдут и в BSA.
Сначала он пишет, какой файл он сейчас будет подгружать (в моём примере я спрятал QJ13-kikaiEq.esm, чтобы случилась эта ошибка), а следующей строкой - "ой, а файла где-то и нету". Если файл добавлен не напрямую в список, а подцепляется как в этом примере в качестве мастер-патча к другому патчу - перед этим написано, кто именно заказал загрузку отсутствующего файла (в моём примере его пытался грузить QJ13-Waifs.esm).
Вроде, ничего такого, кроме флажка Medicine их не отличает от прочих предметов из раздела "Помощь", однако, установка этого флага всё равно не даёт возможности лечить переломы морковкой, а лучевую болезнь - стаканом доброго вина.
Флажок "Лекарство" означает, что числовые значения в базовых эффектах будут скооректированы в соответствии с уровнем врачебного навыка. Поэтому алкоголь должен иметь этот флаг - все же знают, что врачи напиваются гораздо суровее, чем не обезображенные медицинским обучением люди!
О том, что стимпаком является именно стимпак, а не морковка, игра узнаёт из Default Objects (см. меню Gameplay в GECK). Как и о том, кто у нас "рад-Х", кто "антирадин", а кто "загадочный незнакомец"...
как и с помощью какой програмы изменить указанный в .esp файле мастер-файл?
Гибко и аккуратно это можно сделать в FNVEdit. Добавить мастера, вычеркнуть, исправить имя файла на другое...
Частично это можно исполнить и в GECK. Добавить мастера: просто подгрузить его при редактировании патча. Удалить мастера: Меню File -> Data, выбираем нужный патч, выбираем имя мастера в списке его мастеров, жмём кнопку Delete (некоторую пикантность придаёт то, что тебя не спросят, хочешь ли записать изменения на диск, или не беспокоит ли тебя то, что ты, возможно, вообще не этот патч собирался редактировать - кнопку нажал, всё! файл на диске исправлен!).
тот мод, который "МояРаса.esp", разумеется, должен быть мастером
Он должен быть в списке мастеров - это совершенно точно, поскольку ссылки на него начинаются с номера адресуемого модуля в этом списке. Но если автор совершенно точно понимает риск, то этот модуль не обязательно должен быть ESM-модулем. В момент сохранения редактируемого модуля GECK корректно сохраняет все ссылки на сторонний ESP-модуль, он просто не записывает имя этого модуля в список мастеров, и при следующей загрузке модуля в GECK такие ссылки будут срублены как ведущие в неизвестность. Но! Если сразу после выхода из GECK взять FNVEdit и добавить в список мастеров своего модуля тот ESP-модуль, то результирующая конструкция будет и корректно работать в игре, и правильно загружаться в GECK без потери данных (хотя при выходе из GECK имя этого мастера снова будет потеряно, и нужно будет снова поспешно вписывать его имя в список, пока всё не погибло).
Такое решение не очень правильно - но в некоторых случаях другого приемлемого решения нет. Например, когда ты хочешь пропатчить совершенно чужой модуль, а переделать его в ESM нельзя и потому, что он чужой, и потому, что неизвестно сколько модов обращаются к нему по имени (скажем, IsModLoaded "FO3 Wanderers Edition - Main File.esp" - в вегасе то же самое, просто первый пример попался из FO3).
начинаю читерить , уже просто стала злобным читером. Меня это растраивает.
Можно сделать маленький мод, который будет мониторить нахождение игры в менюмоде консоли - и обнаруживая консоль, тут же выполнять безпроверочный выход из игры. Дополнительный бонус - кнопка консоли будет мгновенно убивать игру даже в самых глюкавых ситуациях!
так, чтобы при взломе 5 терминалов добавлялась наука + 1?
Вот скрипт, который за каждые 10 баллов суммарной сложности взломаных терминалов добавляет науку:
Code
SCRIPTNAME HackExpQuestScript
REF HackTarget SHORT HackLevel SHORT OldStat SHORT CurrentStat SHORT HackExp
BEGIN MenuMode 1055 SET HackTarget TO GetCrosshairRef SET HackLevel TO HackTarget.GetLockLevel END
BEGIN GameMode IF HackLevel SET CurrentStat TO GetPCMiscStat "Computers Hacked" IF CurrentStat > OldStat SET OldStat TO CurrentStat SET HackExp TO HackExp + HackLevel IF HackExp > 9 SET HackExp TO HackExp - 10 Player.ModActorValue Science 1 ENDIF ENDIF SET HackLevel TO 0 ENDIF END
Galko уже правильно сказала. Я когда-то обнаружил, что Actor Value прописываются в ESM/ESP - записи вида AVIF - очень обрадовался и решил, что можно добавить новые. Через GECK, конечно, добавить такие записи не дают, я добавлял при помощи лома, кувалды и вспомогательной матери... В общем, всё феерически взрывается при запуске - хоть игры, хоть GECK. Записи AVIF позволяют снабжать существующие AV оформлением, но сами AV отлиты в бронзе и к их списку ни прибавить ни убавить; роль AV тоже нельзя поменять - скажем, AVMood [AVIF:00000518] игра ни в каких осмысленных целях не использует, но и ты ни к какому доброму делу этот AV пристроить не можешь...
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №342
| Тема: Помощь по моддингу
написано: 18 сентября 2012, 03:02
| Отредактировано: Ipatow - 18 сентября 2012, 03:03
возможно ли отследить, что игрок что-то купил или продал торговцу?
Не очень. Как минимум потому, что по ходу торговли предметы могут перекладываться слева направо и справа налево неоднократно - причём они именно перекладываются из одного инвентаря в другой. При согласии на сделку второй инвентарь каждого из торгующих падает в первый, при отказе эти вторые падают в первые инвентари напротив, но в любом случае это уже не перемещение предметов из инвентаря в инвентарь, а слияние инвентарей. Поведение OnAdd и OnDrop по ходу бартера трансцендентально и сопровождается взрывами и пожарами.
Почему "не очень", а не "нет" - потому что ты с некоторой натугой можешь по входу в менюмод бартера переписать всё, что есть у ГГ (для скрипта существует ровно один вид массивов - формлисты - но, извратившись, можно это обойти), а по выходу в гейммод ещё раз пересчитать и проверить, изменилось ли что-то.
Можно поподробней? Желательно с примерами (можно с использованием FOSE).
Ну, без FOSE просто невозможно определить, что лежит в карманах у ГГ (100% если оно из заранее неизвестного мода). В цикле (функции Label и Goto) перебираем (функции GetFirstRef по типу 201 и GetNextRef) инвентарные предметы, лежащие в кармане у ГГ заносим в список (понадобится весь набор функций, начинающихся с List), их количество симулируем количеством токенов в отдельном контейнере, их прочность отражаем прочностью этих токенов - так запоминается состояние инвентаря. Сравнивается аналогично. Натужно, извращённо, но реализуемо...
GECKMan, параметры Spread- максимальный разброс. И Min Spread- минимальный разброс. Это во вкладке Game Data, в настройках самой пушки. По идее, оба в ноль.
Любопытно. На GECK-вики есть "каноническая" формула, согласно которой разброс оружия зависит от 14 коэффициентов, не считая состояние оружия (хотя устанавливаемые основным ESM игры значения обнуляют влияние состояния оружия)... Там же есть и любопытные теории, пытающиеся привязать к этой формуле те самые "разброс" и "минимальный разброс", которые входят в число параметров, задающихся для конкретного оружия. Некоторые проверки при экстремальных значениях некоторых коэффициентов как будто показывают, что можно как-то добиться, чтобы эти параметры действительно какое-то влияние на меткость оказывали...
Конкретно это означает, что параметр Spread (разброс) не используется вообще (примерно так же, как можно задать лампочку в свойствах прожектиля, но это никак на игре не отразится - обо что первым делом бьются каждый раз пытающиеся изобрести ракетницу - параметр можно задать, но он будет пригнорирован). Параметр Min.Spread (минимильний разброс) с каким-то коэффициентом прибавляется к разбросу, расчитанному по той формуле - при этом учитывая, что значение в градусах, и значение маленькое - заметить такой разброс можно только при снайперении с дальних дистанций, а никак не при стрельбе из пистолета с десяти шагов. Иначе говоря, эти параметры самого оружия (теоретический разброс оружия при его идеальной исправности) оказывают эффект, незаметный по сравнению с прочими компонентами формулы.
странное поведение погоды (климата, течение дня - не знаю, как правильно)
Я никогда не трогал настройки этих объектов, но твёрдо помню, что моменты рассвета и заката, а также начало и конец соответствующих сумерек являются константами климата (когда-то я мечтал сделать разницу в продолжительности дня между зимой и летом на широте Вашинтона). А освещённость этих самых day/night/sunrise/sunset по десяти позициям цифирками плюс имиджспейс - константы погоды...
только с использованием НВСЕ, и то не очень уверен.
Ну, для неуверенности оснований нет, скрипт экстендер позволяет по нажатию-отпусканию кнопок исполнять что угодно, включая, естественно, и перемены в инвентаре-экипировке. Другое дело, что сделать элегантную эргономичную удобную систему может быть трудоёмко - но труд тут именно в оформлении, вся функциональность имеется.
А оно точно унаследовалось? Климат привязывается к WorldSpace и Cell (если Behave Like Exterior), но погода в половине случаев раздаётся через Region, и вот тут могла получиться накладочка...
если бы еще при удалении из инвентаря эти назначения не сбрасывались
Они и не сбрасываются. Кнопка помнит RefID привязанного предмета. Предлагаешь, чтобы кнопка догадывалась, к чему перепривязаться, когда этот RefID удалён? Она ж так догадается, что игроку после этого неделю икаться будет!
С помощью какой функции можно удалить NPC? / С помощью какой функции можно заспаунить NPC?
Удаляется экземпляр моба примерно так же, как и экземпляр чего попало, находящегося в игровом мире (а не в ящике или в кармане) - Disable и MarkForDelete (можно рискнуть сразу DeleteReference, но запросто бабахнется). Сотворяется экземпляр моба, как и экземпляр чего угодно в мире, через PlaceAtMe.
Для тех, у кого не работаетMarkForDelete (или работает при следующей загрузке) - обращу ваше внимание на фразу в описании функции: It will not work on enabled references. Если надо что-то оперативненько удалить - сначала Disable, только потом MarkForDelete...
подскажите пожалуйста как сделать чтобы я продавал дешево, а покупал дорого. Пробовал изменить цену предмета, но цена оставалась неизменной. Может как-то бартер подправить?
Если не хочется править всех торговцев во всех модах, меняя в их диалогах вызов ShowBarterMenu, резонно посмотреть на Barter System Formula - оно влияет на всю систему бартера целиком. Стоимость предмета поменять, конечно, можно - при помощи SetItemValue - но это именно опорная стоимость предмета, из которой по бартерной формулы вычисляются цены покупки и продажи, а не какая-то из этих цен.
И так далее. Но ведь тогда взрывчатка будет увеличиваться каждые 5 секунд (т.к. квестовый ГеймМод)
Во-первых, квестовый скрипт не обязательно делает один оборот в 5 секунд - ты можешь поставить и 0.1 секунды, и 100 секунд... Во-вторых, проблему c повторной выдачей скилла ты создаёшь сам. Почему бы не написать что-то в духе
Code
SCRIPTNAME DisarmerQuestScript SHORT Awarded BEGIN GameMode IF (GetPCMiscStat "Mines Disarmed") > (Awarded * 10 + 9) SET Awarded TO Awarded +1 Player.ModActorValue Explosives 1 ENDIF END
Вис, разумеется, этот блок вертится без передышки. Как только количество обезвреженных мин набрало очередной десяток (на самом деле я бы там сделал сильно тормозящую в росте функцию - в идеале логарифм - иначе первая же тысяча обезвреженных мин отсыплет игроку +100 - но это неважно и это тебе решать), очко в скилл выдаётся и одновременно меняется значение, с которым сравнивается число разминированного. Ты замечаешь, что и левая, и правая часть сравнения увеличиваются?
создал уникальную шляпу и очки, а они лежат на плече. Как исправить?
Понятно, что совершенно лень читать то, что прямо тут в этой теме писалось до тебя - почти уж двести страниц, рука бойцов листать устала. Но в картотеке-то информация концентрированная, и если там ты не видишь ответ на твой вопрос, то объяснять это тем, что тебе было лень даже прочитать оглавление - это как-то уже выходит за рамки вежливости
Масштаб времени - псевдо-глобальная-переменная TimeScale, которой можно присваивать значение как любой другой. По умолчанию там, помнится, 30 (т.е. две минуты реала - час игрового мира, 48 минут - сутки).
есть еще отдельная програмка, позволяющая сливать два файла в один.
Эта утилита - единственное автоматическое средство решения задачи. Ручная правка, конечно, всегда остаётся бронепоездом на запасном пути, но всё-таки выкатывать броенпоезд это самая крайняя мера... Примерно как в нифскоре можно заниматься 3D-редактированием, но любое другое решение лучше этого способа.
имелось ввиду именно чтобы вокруг все медленно двигалось.
Тип этой псевдопеременной - Float. То есть значения наподобие 0.125 (время в игре в восемь раз медленнее реального времени, в котором двигается ГГ) совершенно законны.
Как то оно не замедлело время... Наверно вы меня не поняли. Нужно что-то этакое как "замедлителя времени" я попробовал сделать как вы сказали, но время не замедлилось. Есть такой мод, называется "bullet time" наподобие этого мне нужно.
Я понял, но поскольку сам никогда не интересовался реализацией замедленного движения, я перепутал два временных механизма. Скачал, посмотрел. Bullet Time построен на функции SetGlobalTimeMultiplier.
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №359
| Тема: ВОПРОСЫ по моддингу
написано: 25 сентября 2012, 03:17
| Отредактировано: Ipatow - 25 сентября 2012, 03:19
Стандартную формулу урона изменить нельзя, хотя можно изменить входящие в неё коэффициенты. Дополнительный урон, добавленный оружейным эффектом, расчитывается как захочется автору эффекта.