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

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


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




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

Ой, всё...
Ipatow  Offline  Сообщение №1171 написано: 14 сентября 2014, 22:52



Цитата Joopeeter

бомбы были такие

Поговаривают, они вообще китайские были! Надо поискать инструкцию от мегатонской бомбы... Должно быть, завораживающее чтение :D

Quazar  Offline  Сообщение №1172 написано: 15 сентября 2014, 06:15



446
Цитата Vasiy

ребят как и где скачать программу для создания модов.

Проще говоря -> тут  :)

ncrrainjer  Offline  Сообщение №1173 написано: 19 сентября 2014, 07:11



199
Чем отличаются условия GetDead и GetDeadCount?

Galko  Offline  Сообщение №1174 написано: 19 сентября 2014, 07:48 | Отредактировано: Galko - 19 сентября 2014, 13:47


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


Цитата ncrrainjer

Чем отличаются условия GetDead и GetDeadCount?

Переводом с английского  :)
GetDead, грубо говоря, - мертвец, умер, это  мертвое, т.е - проверка, жив ли проверяемый непись\кричер (не базовый, а конкретная его реф-копия в локации) Например: проверить состояние (не Форбс) Мойры Браун, расположенной в "Магазине на Кратере" и в случае, если она на данный момент мертва - сделать что-то:

If Мойра.GetDead    ; если Мойра мертва
killall                         ;порвать всех за это
endif

Или же, если Мойра на момент проверки жива, то...

If Мойра.GetDead !=1    ; если Мойра НЕ мертва
playsound Rock-n-roll     ; проиграть музыку
endif

По умолчанию GetDead идентично полной формуле GetDead == 1 (двойной знак равно и единичка в данном случае означает - ДА. Непись гетдед(мёртв)? == Да! )

GetDeadCount - количество смертей, т.е. - сколько было убито копий одного базового непися\кричера. К примеру, сколько мутантов, сделанных на базе одного и раскиданных десятками по Пустоши, было убито игроком.

ЗЫ. А как насчет самому заглянуть на Бетсофт и почитать МОРЕ полезной инфы?

Ваше счастье, что я не ваше счастье
ncrrainjer  Offline  Сообщение №1175 написано: 19 сентября 2014, 08:29



199
Galko, Спасибо за разъяснение,а за ссылку вдвойне спасибо:)Буду изучать

Добавлено (19 Сентября 2014, 12:29)
---------------------------------------------
А подскажите,как убрать много статичных объектов одновременно?Например 30 стульев.Я знаю два способа,это привязать к Хмаркеру и отключить его (Disable) и отключать каждый объект по отдельности,но то и другое слишком долго и муторно!!!Есть ли какой-то другой вариант?


Galko  Offline  Сообщение №1176 написано: 19 сентября 2014, 08:48 | Отредактировано: Galko - 19 сентября 2014, 09:15


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


Цитата ncrrainjer

Есть ли какой-то другой вариант?

Другой вариант - это первый. Как менее муторный.
Ну можно попробовать такое: если все эти 30 предметов находятся в одной локации недалеко друг от друга, то можно их расставить по вкусу и после этого "состряпать" из них один бааальшой статик-коллекшн.  И в скрипте отключать уже только его одного. В принципе - это примерно как и с маркером-родителем, единственное, что не придется у каждой копии открывать настройки и выбирать линк на маркер. Просто через контрл выделить все нужные и потом нажать Контрл+G
====
Кстати, забыла добавить - статик-коллекшн подразумевает, что создаваться она будет именно из статики. С другими объектами (фурнитурой, контейнерами и т.д.) это не проканает

Ваше счастье, что я не ваше счастье
ncrrainjer  Offline  Сообщение №1177 написано: 19 сентября 2014, 08:57



199
Galko, Ооогромное спасибо:))

Galko  Offline  Сообщение №1178 написано: 19 сентября 2014, 09:09 | Отредактировано: Galko - 19 сентября 2014, 09:15


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


попробуй эту  http://tiarum.com/wiki....BE_GECK
там в начале страницы - ссылка на туториал

Ваше счастье, что я не ваше счастье
ncrrainjer  Offline  Сообщение №1179 написано: 19 сентября 2014, 15:04



199
Galko, Да,так работает спасибо

Добавлено (19 Сентября 2014, 19:04)
---------------------------------------------
Подскажите пожалуйста как разыгрыать сценку: Один НПС (Снайпер) Стреляет с крыши в другого НПС (Жертву) находящегося внизу на достаточном расстоянии,причем жертва умирает определенной анимацией, а не стандартно как мешок с фикалиями:)Вопрос номер 1-Как зделать гарантированное попадание в голову?Вопрос номер 2-Как сделать так, чтобы актер умер именно выбранной анимацией?и вопрос номер 3-Это вообще возможно зделать?:))Заранее спаибо:)


Ipatow  Offline  Сообщение №1180 написано: 19 сентября 2014, 15:37



Цитата ncrrainjer

Вопрос номер 2-Как сделать так, чтобы актер умер именно выбранной анимацией?

Ээ... "Штирлиц выхватил парабеллум и высадил Мюллеру в лоб всю обойму. Мюллер нахмурился. Броневой - догадался Штирлиц." С пулей в голове люди в норме мешковато себя и ведут. То есть обычно не произносят речей и не исполняют красивых антраша... Что не мешает тебе заставить моба просто исполнить определённую анимацию (PlayIdle), а по окончании спектакля тихонько его придушить. Мы подтвердим, что он умер именно от того, от чего его лечили! :D

ncrrainjer  Offline  Сообщение №1181 написано: 19 сентября 2014, 15:46



199
Ipatow, Если точнее то я себе это представляю так:ГГ проходит тригер с НПС жертвой раздается выстрел с крыши (попадание в неважно куда анимация которую я хочу предоставить НПС показывает,что попали в голову) и НПС жертва начинает играть свою роль (падение) а затем умирает.Так вот,как через тригер заставить одного НПС стрелять,а второго падать,да еще и через анимацию?

Ipatow  Offline  Сообщение №1182 написано: 19 сентября 2014, 17:07 | Отредактировано: Ipatow - 19 сентября 2014, 18:47



Цитата ncrrainjer

как через тригер заставить одного НПС стрелять,а второго падать,да еще и через анимацию?

Что-то вроде...

SHORT Stage
FLOAT Timer
BEGIN OnTriggerEnter Player
…IF Stage == 0
; тут можно ещё проверять, все ли условия соблюдены - все ли живы и т.п.
……SET Stage TO 1
……SniperRef.FireWeapon WeapSniperRifle
…ENDIF
END
BEGIN GameMode
…IF (Stage == 0) || (Stage == 4)
……RETURN
…ENDIF
…SET Timer TO Timer + GetSecondsPassed
…IF Stage == 1
……SET Stage TO 2
……SET Timer TO 0
……VictimRef.PlayAnim 3rdPHitHead
…ELSEIF (Stage == 2) && (Timer > 1.5)
……SET Stage TO 3
……SET Timer TO 0
……VictimRef.PlayAnim KnockDownFaceDown
…ELSEIF (Stage == 3) && (Timer > 2.5)
……SET Stage TO 4
……VictimRef.KillActor SniperRef
…ENDIF
END

Да, имя функции написано неправильно. Правильно - PlayIdle

ncrrainjer  Offline  Сообщение №1183 написано: 19 сентября 2014, 17:12



199
Ipatow, Оу,спасибо,буду пробовать:)Кстате о таймерах, как сделать, чтобы после выполнения квеста через три дня появлялось какое либо сообщение?Штудирую туториалы,и найти не могу:((Желательно,чтобы это действие работало через добавление чего либо в контейнер,как это реализовать?

Ipatow  Offline  Сообщение №1184 написано: 19 сентября 2014, 17:46



Цитата ncrrainjer

как сделать, чтобы после выполнения квеста через три дня появлялось какое либо сообщение?

Ну, например... Где-то должен крутиться скрипт - квестовый или на активаторе каком-нибудь. И всё время проверять тот квест на GetQuestCompleted. Как поймалось завершение квеста - выставляем флажок, по которому больше квест не проверяем, а начинаем считать время. Хоть секунды с этого момента отсчитываем, пока не наберётся секунд на трое суток, хоть GameDaysPassed смотрим - не отбрасывая дробную часть это будет проверка на 72 часа с момента начала отсчёта, а если присваивать это значение целочисленной переменной и сравнивать уже результат, это будет "третий день с момента". Гмм... Совсем же недавно где-то тут обсуждали эти тикалки...

Добавлено (19 Сентября 2014, 21:46)
---------------------------------------------
Да, и как время пришло - там хоть сообщение на экран пиши, хоть контейнеры барахлом набивай - это же скрипт, делай всё что захочется


ncrrainjer  Offline  Сообщение №1185 написано: 19 сентября 2014, 17:56 | Отредактировано: ncrrainjer - 19 сентября 2014, 17:58



199
Ipatow, Да мне бы конкретный пример именно с getdayspassed и который стартует с OnAdd, я как-то делал,что добавляем например планшет в определенный контейнер на планшет вешаем скрипт с GetDaysPassed который с Begin OnAdd,вроде работало,просто не помню как именно делал:(А может и путаю чего:)

Ipatow  Offline  Сообщение №1186 написано: 19 сентября 2014, 19:24



Цитата ncrrainjer

Да мне бы конкретный пример именно с getdayspassed и который стартует с OnAdd, я как-то делал,что добавляем например планшет в определенный контейнер на планшет вешаем скрипт с GetDaysPassed который с Begin OnAdd,вроде работало,просто не помню как именно делал:(А может и путаю чего:)

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

SCRIPTNAME скрипт-предмета
BEGIN OnAdd ref-ящика/моба
…IF (GetQuestCompleted квест-будильник)
…ELSEIF (GetQuestRunning квест-будильник)
…ELSE
……StartQuest квест-будильник
…ENDIF
END

SCRIPTNAME скрипт-квеста-будильника
SHORT Deadline
BEGIN GameMode
…IF Deadline
……IF GameDaysPassed > Deadline
………CompleteQuest квест-будильник
; и делаем что хотим, время настало
……ENDIF
…ELSE
……SET Deadline TO GameDaysPassed +3
…ENDIF
END

ncrrainjer  Offline  Сообщение №1187 написано: 20 сентября 2014, 02:53



199
Ipatow, Спасибо за помощь:)Просто нигде не мог найти пример использования GameDaysPassed

Galko  Offline  Сообщение №1188 написано: 20 сентября 2014, 02:55 | Отредактировано: Galko - 20 сентября 2014, 03:16


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


Цитата ncrrainjer

чтобы после выполнения квеста через три дня появлялось какое либо сообщение?

И на этот вопрос в нашей КАРТОТЕКЕ есть подробный ответ.
31. Подскажите образец такого скрипта, когда при входе в игру игрок через 3(4, 5 и т.д.) дней получает сообщение? 
Внимательнее надо быть. Я понимаю, что там написано - при входе в игру, но сути это не меняет. Там дано общее направление по решению проблемы, а уж дальше модмейкер сам подстраивает под свои нужды.
Это точно также, как в известной мудрости: хочешь накормить голодающего - дай ему не рыбу, а удочку. И голодающий научится , как себя прокормить, и дающему не придется всю жизнь нести на шее иждивенца.

Ваше счастье, что я не ваше счастье
ncrrainjer  Offline  Сообщение №1189 написано: 20 сентября 2014, 03:13



199
Galko, А можно ли этот скрипт повесить на объект?И заменить блок Begin GameMode на Begin OnAdd?Будет ли это всё работать?

Veldion  Offline  Сообщение №1190 написано: 20 сентября 2014, 03:18



268
Цитата ncrrainjer

Если точнее то я себе это представляю так:ГГ проходит тригер с НПС жертвой раздается выстрел с крыши (попадание в неважно куда анимация которую я хочу предоставить НПС показывает,что попали в голову) и НПС жертва начинает играть свою роль (падение) а затем умирает


ncrrainjer, уважаемый, я возможно немного поздновато, но ответ уже традиционный :D смотри аналоги. Заглядываем в Вегас. Город NoVac (Новак) персонаж CraigBoone (Бун) в своем самом первом квесте именно выстрелом в голову, именно из снайперской винтовки, почти что с крыши (из головы динозавра) убивает того NPC'а, которого ГГ приведет в условленное место (несколько вариантов жертвы). Причем еще и при условии, что на ГГ в этот момент надета очень специальная беретка. 100%-е попадание реализовано с помощью пакета UseWeapon.
Либо как сказал мастер Ipatow, только не ...SniperRef.FireWeapon... потому как в этом случае твой киллер просто выстрелит в никуда, а ...SniperRef.UseWeapon... тогда киллер будет стрелять именно в жертву.
Примерно так: КиллерRef.UseWeapon WeapSniperRifle КиллерRef ЖертваRef 1 0 0 1 0 где первая цифра число выстрелов, а четвертая 100%-е попадание.
Одно НО: при использовании UseWeapon (функции или пакета) у киллера обязательно должно быть в инвентаре указанное оружие, а при использовании FireWeapon киллер выстрелит прожектилем указанного оружия из того огнестрельного оружия, которое в данный момент у него в руках (хоть ракетой из пневматики).

Quazar  Offline  Сообщение №1191 написано: 20 сентября 2014, 06:05 | Отредактировано: QuazarX - 20 сентября 2014, 06:14



446
Цитата ncrrainjer

И заменить блок Begin GameMode на Begin OnAdd?

Отсчет дней все равно должен проводится в гейммоде (GameMode), неважно в каком скрипте - квестовом или объектном, а через Begin OnAdd можно создать отправную точку для отсчета (если требуется). Примеры подобных скриптов существуют в самой игре, например MS14PowerArmorScript

Ipatow  Offline  Сообщение №1192 написано: 20 сентября 2014, 06:43



Цитата Galko

хочешь накормить голодающего - дай ему не рыбу, а удочку

Это мудро! Но любой граблепроходец тут же напомнит, что за этим последуют вопросы про поплавки, блёсны, прикорм, часы лова, потом он лодку захочет... К рыбе хотя бы дополнительных инструкций не требуется blush

Galko  Offline  Сообщение №1193 написано: 20 сентября 2014, 07:35


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


Цитата Ipatow

вопросы про поплавки, блёсны, прикорм, часы лова, потом он лодку захочет.

Значит, надо кроме удочки подарить "Комплект рыбака". Я видела в магазине такой. Интересно только - зачем в комплекте шло три презерватива? Типа, чтоб не размножались?

Ваше счастье, что я не ваше счастье
JupiterJour  Offline  Сообщение №1194 написано: 20 сентября 2014, 08:01


_


Цитата ncrrainjer

Есть ли какой-то другой вариант?


Использовать инструмент Reference Batch Action - действия с группой ссылок. Выделяешь с нажатым Ctrl всё что надо, жмёшь кнпку "-" (или через верхнее меню View), выскакивает окно со списком выбранных ссылок и списком действий, что с ними со всеми разом можно сделать. Там где действия среди всяких отражений-преломлений, линкед рефов и прочего есть пункт Set enable parent (или что-то в этом роде) - привязать к ссылке как к родителю. Жмёшь туда и дальше как с привязкой одиночной ссылки - либо выбираешь из списка, либо белым крестиком в окне рендера. Выбрал к чему привязываешь и жмёшь Do - сделать. Готово, выделенные ссылки всей кучей привязываются к одной, можно зайти к ним на вкладку Enable Parent и убедиться своими глазами. Ну а дальше уже сам знаешь как и что включать-отключать. Привязываемые ссылки можно добавлять в список и при открытом окне Reference Batch Action.
Не могу не позанудствовать - про этот инструмент написано в самом что ни на есть базовом беседкином туторе.

Veldion  Offline  Сообщение №1195 написано: 20 сентября 2014, 09:18



268
Цитата Ipatow

Там же было дополнительное условие - попасть в голову... А если он попадёт в жертву и оторвёт ей выстрелом ногу? Всё кино насмарку! Пусть лучше в белый свет палит наверное, чтоб только "пиф-паф" прозвучало


Ну во первых (по статистике) стрельба ведется исключительно в грудь/живот, а во вторых если уж нужна стопудовая гарантия то так: КиллерRef.UseWeapon WeapSniperRifle КиллерRef ЖертваRef 1 0 0 1 1 при этом урон не будет наноситься следовательно ничего лишнего оторвано не будет, однако попадание как таковое будет засчитано и может быть использовано в скриптах или эффекте самого используемого оружия.

Ipatow  Offline  Сообщение №1196 написано: 20 сентября 2014, 09:28



Цитата Veldion

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

Гмм... Ну поскольку мы снимаем кино, то главный смысл UseWeapon я вижу в том, что стрелок будет стрелять как минимум в сторону цели. А то мало ли вдруг ГГ как раз на крышу смотрит, а снайпер бабах FireWeapon в противоположном направлении :D В остальном неподдельный выстрел может и испортить кадр - пусть урона нет, но decal-то кровавый нарисуется на пузе?

Veldion  Offline  Сообщение №1197 написано: 20 сентября 2014, 09:55



268
Цитата Ipatow

Гмм... Ну поскольку мы снимаем кино, то главный смысл UseWeapon я вижу в том, что стрелок будет стрелять как минимум в сторону цели. А то мало ли вдруг ГГ как раз на крышу смотрит, а снайпер бабах FireWeapon в противоположном направлении В остальном неподдельный выстрел может и испортить кадр - пусть урона нет, но decal-то кровавый нарисуется на пузе?


Если уж колом стоит выбор: кровь на пузе / выстрел в противоположную сторону по моему уж лучше кровь на пузе ;) . Кстати (опять же по статистике) при отстреле Буном своих жертв, "посторонней" крови на жертвах как-то не было замечено...

JupiterJour  Offline  Сообщение №1198 написано: 20 сентября 2014, 14:22


_


В порядке извращения. На время разыгрываемой драмы можно прямо в голову неписю поместить икс-маркер и пусть стрелок в палит в маркер - в пузо тогда точно не попадёт. Ну, если он настоящий снайпер, конечно.

КсюXa  Offline  Сообщение №1199 написано: 20 сентября 2014, 14:38


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


Или ма-а-а-ленький х-маркер - в глаз. Чтоб шкурку не попортить

Ой, всё...
Ipatow  Offline  Сообщение №1200 написано: 20 сентября 2014, 14:39



Цитата Joopeeter

можно прямо в голову неписю поместить икс-маркер

А вот тут я бы сильно озадачился. Ну то есть когда вся сцена расчитана до миллиметра это не кажется сложным, но если задача отловить координаты головы гуляющего в непонятной позе непися... Это вообще решаемая задача? unsure

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





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