Поставим где-то в мире активатор с моделью кухонной плиты. Поставим на него сверху активатор по имени MyPot с моделью кастрюли. Первому дадим скрипт
Со вторым скриптом при сохранении проблем не было, но с первым скриптом при сохранении выдал ошибку на 8 строке: Syntax error.Invalid reference 'xxxxx' (only object references and reference variables are allowed in this context). С чем это может быть связано?
Со вторым скриптом при сохранении проблем не было, но с первым скриптом при сохранении выдал ошибку на 8 строке: Syntax error.Invalid reference 'xxxxx' (only object references and reference variables are allowed in this context). С чем это может быть связано?
Чтобы скомпилировался "скрипт плиты", необходимо, чтобы экземпляр "кастрюли" (референс) уже был в мире и имел имя MyPot, поскольку скрипт дважды обращается к нему по этому имени. Кроме того, этот референс должен иметь флажок Persistent (всегда материализован) - строго говоря, это требование для перестраховки (вдруг модмейкер решит разместить плиты по всей пустоши, чтобы включать кастрюлю у себя дома - ведь когда ГГ не возле кастрюли, она будет дематериализована без этого флажка и вызов функции феерически обломается), но требование такое.
Изменение репутации для пользователя FARAON11
FARAON11Offline
Сообщение №1533
написано: 4 июля 2015, 09:41
| Отредактировано: FARAON11 - 4 июля 2015, 09:48
Чтобы скомпилировался "скрипт плиты", необходимо, чтобы экземпляр "кастрюли" (референс) уже был в мире и имел имя MyPot, поскольку скрипт дважды обращается к нему по этому имени. Кроме того, этот референс должен иметь флажок Persistent (всегда материализован) - строго говоря, это требование для перестраховки (вдруг модмейкер решит разместить плиты по всей пустоши, чтобы включать кастрюлю у себя дома - ведь когда ГГ не возле кастрюли, она будет дематериализована без этого флажка и вызов функции феерически обломается), но требование такое.
Как я понял, должно быть два экземпляра (референс) с именем MyPot? Тоесть мне нужно скопировать кастрюлю с именем Mypot, разместить ее где-то , поставить флажок Persistent Reference у той кастрюли, которая должна появляться на плите? А где этот экземпляр следует размещать? Или это не столь важно?
Изменение репутации для пользователя Ipatow
IpatowOffline
Сообщение №1534
написано: 4 июля 2015, 15:41
| Отредактировано: Ipatow - 4 июля 2015, 15:42
Как я понял, должно быть два экземпляра (референс) с именем MyPot?
Нет. Вот демо-мод http://www.mediafire.com/?xmtzpj9nbhgxs3q который всё это делает. Шесть объектов - два базовых объекта активаторов, два референса (поставлено снаружи у входа в убежище 101) и два скрипта активаторов. Всё работающее с одним смешным нюансом - поскольку модель кастрюли предназначена для использования передвигаемой статикой, активатор "кастрюля" получился передвигаемый. Скидываешь кастрюлю с плиты на землю, тыкаешь в кастрюлю - кастрюля исчезает в карман - тыкаешь в плиту, и кастрюля появится там, куда её запинали в последний раз.
Изменение репутации для пользователя FARAON11
FARAON11Offline
Сообщение №1535
написано: 5 июля 2015, 11:52
| Отредактировано: FARAON11 - 5 июля 2015, 12:52
Нет. Вот демо-мод который всё это делает. Шесть объектов - два базовых объекта активаторов, два референса (поставлено снаружи у входа в убежище 101) и два скрипта активаторов. Всё работающее с одним смешным нюансом - поскольку модель кастрюли предназначена для использования передвигаемой статикой, активатор "кастрюля" получился передвигаемый. Скидываешь кастрюлю с плиты на землю, тыкаешь в кастрюлю - кастрюля исчезает в карман - тыкаешь в плиту, и кастрюля появится там, куда её запинали в последний раз.
Ура! Заработало, хотя долго не получалось сохранить скрипт, глядя на ваш мод и сравнив со своим,я заметил,что не написал для кастрюли в окне Reference вкладке Reference Editor то название, которое было написано в скрипте на 8 строке. Теперь по образцу я смогу воссоздать свою задумку(может быть). Спасибо за помощь! Так ,я добился того, что при нажатии на стенд, мне дается броня и шлем, а также сама броня, отображаемая на стенде исчезает. Но при повторном нажатии на стенд ничего не происходит. Как это можно исправить?
что при нажатии на стенд, мне дается броня и шлем, а также сама броня, отображаемая на стенде исчезает. Но при повторном нажатии на стенд ничего не происходит.
Скорее всего, что-то не так с проверкой. По моей схеме твой стенд должен реагировать при совпадении трёх условий: броня-на-стенде выключена, в кармане есть куртка брони, в кармане есть шлем брони - реакция, соответственно, забрать куртку, забрать шлем, включить показ брони-на-стенде...
Скорее всего, что-то не так с проверкой. По моей схеме твой стенд должен реагировать при совпадении трёх условий: броня-на-стенде выключена, в кармане есть куртка брони, в кармане есть шлем брони - реакция, соответственно, забрать куртку, забрать шлем, включить показ брони-на-стенде...
Вот эти скрипты:
SCRIPTNAME MyStandtmpscript REF MyChef BEGIN OnActivate SET MyChef TO GetActionRef IF MyPot.GetDisabled IF MyChef.GetItemCount DLC02ArmorPowerT51b 1 MyChef.RemoveItem DLC02ArmorPowerT51b 1 MyPottmp.Enable ENDIF ENDIF END
SCRIPTNAME MyPotScript REF MyChef BEGIN OnActivate SET MyChef TO GetActionRef MyChef.AddItem DLC02ArmorPowerT51b 1 MyChef.AddItem DLC02ArmorPowerT51bHelmet 1 Disable END
В первом скрипте, кажется, надо поменять или добавить, только я не знаю, что именно.
В первом скрипте, кажется, надо поменять или добавить, только я не знаю, что именно.
Определённо. Во-первых, референс в строках "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
FARAON11Offline
Сообщение №1539
написано: 5 июля 2015, 19:44
| Отредактировано: FARAON11 - 5 июля 2015, 19:46
Определённо. Во-первых, референс в строках "IF MyPot.GetDisabled" и "MyPottmp.Enable" должен быть один и тот же - имя референса брони-на-стенде. Во-вторых, ты забыл проверить наличие и забрать шлем
SCRIPTNAME MyStandtmpscript REF MyChef BEGIN OnActivate SET MyChef TO GetActionRef IF MyPottmp.GetDisabled IF (MyChef.GetItemCount DLC02ArmorPowerT51b) IF (MyChef.GetItemCount DLC02ArmorPowerT51bHelmet) MyChef.RemoveItem DLC02ArmorPowerT51b 1 MyChef.RemoveItem DLC02ArmorPowerT51bHelmet 1 MyPottmp.Enable ENDIF ENDIF END
При сохранении выдает ошибку на пятой строке: Mismatched if/else/endif block starting on line 5. Когда убираю седьмую и девятую строки, то все сохраняется. Но тогда со шлемом облом выходит, а шлем нужен.
Mismatched if/else/endif block starting on line 5.
Полезная привычка в программировании: открыл блок - сразу закрывай. Написал BEGIN - тут же пиши в следующей строке END, и начинку блока пиши между этими строчками. Открыл скобку - тут же закрой, и пиши нужное уже между готовых скобок. Открыл кавычки - тут же закрой. Открыл IF - тут же пиши ENDIF.
У тебя открыто три IF, а закрыто ENDIF-ами только два из них: стопудово mismatched...
Полезная привычка в программировании: открыл блок - сразу закрывай. Написал BEGIN - тут же пиши в следующей строке END, и начинку блока пиши между этими строчками. Открыл скобку - тут же закрой, и пиши нужное уже между готовых скобок. Открыл кавычки - тут же закрой. Открыл IF - тут же пиши ENDIF
Ага,все заработало.Правда, изначально при активации стенда броня добавлялась в инвентарь и в итоге у меня было уже 2 комплекта, но при добавлении во второй скрипт строк Removeitem все заработало, как было задумано.По крайней мере, основная функция выполняется. Еще раз спасибо! Вы упоминали, что для навороченности можно добавить функцию с запоминанием износа? Хотя броня та практически не изнашивается из-за огромного значения здоровья,но для полного счастья хотелось бы добавить эту фунцию.
Не могу найти подробного учебника по созданию моделей для фола 3, верней модели я умею делать отлично, но вот какие манипуляции нужны для неё чтоб она в игре была, с физикой и без багов, вот фиг знает, помогите пожалуйста.
Здравствуйте. У меня такой вопрос(возможно кто-то уже задавал). Как главному герою дать уникальную анимацию? Чтобы он другую анимацию, а npc использовали дефолтную?
У меня такой вопрос (возможно кто-то уже задавал). Как главному герою дать уникальную анимацию? Чтобы он другую анимацию, а npc использовали дефолтную?
Да, этот вопрос уже задавался... Короткий и простой ответ - никак.
Сложный ответ. Автоматически использующиеся анимации (ходьба, плаванье, перезарядка оружия - в отличие от присаживания на лавочку или чесания в затылке) однозначно определяются скелетом. Кроме скелета, персонажей - то есть ГГ и NPC - объединяет тип моба "персонаж": у мобов этого типа есть такой параметр, как "раса", у них есть такие косметические детали, как "глаза" и "причёски" (все отличия не буду перечислять). Главный герой непременно принадлежит к этому типу мобов, но всех остальных персонажей теоретически можно перевести в другой тип (сделать их из "персонажей" "тварями"). Побочным эффектом такого будет то, что у "новых персонажей" будет другой скелет (неважно, что это точно такой же файл, главное что это не тот же самый файл) и, следовательно, не обязательно такие же анимации, как у ГГ. Радикальная переделка игры, чудовищный объём работы, несовместимость с практически любыми модами, но в принципе сделать такое можно...
Ipatow, здравствуйте, дорогой сэр! Рад убедиться, что все живы и относительно здоровы... (не смог удержаться ). Поскольку я так долго никому здесь не надоедал, я смею надеяться, что мне это зачтётся, а посему хочется спросить: есть ли метода, которая позволила бы персу носить на себе два или три оружья одновремкнно, как нынче в контре? К примеру, бегаю со снайперкой, решил достать пистолет, и естественно, снайперка исчезает. Но почему??? Почему бы не сделать так, что переключившись на пистоль (one hand) перс не уберёт снайперку (которая TwoHandRifle) в инвентарь, а попросту повесит за спину? Побегал с пистолем, захотел снова снаперку - нате вам, пистолет повесил на бедро, снайперку со спины да в белы ручки. Ведь разные типы оружия использует и разные анимацию, и разные слоты на броне, не так ли?
Ведь разные типы оружия использует и разные анимацию, и разные слоты на броне, не так ли?
анимацию - да, но слоты... Слот один - weapon. Причем этот слот не прописывается ни в настройках оружия, ни в броне (в броне любой объект, занимающий слот weapon автоматически уберет взятое в руки любое оружие). То, что оружие при экипировке занимает слот weapon - это прописано в движке игры.
Картина маслом "ГГ нашёл склад оружия"! Положил в карман все 174 штуки и по очереди взял в руки каждую, если мод так отличает оружие просто переносимое от переносимого с умыслом. На картине огромный ком оружия, из-под которого виднеются ботинки ГГ
Прожектили в прицеле летят гораздо выше центра ретикуля, т.е. пересечения цели и прожектилей в центре прицельной сетки не происходит
У авторов игры в этой их баллистике всё нашпиговано ветвистыми костылями... Сам эффект задирания прожектиля - это компенсация к компенсации эффекта самонаведения пуль в условиях гравитации... В общем, устанавливаешь fAutoAimMaxDistance в значение порядка 50 тыщ дюймов, и эти грабли тебя минуют...
Изменение репутации для пользователя 4STOP97
4STOP97Offline
Сообщение №1553
написано: 5 августа 2015, 10:02
| Отредактировано: 4STOP97 - 5 августа 2015, 13:04
устанавливаешь fAutoAimMaxDistance в значение порядка 50 тыщ дюймов, и эти грабли тебя минуют...
А где? В смысле, какой плагин лучше открывать, ведь изменения в esm файлах не допускаются... Кстати, я, кажется, нашёл виновника. В папке с мешами того самого мода ModernWeaponMod есть файлы анимации перса, в том числе от первого лица. Нашёл там файлик 2haattackloopis.kf, которого ни в оригинале игры, ни в других модах не было. Удалил его - и прожектили полетели, как надо. Однако я рано радовался. Дело в том, что именно этот самый 2haattackloopis.kf делает прицеливание обычным оружием, без оптики, похожим на прицеливание в IronSight - нажимаю левую кнопку и калаш сначала перемещается в центр, затем производится зум на мушку. При этом основной прицел никуда не пропадает, он находится немного выше прицела самого калаша, это как бы вид не оружие е сзади, а немного сзади и сверху, почти под три четверти.... Блин, надо бы скрин сделать... Забыл сказать = этот мод переделал таким образом прицеливание практически у всего оружия, в том числе из других модов, кроме пистолетов. Блин, а как здесь скрины вставлять? Не редактирование, а садомазо какое-то...
Сама картинка кладётся куда-нибудь вроде http://savepic.net/ после чего тут на форуме вставляется ссылка на эту картинку. Savepic предлагает готовый BB-код для форумов; если решишь вставить в сообщение не миниатюру с линком, а сам здоровенный скриншот, позаботься завернуть его в спойлер.
Ipatow, спасибо большое, уж оченно зубодробительно всё это... Собственно, описанная выше проблемка, как я подозреваю, вызвана не столько эймботом. сколько дурацкая интерпретация attack loop самим автором. Дело в том, что этот поганец 2haattackloopis.kf, кроме того, что выдаёт анимацию прицеливания под IronSight, ещё и добавляет нечто вроде функции отдачи, то есть при стрельбе прицел реально подбрасывает, как телескопический, так и механический. Вот только непонятно, почему прожектили уходят именно вверх. И что характерно, этот дефект затрагивает исключительно автоматическое оружие с оптикой, автоматы с механикой или снайперки лупят точно в центр. Кстати, какой командой нужно воспользоваться для вставки: Ссылка или Изображение?
Вот только непонятно, почему прожектили уходят именно вверх. И что характерно, этот дефект затрагивает исключительно автоматическое оружие с оптикой, автоматы с механикой или снайперки лупят точно в центр.
Как бы оно объяснить-то... Для начала скажу, что стандартные снайперки используют анимацию 2HAAttackLeft (IS) и кстати лупят они не точно в центр, а вниз-влево только величина смещения достаточно мала. Прожектили в твоем случае уходят именно вверх потому как анимация такая: подброс оружия происходит до того, как происходит выстрел. Параметр fAutoAimMaxDistance, который указал мастер Ipatow, находится в Game Settings вот только тебе он вряд ли поможет... просто потому, что он привязывает прожектиль к стандартному игровому прицелу. При использовании оптики (именно оптики а не просто при прицеливании) стандартный игровой прицел отключается в принципе и прожектили летят исключительно по анимации ствола. В твоем случае точность при использовании оптики зависит от анимации 2HAAttackLoopIS расположенной в папке _1St Person. Поэтому решение твоей проблемы только одно: заменить указанную анимацию на более адекватную - такую где подброс ствола происходит после того, как пуля уже попала в цель (или вообще без подброса) и пристрелять прицел по новой.
Изменение репутации для пользователя shutter95
shutter95Offline
Сообщение №1557
написано: 8 августа 2015, 12:48
| Отредактировано: shutter95 - 8 августа 2015, 12:50
Можете объяснить человеку, не работавшему ранее с GECK - как перенести текстуры Фокса из мода HiRezd (папка textures) на модель персонажа из Fawkes Redux (meshes)? В Fawkes Reborn нет папки meshes, поэтому с redux он работает без проблем. А редукс при установке вместе с хайрез использует стандартные текстуры.
Здравствуйте, модмейкеры. Возник такой вопрос: как сделать таймер игрового времени для квестового скрипта. Ну скажем, что по истечению 4 часов игрового времени (герой может ждать, спать, путешествовать. а счетчик все идет) игроку добавляется какой-то эффект. Много туторов прочитал, но нигде нет. Везде только обычный таймер реального времени.
P.S. Извините, если снова поднимаю эту тему, просто не очень хочется читать 105 страниц.
Изменение репутации для пользователя Spalny_Vagon
Spalny_VagonOffline
Сообщение №1560
написано: 9 августа 2015, 17:44
| Отредактировано: Spalny_Vagon - 9 августа 2015, 17:50
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