Модератор форума: КсюXa, ApeX  
Форум » Fallout 3 » Мастерская » Помощь по моддингу (Помощь в нелегком модмейкерском деле)

Помощь по моддингу
КсюXa  Offline  Сообщение №1 написано: 9 июля 2010, 18:51


Гид по Мастерской




Тема для общих вопросов по моддингу игры.
Возможно, что ответ на ваш вопрос уже есть в Картотеке.

Ой, всё...
FARAON11  Offline  Сообщение №1531 написано: 4 июля 2015, 00:02



103
Цитата Ipatow

Поставим где-то в мире активатор с моделью кухонной плиты. Поставим на него сверху активатор по имени MyPot с моделью кастрюли. Первому дадим скрипт


Со вторым скриптом при сохранении проблем не было, но с первым скриптом при сохранении выдал ошибку на 8 строке: Syntax error.Invalid reference 'xxxxx' (only object references and reference variables are allowed in this context). С чем это может быть связано?

Ipatow  Offline  Сообщение №1532 написано: 4 июля 2015, 07:28



Цитата FARAON11

Со вторым скриптом при сохранении проблем не было, но с первым скриптом при сохранении выдал ошибку на 8 строке: Syntax error.Invalid reference 'xxxxx' (only object references and reference variables are allowed in this context). С чем это может быть связано?

Чтобы скомпилировался "скрипт плиты", необходимо, чтобы экземпляр "кастрюли" (референс) уже был в мире и имел имя MyPot, поскольку скрипт дважды обращается к нему по этому имени. Кроме того, этот референс должен иметь флажок Persistent (всегда материализован) - строго говоря, это требование для перестраховки (вдруг модмейкер решит разместить плиты по всей пустоши, чтобы включать кастрюлю у себя дома - ведь когда ГГ не возле кастрюли, она будет дематериализована без этого флажка и вызов функции феерически обломается), но требование такое.

FARAON11  Offline  Сообщение №1533 написано: 4 июля 2015, 09:41 | Отредактировано: FARAON11 - 4 июля 2015, 09:48



103
Цитата Ipatow

Чтобы скомпилировался "скрипт плиты", необходимо, чтобы экземпляр "кастрюли" (референс) уже был в мире и имел имя MyPot, поскольку скрипт дважды обращается к нему по этому имени. Кроме того, этот референс должен иметь флажок Persistent (всегда материализован) - строго говоря, это требование для перестраховки (вдруг модмейкер решит разместить плиты по всей пустоши, чтобы включать кастрюлю у себя дома - ведь когда ГГ не возле кастрюли, она будет дематериализована без этого флажка и вызов функции феерически обломается), но требование такое.

Как я понял, должно быть два экземпляра (референс) с именем MyPot?
Тоесть мне нужно скопировать кастрюлю с именем Mypot, разместить ее где-то , поставить флажок Persistent Reference у той кастрюли, которая должна появляться на плите?
А где этот экземпляр следует размещать? Или это не столь важно?

Ipatow  Offline  Сообщение №1534 написано: 4 июля 2015, 15:41 | Отредактировано: Ipatow - 4 июля 2015, 15:42



Цитата FARAON11

Как я понял, должно быть два экземпляра (референс) с именем MyPot?

Нет. Вот демо-мод http://www.mediafire.com/?xmtzpj9nbhgxs3q который всё это делает. Шесть объектов - два базовых объекта активаторов, два референса (поставлено снаружи у входа в убежище 101) и два скрипта активаторов. Всё работающее с одним смешным нюансом - поскольку модель кастрюли предназначена для использования передвигаемой статикой, активатор "кастрюля" получился передвигаемый. Скидываешь кастрюлю с плиты на землю, тыкаешь в кастрюлю - кастрюля исчезает в карман - тыкаешь в плиту, и кастрюля появится там, куда её запинали в последний раз.

FARAON11  Offline  Сообщение №1535 написано: 5 июля 2015, 11:52 | Отредактировано: FARAON11 - 5 июля 2015, 12:52



103
Цитата Ipatow

Нет. Вот демо-мод  который всё это делает. Шесть объектов - два базовых объекта активаторов, два референса (поставлено снаружи у входа в убежище 101) и два скрипта активаторов. Всё работающее с одним смешным нюансом - поскольку модель кастрюли предназначена для использования передвигаемой статикой, активатор "кастрюля" получился передвигаемый. Скидываешь кастрюлю с плиты на землю, тыкаешь в кастрюлю - кастрюля исчезает в карман - тыкаешь в плиту, и кастрюля появится там, куда её запинали в последний раз.

Ура! Заработало, хотя долго не получалось сохранить скрипт, глядя на ваш мод и сравнив со своим,я заметил,что не написал для кастрюли в окне Reference вкладке Reference Editor то название, которое было написано в скрипте на 8 строке. Теперь по образцу я смогу воссоздать свою задумку(может быть). Спасибо за помощь! Так ,я добился того, что при нажатии на стенд, мне дается броня и шлем, а также сама броня, отображаемая на стенде исчезает. Но при повторном нажатии на стенд ничего не происходит. Как это можно исправить?

Ipatow  Offline  Сообщение №1536 написано: 5 июля 2015, 14:42



Цитата FARAON11

что при нажатии на стенд, мне дается броня и шлем, а также сама броня, отображаемая на стенде исчезает. Но при повторном нажатии на стенд ничего не происходит.

Скорее всего, что-то не так с проверкой. По моей схеме твой стенд должен реагировать при совпадении трёх условий: броня-на-стенде выключена, в кармане есть куртка брони, в кармане есть шлем брони - реакция, соответственно, забрать куртку, забрать шлем, включить показ брони-на-стенде...

FARAON11  Offline  Сообщение №1537 написано: 5 июля 2015, 15:48



103
Цитата Ipatow

Скорее всего, что-то не так с проверкой. По моей схеме твой стенд должен реагировать при совпадении трёх условий: броня-на-стенде выключена, в кармане есть куртка брони, в кармане есть шлем брони - реакция, соответственно, забрать куртку, забрать шлем, включить показ брони-на-стенде...

Вот эти скрипты:




В первом скрипте, кажется, надо поменять или добавить, только я не знаю, что именно.

Ipatow  Offline  Сообщение №1538 написано: 5 июля 2015, 18:48



Цитата FARAON11

В первом скрипте, кажется, надо поменять или добавить, только я не знаю, что именно.

Определённо. Во-первых, референс в строках "IF MyPot.GetDisabled" и "MyPottmp.Enable" должен быть один и тот же - имя референса брони-на-стенде. Во-вторых, ты забыл проверить наличие и забрать шлем - надо

IF (MyChef.GetItemCount DLC02ArmorPowerT51b)
IF (MyChef.GetItemCount DLC02ArmorPowerT51bHelmet)
MyChef.RemoveItem DLC02ArmorPowerT51b 1
MyChef.RemoveItem DLC02ArmorPowerT51bHelmet 1
правильныйреф.Enable
ENDIF
ENDIF

FARAON11  Offline  Сообщение №1539 написано: 5 июля 2015, 19:44 | Отредактировано: FARAON11 - 5 июля 2015, 19:46



103
Цитата Ipatow

Определённо. Во-первых, референс в строках "IF MyPot.GetDisabled" и "MyPottmp.Enable" должен быть один и тот же - имя референса брони-на-стенде. Во-вторых, ты забыл проверить наличие и забрать шлем



При сохранении выдает ошибку на пятой строке: Mismatched if/else/endif block starting on line 5.
Когда убираю седьмую и девятую строки, то все сохраняется. Но тогда со шлемом облом выходит, а шлем нужен.

Ipatow  Offline  Сообщение №1540 написано: 5 июля 2015, 20:07



Цитата FARAON11

Mismatched if/else/endif block starting on line 5.

Полезная привычка в программировании: открыл блок - сразу закрывай. Написал BEGIN - тут же пиши в следующей строке END, и начинку блока пиши между этими строчками. Открыл скобку - тут же закрой, и пиши нужное уже между готовых скобок. Открыл кавычки - тут же закрой. Открыл IF - тут же пиши ENDIF.

У тебя открыто три IF, а закрыто ENDIF-ами только два из них: стопудово mismatched...

FARAON11  Offline  Сообщение №1541 написано: 5 июля 2015, 21:32



103
Цитата Ipatow

Полезная привычка в программировании: открыл блок - сразу закрывай. Написал BEGIN - тут же пиши в следующей строке END, и начинку блока пиши между этими строчками. Открыл скобку - тут же закрой, и пиши нужное уже между готовых скобок. Открыл кавычки - тут же закрой. Открыл IF - тут же пиши ENDIF

Ага,все заработало.Правда, изначально при активации стенда броня добавлялась в инвентарь и в итоге у меня было уже 2 комплекта, но при добавлении во второй скрипт строк Removeitem все заработало, как было задумано.По крайней мере, основная функция выполняется. Еще раз спасибо! Вы упоминали, что для навороченности можно добавить функцию с запоминанием износа?  Хотя броня та практически не изнашивается из-за огромного значения здоровья,но для полного счастья хотелось бы добавить эту фунцию.

strchi  Offline  Сообщение №1542 написано: 11 июля 2015, 23:01



194
:( Не могу найти подробного учебника по созданию моделей для фола 3, верней модели я умею делать отлично, но вот какие манипуляции нужны для неё чтоб она  в игре была, с физикой и без багов, вот фиг знает, помогите пожалуйста.

Gvinpin  Offline  Сообщение №1543 написано: 12 июля 2015, 09:32


Уася



Самый скромный и героический герой Скайрима!!!
strchi  Offline  Сообщение №1544 написано: 12 июля 2015, 10:34



194
Gvinpin, Спасибо, интересный статьи там есть по теме

TheGarMash  Offline  Сообщение №1545 написано: 2 августа 2015, 11:53



3
Здравствуйте. У меня такой вопрос(возможно кто-то уже задавал). Как главному герою дать уникальную анимацию? Чтобы он другую анимацию, а npc использовали дефолтную?

Ipatow  Offline  Сообщение №1546 написано: 2 августа 2015, 15:36



Цитата TheGarMash

У меня такой вопрос (возможно кто-то уже задавал). Как главному герою дать уникальную анимацию? Чтобы он другую анимацию, а npc использовали дефолтную?

Да, этот вопрос уже задавался... Короткий и простой ответ - никак.

Сложный ответ. Автоматически использующиеся анимации (ходьба, плаванье, перезарядка оружия - в отличие от присаживания на лавочку или чесания в затылке) однозначно определяются скелетом. Кроме скелета, персонажей - то есть ГГ и NPC - объединяет тип моба "персонаж": у мобов этого типа есть такой параметр, как "раса", у них есть такие косметические детали, как "глаза" и "причёски" (все отличия не буду перечислять). Главный герой непременно принадлежит к этому типу мобов, но всех остальных персонажей теоретически можно перевести в другой тип (сделать их из "персонажей" "тварями"). Побочным эффектом такого будет то, что у "новых персонажей" будет другой скелет (неважно, что это точно такой же файл, главное что это не тот же самый файл) и, следовательно, не обязательно такие же анимации, как у ГГ. Радикальная переделка игры, чудовищный объём работы, несовместимость с практически любыми модами, но в принципе сделать такое можно...

4STOP97  Offline  Сообщение №1547 написано: 4 августа 2015, 15:00



82
Ipatow, здравствуйте, дорогой сэр! Рад убедиться, что все живы и относительно здоровы... (не смог удержаться :D ). Поскольку я так долго никому здесь не надоедал, я смею надеяться, что мне это зачтётся, а посему хочется спросить: есть ли метода, которая позволила бы персу носить на себе два или три оружья одновремкнно, как нынче в контре? К примеру, бегаю со снайперкой, решил достать пистолет, и естественно, снайперка исчезает. Но почему??? Почему бы не сделать так, что переключившись на пистоль (one hand) перс не уберёт снайперку (которая TwoHandRifle) в инвентарь, а попросту повесит за спину? Побегал с пистолем, захотел снова снаперку - нате вам, пистолет повесил на бедро, снайперку со спины да в белы ручки. Ведь разные типы оружия использует и разные анимацию, и разные слоты на броне, не так ли?

TheGarMash  Offline  Сообщение №1548 написано: 4 августа 2015, 15:04



3
Ipatow, Окей. Благодарю за ответ. Есть ещё вопрос. как вы думаете. Вот взять глаз, текстуру и сделать как броню. Такое возможно сделать?

Galko  Offline  Сообщение №1549 написано: 4 августа 2015, 16:47 | Отредактировано: Galko - 4 августа 2015, 16:54


GALAктическая мартышка


Цитата 4STOP97

Ведь разные типы оружия использует и разные анимацию, и разные слоты на броне, не так ли?

анимацию - да, но слоты... Слот один - weapon. Причем этот слот не прописывается ни в настройках оружия, ни в броне (в броне любой объект, занимающий слот weapon автоматически уберет взятое в руки любое оружие). То, что оружие при экипировке занимает слот weapon - это прописано в движке игры.

Ваше счастье, что я не ваше счастье
Ipatow  Offline  Сообщение №1550 написано: 4 августа 2015, 17:23



Цитата Galko

получится такая монструозная конструкция

Картина маслом "ГГ нашёл склад оружия"! Положил в карман все 174 штуки и по очереди взял в руки каждую, если мод так отличает оружие просто переносимое от переносимого с умыслом. На картине огромный ком оружия, из-под которого виднеются ботинки ГГ lol

4STOP97  Offline  Сообщение №1551 написано: 4 августа 2015, 17:40



82
Цитата Ipatow

из-под которого виднеются ботинки ГГ :lol:

 -...э-э-э... ээтто не ботинки...- невнятно промямлил ГГ и густо покраснел...

Ipatow  Offline  Сообщение №1552 написано: 4 августа 2015, 18:56



Цитата 4STOP97

Прожектили в прицеле летят гораздо выше центра ретикуля, т.е. пересечения цели и прожектилей в центре прицельной сетки не происходит

У авторов игры в этой их баллистике всё нашпиговано ветвистыми костылями... Сам эффект задирания прожектиля - это компенсация к компенсации эффекта самонаведения пуль в условиях гравитации... В общем, устанавливаешь fAutoAimMaxDistance в значение порядка 50 тыщ дюймов, и эти грабли тебя минуют...

4STOP97  Offline  Сообщение №1553 написано: 5 августа 2015, 10:02 | Отредактировано: 4STOP97 - 5 августа 2015, 13:04



82
Цитата Ipatow

устанавливаешь fAutoAimMaxDistance в значение порядка 50 тыщ дюймов, и эти грабли тебя минуют...

А где? В смысле, какой плагин лучше открывать, ведь изменения в esm файлах не допускаются... Кстати, я, кажется, нашёл виновника. В папке с мешами того самого мода ModernWeaponMod есть файлы анимации перса, в том числе от первого лица. Нашёл там файлик 2haattackloopis.kf, которого ни в оригинале игры, ни в других модах не было. Удалил его - и прожектили полетели, как надо. Однако я рано радовался. Дело в том, что именно этот самый 2haattackloopis.kf делает прицеливание обычным оружием, без оптики, похожим на прицеливание в IronSight - нажимаю левую кнопку и калаш сначала перемещается в центр, затем производится зум на мушку. При этом основной прицел никуда не пропадает, он находится немного выше прицела самого калаша, это как бы вид не оружие е сзади, а немного сзади и сверху, почти под три четверти.... Блин, надо бы скрин сделать...
Забыл сказать = этот мод переделал таким образом прицеливание практически у всего оружия, в том числе из других модов, кроме пистолетов. Блин, а как здесь скрины вставлять? Не редактирование, а садомазо какое-то...

Ipatow  Offline  Сообщение №1554 написано: 5 августа 2015, 17:01



Цитата 4STOP97

как здесь скрины вставлять?

Сама картинка кладётся куда-нибудь вроде http://savepic.net/ после чего тут на форуме вставляется ссылка на эту картинку. Savepic предлагает готовый BB-код для форумов; если решишь вставить в сообщение не миниатюру с линком, а сам здоровенный скриншот, позаботься завернуть его в спойлер.

4STOP97  Offline  Сообщение №1555 написано: 5 августа 2015, 18:09



82
Ipatow, спасибо большое, уж оченно зубодробительно всё это... Собственно, описанная выше проблемка, как я подозреваю, вызвана не столько эймботом. сколько дурацкая интерпретация attack loop самим автором. Дело в том, что этот поганец 2haattackloopis.kf, кроме того, что выдаёт анимацию прицеливания под IronSight, ещё и добавляет нечто вроде функции отдачи, то есть при стрельбе прицел реально подбрасывает, как телескопический, так и механический. Вот только непонятно, почему прожектили уходят именно вверх. И что характерно, этот дефект затрагивает исключительно автоматическое оружие с оптикой, автоматы с механикой или снайперки лупят точно в центр. Кстати, какой командой нужно воспользоваться для вставки: Ссылка или Изображение?

Veldion  Offline  Сообщение №1556 написано: 6 августа 2015, 07:52



268
Цитата 4STOP97

Вот только непонятно, почему прожектили уходят именно вверх. И что характерно, этот дефект затрагивает исключительно автоматическое оружие с оптикой, автоматы с механикой или снайперки лупят точно в центр.

Как бы оно объяснить-то... Для начала скажу, что стандартные снайперки используют анимацию 2HAAttackLeft (IS) и кстати лупят они не точно в центр, а вниз-влево только величина смещения достаточно мала. Прожектили в твоем случае уходят именно вверх потому как анимация такая: подброс оружия происходит до того, как происходит выстрел.
Параметр fAutoAimMaxDistance, который указал мастер Ipatow, находится в Game Settings вот только тебе он вряд ли поможет... просто потому, что он привязывает прожектиль к стандартному игровому прицелу. При использовании оптики (именно оптики а не просто при прицеливании) стандартный игровой прицел отключается в принципе и прожектили летят исключительно по анимации ствола. В твоем случае точность при использовании оптики зависит от анимации 2HAAttackLoopIS расположенной в папке _1St Person. Поэтому решение твоей проблемы только одно: заменить указанную анимацию на более адекватную - такую где подброс ствола происходит после того, как пуля уже попала в цель (или вообще без подброса) и пристрелять прицел по новой.

shutter95  Offline  Сообщение №1557 написано: 8 августа 2015, 12:48 | Отредактировано: shutter95 - 8 августа 2015, 12:50



1
Можете объяснить человеку, не работавшему ранее с GECK - как перенести текстуры Фокса из мода HiRezd (папка textures) на модель персонажа из Fawkes Redux (meshes)?
В Fawkes Reborn нет папки meshes, поэтому с redux он работает без проблем. А редукс при установке вместе с хайрез использует стандартные текстуры.

TheGarMash  Offline  Сообщение №1558 написано: 9 августа 2015, 08:59



3
Хочу отредактировать положение оружия за спиной. Что для это нужно?

Ivan_Rozhkov  Offline  Сообщение №1559 написано: 9 августа 2015, 15:31 | Отредактировано: Ivan_Rozhkov - 9 августа 2015, 15:37



6
Здравствуйте, модмейкеры. Возник такой вопрос: как сделать таймер игрового времени для квестового скрипта. Ну скажем, что по истечению 4 часов игрового времени (герой может ждать, спать, путешествовать. а счетчик все идет) игроку добавляется какой-то эффект. Много туторов прочитал, но нигде нет. Везде только обычный таймер реального времени.

P.S. Извините, если снова поднимаю эту тему, просто не очень хочется читать 105 страниц.

Spalny_Vagon  Offline  Сообщение №1560 написано: 9 августа 2015, 17:44 | Отредактировано: Spalny_Vagon - 9 августа 2015, 17:50


Мастер


Цитата Ivan_Rozhkov

4 часов игрового времени (герой может ждать, спать, путешествовать. а счетчик все идет) игроку добавляется какой-то эффект. Много туторов прочитал, но нигде нет. Везде только обычный таймер реального времени.

Я обычно делаю это так:
Код
float timer
short doonce ;условие начала отсчета

begin gamemode
if doonce == 1
set timer to gamedayspassed
set doonce to 2
elseif doonce == 2
if gamedayspassed - timer >= 1\6 ;1\6 = 1*4\24
;player.addspell или player.cios   
set doonce to 0
enidf
endif
end

======================
Мод "Нью-Йорк" на русском: https://modgames.net/load/fallout3/addon/new-york-bolshoe-yabloko/34-1-0-1294
Мод "Нью-Йорк" на английском: https://modgames.net/load/fallout3/kvesty/the-big-apple/23-1-0-19771
Форум » Fallout 3 » Мастерская » Помощь по моддингу (Помощь в нелегком модмейкерском деле)
Поиск:





Ответ на жалобу смотрите в разделе жалоб