То есть это только тщательной баланскирокой эффектов от уровней и множителем опыта?
Ну, это уже рассуждения про метафизику игры... На мой взглад, правильаня система получения перков должна быть ориентирована на события и задания, а не на абстрактный сферический левел в вакууме (если оставить в стороне перки, для чего нужны уровни и сколько их нужно? штук двадцати хватит даже самому жадному, а десяти должно быть достаточно для нормального прохождения всей игры)... Впрочем, оригинальная игра построена не так, моддеры в основном тоже пошли по лёгкому пути следом за разработчиками... Так что напрашивающееся здравое решение тут - поднять предел цифры уровня до нескольких сотен, а требования по опыту для получения уровня и бонусы, которые уровень даёт (плюс жизнь там всякая, плюс грузоподъёмность и т.д.), урезать до неотличимого от нуля состояния. Получим море перков за море уровней, но хотя бы не покалечим игру противоестественно высокими параметрами ГГ.
Каким образом можно проверить, присутствует ли в одной с ГГ ячейке НПС, являющегося компаньоном ГГ? Компаньон может быть любой.
Вариант через GetFirstRef не проходит почему то.. Может есть вариант попроще?
Вместо экстендеровского сканера getfirst/getnext можно использовать "сканер для бедных" (невидимый взрыв в центре ГГ - радиусом три километра, проходящий сквозь стены, не наносящий урона и толчка, но проскриптованый), но смысл тот же: придётся спросить каждого из присутствующих, не компаньон ли он.
как принудительно заставить персонажа использовать определенное оружие?
Уточни, что ты имеешь в виду. Например, назначение функции UseWeapon именно "заставить персонажа использовать определённое оружие" в адрес определённой мишени...
есть идея для целой серии или коллекции броников аля Масс Эффект
Вспоминая дошкольное детство... Девочки во дворе очень любили наряжать своих кукол в разнообразное... Недавно, к слову, слышал, что мы, ModGames, самый могучий моддерский ресурс в стране! Ну, с этим, конечно, найдутся желающие поспорить даже в нашей нише (каждый год чуть ли не десятками выходят игры "эта игра убьёт WoW" - наверняка так же хватает и сайтов "мы круче MG"), но неважно даже если кто-то из них окажется и прав. Спору нет, в нашем болоте мы кулик знатный, но если сравнивать всякие наши фолаутские скайримы с, например, Sims - клич "мы гиганты моддинга" как-то внезапно застрянет в горле. Потому как в результате сокрушительной победы женщин в борьбе за свои права - тётенек, наряжающих в компьютере кукол, намного больше, чем дяденек, стреляющих в нём зомбей. Конечно, и тётеньки стреляют, и дяденьки гламурными брониками аля Масс Эффект увлекаются, но честная статистика демонстрирует выразительную корреляцию... Гмм... К чему это я... Ах да. Мы тут очень толерантны! Если кто-то хочет в фолауте играть в Sims или тетрис - мы такую ориентацию совершенно не осуждаем! Кесарево лучше бы кесарю, но если приспичило прямо тут - не надо стесняться!
А насчёт идей... У меня есть несколько идей в общих чертах - про что хорошо бы написать книгу, снять фильм... Никто не хочет взяться?
В простейшем случае нужно просто изменить один бит в файле с нуля на единичку - флажок ESM в заголовке модуля... Это можно сделать кучей разных способов, от редактирования в Hex-редакторе до использования FNVEdit или TESsnip из FOMM, хотя у тебя как будто этих инструментов нет... Впрочем, всегда остаётся GECK. Переименуй файл в .esm, открой его в GECK для редактирования (выбери активным при открытии) и, ничего не делая, сохрани - флажок мастера совершенно корректно установится. Снять его таким способом нельзя, но задача сейчас ведь и не снимать
Можно ли что-то сделать, кроме использования бэкапа???
Резонно по крайней мере сравнить последний сохранявшийся esp с бэакпом. Если за последний сеанс было сделано много, потрудиться-поразбираться должно быть не жалко времени.
Редактирую локацию: добавляю и убираю строения, но ничего не переименовываю. Версия Fallout NV русская. Вопрос. Будет ли название (имя) локации, подвергшейся изменениям, в английской версии отображаться в виде крокозябры или она будут отображаться по английски?
Если это интерьер (Interior Cell), то твой мод неизбежно включает сам объект CELL, и именно Full Name объекта твоего мода будет показываться, в частности, ведущими туда дверями. Если это локация в мире (Exterior Cell), то результат двоякий. Во-первых, в этом случае в твоём моде будет объект WRLD для соответствующего Worldspace, и именно его Full Name будет отображаться где положено - мир ты хочешь не хочешь переименовал - но если при этом ты не трогал регионы, дающие имена частям мира, то в этом аспекте ты "одеяло на себя не перетянул", и назначенное регионами название локации будет таким же, как в отсутствие твоего мода.
Станет ли имя объекта (например пистолета) в англ. версии отображаться в виде абрыкадабры, если я менял его характеристики (вес, урон), пользуясь рус. верс. игры?
Да, станет. Причём в отличие от локации, объект которой ты на самом деле и не хотел менять, просто приходится объект включать в мод, тут исправления объекта - цель, а не побочный эффект. То есть, загрузить какой-то мод после твоего, чтобы он переименовал пистолет обратно, не резон - он изменит на "как было" и нужные изменения. Потому либо делать ещё одну версию модуля с названием латиницей, либо пересматривать логику мода и делать изменение динамическим вместо статического. То есть не исправлять характеристики пистолета в модуле, а создать квест со скриптом вида
Код
SCRIPTNAME MyQuestScript BEGIN Gamemode IF GetGameLoaded SetWeight <новый-вес> <имя-базовго-объекта> SetAttackDamage <новый-урон> <имя-базовго-объекта> ENDIF END
как узнать названия оригинальных иконок оружия в Пип-бое. Заменил некоторые стволы, хотелось бы заменить часть дефолтных иконок.
Если ты используешь GECK, то в параметрах оружия на закладке Art and Sound это поле Inventory image. Например, для Weap10mmPistol там записано Interface\Icons\PipboyImages\Weapons\weapons_10mm_pistol.dds (Data\Textures само собой подразумевается, указывать не нужно).
проблемы явно с модом Project Beauty, если его убрать то глюков нет
Ты уверен, что версии FWE, PB и патча их совместимости (ты ведь его установил?) соответствуют друг другу? Не установлено ли что-то ещё, конфликтующее с PB?
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1491
| Тема: ВОПРОСЫ по моддингу
написано: 27 июня 2015, 21:00
| Отредактировано: Ipatow - 27 июня 2015, 21:22
Можно ли как-нибудь на спуске лестницы убрать этот кусок земли? Или придется создавать несколько квадратов земли и ими окружить выступающие из-под земли детальки?
Не вижу выступающих деталек Если тебе нужна в этом месте яма с отвесными краями - выкопай в этом месте яму с отвесными краями. Совсем вертикальных бортиков не добиться, но толщина кирпичной кладки тут и не требует строгой вертикали...
я и предположил, что GetSecondsPassed посчитал секунды от первого запуска
Он считает от последнего (при первом вызове ноль). В твоём выражении там используется ещё значение lastTimer, а поскольку это зверь науке неизвестный, невозможно предсказать, какие значения в итоге может принимать timer.
Поставим где-то в мире активатор с моделью кухонной плиты. Поставим на него сверху активатор по имени MyPot с моделью кастрюли. Первому дадим скрипт
SCRIPTNAME MyStoveScript REF MyChef BEGIN OnActivate SET MyChef TO GetActionRef IF MyPot.GetDisabled IF (MyChef.GetItemCount PotCookingMetal) MyChef.RemoveItem PotCookingMetal 1 MyPot.Enable ENDIF ENDIF END
Второму дадим скрипт
SCRIPTNAME MyPotScript REF MyChef BEGIN OnActivate SET MyChef TO GetActionRef MyChef.AddItem PotCookingMetal 1 Disable END
Тыкаем в пустую плиту - кастрюля из кармана ставится на плиту. Тыкаем в кастрюлю - забираем в карман. С бронёй в простейшем случае всё аналогично и можно этим ограничиться, но для навороченности следует при выкладывании брони из кармана запоминать её износ (и при помещении в карман выдавать изношенную); при наличии нескольких экземпляров брони в кармане нужно как-то выбрать, которую из них вешать на вешалку.
Со вторым скриптом при сохранении проблем не было, но с первым скриптом при сохранении выдал ошибку на 8 строке: Syntax error.Invalid reference 'xxxxx' (only object references and reference variables are allowed in this context). С чем это может быть связано?
Чтобы скомпилировался "скрипт плиты", необходимо, чтобы экземпляр "кастрюли" (референс) уже был в мире и имел имя MyPot, поскольку скрипт дважды обращается к нему по этому имени. Кроме того, этот референс должен иметь флажок Persistent (всегда материализован) - строго говоря, это требование для перестраховки (вдруг модмейкер решит разместить плиты по всей пустоши, чтобы включать кастрюлю у себя дома - ведь когда ГГ не возле кастрюли, она будет дематериализована без этого флажка и вызов функции феерически обломается), но требование такое.
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1496
| Тема: Помощь по моддингу
написано: 4 июля 2015, 15:41
| Отредактировано: Ipatow - 4 июля 2015, 15:42
Как я понял, должно быть два экземпляра (референс) с именем MyPot?
Нет. Вот демо-мод http://www.mediafire.com/?xmtzpj9nbhgxs3q который всё это делает. Шесть объектов - два базовых объекта активаторов, два референса (поставлено снаружи у входа в убежище 101) и два скрипта активаторов. Всё работающее с одним смешным нюансом - поскольку модель кастрюли предназначена для использования передвигаемой статикой, активатор "кастрюля" получился передвигаемый. Скидываешь кастрюлю с плиты на землю, тыкаешь в кастрюлю - кастрюля исчезает в карман - тыкаешь в плиту, и кастрюля появится там, куда её запинали в последний раз.
что при нажатии на стенд, мне дается броня и шлем, а также сама броня, отображаемая на стенде исчезает. Но при повторном нажатии на стенд ничего не происходит.
Скорее всего, что-то не так с проверкой. По моей схеме твой стенд должен реагировать при совпадении трёх условий: броня-на-стенде выключена, в кармане есть куртка брони, в кармане есть шлем брони - реакция, соответственно, забрать куртку, забрать шлем, включить показ брони-на-стенде...
В первом скрипте, кажется, надо поменять или добавить, только я не знаю, что именно.
Определённо. Во-первых, референс в строках "IF MyPot.GetDisabled" и "MyPottmp.Enable" должен быть один и тот же - имя референса брони-на-стенде. Во-вторых, ты забыл проверить наличие и забрать шлем - надо
IF (MyChef.GetItemCount DLC02ArmorPowerT51b) IF (MyChef.GetItemCount DLC02ArmorPowerT51bHelmet) MyChef.RemoveItem DLC02ArmorPowerT51b 1 MyChef.RemoveItem DLC02ArmorPowerT51bHelmet 1 правильныйреф.Enable ENDIF ENDIF
Mismatched if/else/endif block starting on line 5.
Полезная привычка в программировании: открыл блок - сразу закрывай. Написал BEGIN - тут же пиши в следующей строке END, и начинку блока пиши между этими строчками. Открыл скобку - тут же закрой, и пиши нужное уже между готовых скобок. Открыл кавычки - тут же закрой. Открыл IF - тут же пиши ENDIF.
У тебя открыто три IF, а закрыто ENDIF-ами только два из них: стопудово mismatched...