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

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


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




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

Ой, всё...
Ipatow  Offline  Сообщение №571 написано: 18 сентября 2012, 03:02 | Отредактировано: Ipatow - 18 сентября 2012, 03:03



Цитата Вис

возможно ли отследить, что игрок что-то купил или продал торговцу?

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

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

Вис  Offline  Сообщение №572 написано: 18 сентября 2012, 07:31



298
Цитата Ipatow

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


Можно поподробней? Желательно с примерами (можно с использованием FOSE).

Ipatow  Offline  Сообщение №573 написано: 18 сентября 2012, 08:02



Цитата Вис

Можно поподробней? Желательно с примерами (можно с использованием FOSE).

Ну, без FOSE просто невозможно определить, что лежит в карманах у ГГ (100% если оно из заранее неизвестного мода). В цикле (функции Label и Goto) перебираем (функции GetFirstRef по типу 201 и GetNextRef) инвентарные предметы, лежащие в кармане у ГГ заносим в список (понадобится весь набор функций, начинающихся с List), их количество симулируем количеством токенов в отдельном контейнере, их прочность отражаем прочностью этих токенов - так запоминается состояние инвентаря. Сравнивается аналогично. Натужно, извращённо, но реализуемо...

Вис  Offline  Сообщение №574 написано: 18 сентября 2012, 08:50



298
Ipatow, простите, но мне всё равно ничего не понятно :( . Можно с примером?

Xospis  Offline  Сообщение №575 написано: 18 сентября 2012, 11:19



171
Ребят выручайте smile2 Создаю диалог с роботом) Всё норм но есть один -. Нельзя попрощаться с ним. С человеком всё отлично а с существом из диалога не выйти( Что делать?

Вис  Offline  Сообщение №576 написано: 18 сентября 2012, 11:28



298
Vita$, а галочка goodbye стоит?

Xospis  Offline  Сообщение №577 написано: 18 сентября 2012, 11:29



171
Вис, Скорее всего нет) Ща посмотрю) Заранее спс

Вис  Offline  Сообщение №578 написано: 21 сентября 2012, 16:20



298
Vita$, Да не за что :)

Добавлено (19.09.2012, 12:21)
---------------------------------------------
Так, поняв что со всем этим разобраться в одиночку не получится, решил плюнуть на этот бартер (хотя это бы очень пригодилось моду). Теперь такой вопрос - можно ли отследить, что ГГ починил оружие? Такое чувство, что всё вновь упрётся в

В цикле (функции Label и Goto) перебираем (функции GetFirstRef по типу 201 и GetNextRef) инвентарные предметы, лежащие в кармане у ГГ заносим в список (понадобится весь набор функций, начинающихся с List), их количество симулируем количеством токенов в отдельном контейнере, их прочность отражаем прочностью этих токенов - так запоминается состояние инвентаря. Сравнивается аналогично.

Добавлено (21.09.2012, 20:20)
---------------------------------------------
Так теперь такой вопрос: создал ветку диалога с 3 разветвлениями, но одно из них не работает - условия выполняются (у ГГ должно быть >=500 крышек), но эта ветка не появляется. Укажите, пожалуйста, где моя ошибка.
P.S. В условии с крышками стоит Run on Target.


rizys-mod  Offline  Сообщение №579 написано: 21 сентября 2012, 16:55


Команда "Rizys-Mod"


250
Вис, дай скрин диалога и кондиции. И через какую строчку выбор?

Команда "Rizys-mod" - разработка плагинов на Fallout.
Вис  Offline  Сообщение №580 написано: 21 сентября 2012, 17:01



298
rizys-mod, вот
Выбор через строчку Choices

rizys-mod  Offline  Сообщение №581 написано: 21 сентября 2012, 21:30


Команда "Rizys-Mod"


250
Вис, просто поставь функцию getitemcount.

Команда "Rizys-mod" - разработка плагинов на Fallout.
Вис  Offline  Сообщение №582 написано: 22 сентября 2012, 08:56 | Отредактировано: Вис - 22 сентября 2012, 09:00



298
rizys-mod, Спасибо!
Вновь вопрос: как я понял функция GetPCMiscStat "Mines Disarmed" отвечает за кол-во обезвреженных мин. Нужно сделать так, чтобы при заходе в игру моя переменная повышалась на кол-во обезвреженных мин. Сам код понятен
Code
Set Переменная to GetPCMiscStat "Mines Disarmed"

Затем нужно в зависимости от переменной сделать так, чтобы когда первый раз вошёл в игру взрывчатка повышалась на определённое кол-во. Это тоже понятно:
Code
short DoOnce

Set Переменная to GetPCMiscStat "Mines Disarmed"
If Переменная>=10 && Переменная<20
Player.ModAV explosition 1
Set DoOnce to1
esleIf Переменная>=20 && Переменная<30
Player.ModAV explosition 2
Set DoOnce to1
elseIf Переменная>=30 && Переменная<40
Player.ModAV explosition 3
Set DoOnce to1
END

И так далее. А с каждым новым десятком взрывчатка должна повысится на 1. Но ведь тогда взрывчатка будет увеличиваться каждые 5 секунд (т.к. квестовый ГеймМод), а нужно чтобы она увеличилась лишь 1 раз, а потом когда достигнет следующей отметки повысится ещё раз. Например: GetPCMiscStat "Mines Disarmed" равно 31, значит взрывчатка повышается на 3. Потом, когда GetPCMiscStat "Mines Disarmed" доходит до 40, взрывчатка повышается на один и т.д.

Ipatow  Offline  Сообщение №583 написано: 22 сентября 2012, 09:12



Цитата Вис

И так далее. Но ведь тогда взрывчатка будет увеличиваться каждые 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
тогда повторности взяться будет просто неоткуда

Вис  Offline  Сообщение №584 написано: 22 сентября 2012, 09:27



298
Ipatow, а разве блок
Code
IF (GetPCMiscStat "Mines Disarmed") > (Awarded * 10 + 9)
SET Awarded TO Awarded +1
Player.ModActorValue Explosives 1  

Повторяться по кругу?

Ipatow  Offline  Сообщение №585 написано: 22 сентября 2012, 09:34



Вис, разумеется, этот блок вертится без передышки. Как только количество обезвреженных мин набрало очередной десяток (на самом деле я бы там сделал сильно тормозящую в росте функцию - в идеале логарифм - иначе первая же тысяча обезвреженных мин отсыплет игроку +100 - но это неважно и это тебе решать), очко в скилл выдаётся и одновременно меняется значение, с которым сравнивается число разминированного. Ты замечаешь, что и левая, и правая часть сравнения увеличиваются?

Вис  Offline  Сообщение №586 написано: 22 сентября 2012, 09:42 | Отредактировано: Вис - 22 сентября 2012, 09:49



298
Цитата Ipatow

Ты замечаешь, что и левая, и правая часть сравнения увеличиваются?


А, всё понял, спасибо!

rizys-mod  Offline  Сообщение №587 написано: 23 сентября 2012, 10:47 | Отредактировано: rizys-mod - 23 сентября 2012, 10:49


Команда "Rizys-Mod"


250
Привет всем!
Как замедлить или ускорить время в игре? На секунд 5.

Команда "Rizys-mod" - разработка плагинов на Fallout.
Ipatow  Offline  Сообщение №588 написано: 23 сентября 2012, 11:34



Цитата rizys-mod

Как замедлить или ускорить время в игре?

Масштаб времени - псевдо-глобальная-переменная TimeScale, которой можно присваивать значение как любой другой. По умолчанию там, помнится, 30 (т.е. две минуты реала - час игрового мира, 48 минут - сутки).

rizys-mod  Offline  Сообщение №589 написано: 23 сентября 2012, 11:54 | Отредактировано: rizys-mod - 23 сентября 2012, 11:56


Команда "Rizys-Mod"


250
Ипатов, спасибо. Только имелось ввиду именно чтобы вокруг все медленно двигалось.

Команда "Rizys-mod" - разработка плагинов на Fallout.
Ipatow  Offline  Сообщение №590 написано: 23 сентября 2012, 12:22



Цитата rizys-mod

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

Тип этой псевдопеременной - Float. То есть значения наподобие 0.125 (время в игре в восемь раз медленнее реального времени, в котором двигается ГГ) совершенно законны.

rizys-mod  Offline  Сообщение №591 написано: 23 сентября 2012, 12:36


Команда "Rizys-Mod"


250
Как то оно не замедлело время... Наверно вы меня не поняли. Нужно что-то этакое как "замедлителя времени" я попробовал сделать как вы сказали, но время не замедлилось. Есть такой мод, называется "bullet time" наподобие этого мне нужно.

Команда "Rizys-mod" - разработка плагинов на Fallout.
Ipatow  Offline  Сообщение №592 написано: 23 сентября 2012, 12:57



Цитата rizys-mod

Как то оно не замедлело время... Наверно вы меня не поняли. Нужно что-то этакое как "замедлителя времени" я попробовал сделать как вы сказали, но время не замедлилось. Есть такой мод, называется "bullet time" наподобие этого мне нужно.

Я понял, но поскольку сам никогда не интересовался реализацией замедленного движения, я перепутал два временных механизма. Скачал, посмотрел. Bullet Time построен на функции SetGlobalTimeMultiplier.

rizys-mod  Offline  Сообщение №593 написано: 23 сентября 2012, 13:06


Команда "Rizys-Mod"


250
Спасибо, как раз это мне и нужно было знать. Раньше тоже не интересовался, но сейчас понадобилось.

Команда "Rizys-mod" - разработка плагинов на Fallout.
eng2033  Offline  Сообщение №594 написано: 28 сентября 2012, 16:36



7
Здравствуйте.У меня есть 3 вопроса.
1)Как сделать чтоб через терминал можно было покупать постройки(снимаются деньги и появляется постройка в определёном месте)?
2)Как сделать так чтоб пушка из анкориджа среляла 1 раз когда намёш на кнопку и в определёное место?
3)Можно сделать в редакторе чтоб было видно несколько ячеек а не одну?

Рыба  Offline  Сообщение №595 написано: 28 сентября 2012, 18:09


faceless


693
eng2033,
1)В разделе Script result пишется:
Player.RemoveItem 000000f 2000
ExampleBulidingRef.Enable
У постройки выставить аналогичный в скрипте Reference Id.
2)Не помню никакой пушки, однако, можете создать активатор, на него повесить скрипт, с командой PlaceAtMe.
На место выстрела поставить XMarkerHeading, изначально прописав у него Reference Id.
В скрипте на активатор прописать (с режимом GameMode, и используя переменную в режиме OnActivate)

бла-бла-бла...

Begin GameMode

If RunIt == 1
ExampleExplosionPlaceRef.PlaceAtMe MegatonNukeExplosion (или выбрать любой взрыв себе по вкусу в разделе Explosions)

бла-бла-бла...

3) Так нельзя. Можно лишь открыть несколько редакторов одновременно. Для сего нужно поменять значения в файле Geckprefs.ini (или в похожем про ГЕКК, уже не помню), а вот какое - гугл в помощь, я уже призабыл.

eng2033  Offline  Сообщение №596 написано: 29 сентября 2012, 15:24 | Отредактировано: eng2033 - 29 сентября 2012, 15:29



7
Sazan_Theme
1)спасибо.
2)Эти китайские 3 арт пушки надо взорвать в первой миссий в анкоридже,я ток делал чтоб они среляли как задумано авторами но там ток тригер его невыключить и пухи будут срелять пока их не взорвёш.
Про скрипты можно поподробней,а то я в скриптах неочень понимаю,ток начинаю разбираться.
3)Я делал потом если в них загружать плагины одновремено вылет один из гекков.
У меня есть ещё вопрос,почему если обьединять несколько статиков в коллекцию они становятся невидимыми(не все)?

rizys-mod  Offline  Сообщение №597 написано: 29 сентября 2012, 17:07


Команда "Rizys-Mod"


250
Цитата eng2033

2)Эти китайские 3 арт пушки надо взорвать в первой миссий в анкоридже,я ток делал чтоб они среляли как задумано авторами но там ток тригер его невыключить и пухи будут срелять пока их не взорвёш.


Вот скрипт на активатор:

Code
Short DoOnce

Begin OnActivate
if DoOnce == 0
  AnchOverlookGunRef.playgroup Forward 1
  MarkerRef.PlaceAtMe DLC02GunBatteryImpactExplosion 1
  Set DoOnce to 1
endif
End

AnchOverlookGunRef - Reference ссылка пушки
MarkerRef - Referencz ссылка маркера XMarkerHeading (на нем будет взрыв DLC02GunBatteryImpactExplosion из анкориджа)

Команда "Rizys-mod" - разработка плагинов на Fallout.
Рыба  Offline  Сообщение №598 написано: 29 сентября 2012, 18:28


faceless


693
eng2033, объединяй комбинацией Ctrl+G.

eng2033  Offline  Сообщение №599 написано: 30 сентября 2012, 15:21



7
объединяю комбинацией Ctrl+G,а они исчезают токо если они из длк.
А за активатор спс. good
И ещё заставить работать DLC05ZetaLaserAim (лазер пушки смерти из 5 длк)

Galko  Offline  Сообщение №600 написано: 30 сентября 2012, 15:25


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


Цитата eng2033

они исчезают токо если они из длк


Сделай дубликаты нужной статики из ДЛС (открой, измени ID и сохрани как новый объект) И уже из этих дубликатов набирай статик-коллекцию

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





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