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

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


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




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

Ой, всё...
Quazar  Offline  Сообщение №1321 написано: 9 ноября 2014, 17:41 | Отредактировано: QuazarX - 9 ноября 2014, 17:45



446
Цитата Ipatow

ну да ты не показал даже тот кусок, в котором сама проблема проявляется.

Как раз таки он и показан. Я комментировал это  - если не прерывать время действия эффекта, то все работает идеально, но если прервать, начинается чехарда - таймер срабатывает как попало. Т.е. предположительно причина скрывается где-то в момент когда фризится остаточное время работы эффекта, т.е. когда устанавливается переменная timer. Но это конечно предположение, уверенности у меня нет. На счет остальных фрагментов - они отношения к делу не имеют (это комплексный скрипт), они вовсе не отвечают за работу ПНВ поэтому я их опустил.

Ipatow  Offline  Сообщение №1322 написано: 9 ноября 2014, 20:39



Цитата QuazarX

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

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

Если AANightVisionSpell непрерывно включен LimitTime пополам часов, флажок Time перещёлкивается на единицу и вернётся на ноль только после каких-то закадровых манипуляций, но если не оставлять AANightVisionSpell включенным дольше чем на два часа, а время от времени отключать (отсчёт от StartNV начинается заново при каждом включении), то Time останется ноликом навсегда. Немного странно, но не страннее бесцельного таймера... Или эти две странности друг друга компенсируют, и при проверке лимита нужно было таймер учесть, а одновременно с выставлением единицы в Time ещё и обнулить timer? Да, трудно разобраться в проблеме, когда в тайне держится и что хотели, и что получили... Приходится нутром чуять, "что это за лампочки? должны ли они так мигать?"

Quazar  Offline  Сообщение №1323 написано: 10 ноября 2014, 06:47



446
Цитата Ipatow

то Time останется ноликом навсегда

Не остается, в противном случае скрипт не работал бы вовсе, в любых вариантах, а это не так. 
Впрочем... спором делу не поможешь, а решить вопрос как-то надо. Допустим моя схема неверна, если так удобнее - будем считать так, тогда хочу узнать какая схема будет верной? Какие есть варианты?

Ipatow  Offline  Сообщение №1324 написано: 10 ноября 2014, 08:52



Цитата QuazarX

остаточное время работы может составлять

В твоём скрипте нет никакого "остаточного времени работы"! Я не говорю, что его нигде нет - но в том скрипте, который ты показал, его нет. И как ты предлагаешь искать решение проблемы, если проблема оставлена за кадром?...

Вот как подобного содержания скрипт написал бы я:
(1) Оставшийся заряд устройства фиксируется только в момент выключения; если хочется, например, вывести эту цифру наглядно в HUD - тут добавить

(2) Тут батарейки расходуются автоматически; если хочется делать это более торжественно и интерактивно - хозяин барин.

Quazar  Offline  Сообщение №1325 написано: 10 ноября 2014, 10:40



446
Цитата Ipatow

Вот как подобного содержания скрипт написал бы я:

Вот, спасибо за урок! Мне всегда пригодится.

greyal  Offline  Сообщение №1326 написано: 11 ноября 2014, 13:12



10
В общем, никак не удавалось заставить собачку противостоять врагу до победы :) Про поправки понял, но как это отразить в настройках - нет. Возможно, какая-то взаимосвязь есть с Combat Style, но как ни пытался менять настройки и в нем тоже, без толку. Меняются нюансы поведения именно по движениям, действиям, но атаковать не хочет ни в какую после 5-6 убитых врагов. Все-таки нашел связь со здоровьем. Не важно какое число здоровья выставлено изначально, 200 или 2000 или 20000, есть или нет неуязвимость и бессмертие - главное, что любое, первоначальное кол-во здоровья считается за 100%. Если собаку атакует куча врагов, то какие бы настройки ни стояли - все-равно, видимо, идет просчет повреждений и процент здоровья падает. И хотя собака не умирает, но похоже, из-за поправок теряется отвага и т.д. Собака начинает трусить. Короче говоря, прилепил на нее скрипт, чтобы здоровье постоянно держалось на 100% и проблема решилась.
Убивает всех в охраняемой зоне, сколько бы врагов ни напало good

Spalny_Vagon  Offline  Сообщение №1327 написано: 12 ноября 2014, 13:06 | Отредактировано: Spalny_Vagon - 12 ноября 2014, 13:08


Мастер


Цитата Ipatow

(GameDaysPassed - StartNV)

Я в свое время вообще обошелся без глобальных переменных для своего ПНВ. Просто в квестовом скрипте взял число (у меня 600) и в каждом фрейме (т.е. каждые 5 секунд) уменьшал его на единицу. ПНВ включен - считаем, выключен - не считаем. До нуля дошло - меняется батарейка. Потом, когда был усложнен сам прибор (добавил яркость и тепловизор) усложнился и алгоритм "расхода" - т.е. чем ярче, тем чаще меняется батарейка. А что касается глобальных переменных времени, то они, бывает, ни с того, ни с сего "взбрыкивают", особенно gamehour. В menu mode (сон или ожидание) при переходе от 24 часов к 0 gamehour иногда ведет себя совершенно непредсказуемо.

======================
Мод "Нью-Йорк" на русском: 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
Ipatow  Offline  Сообщение №1328 написано: 12 ноября 2014, 14:58



Цитата Spalny_Vagon

Я в свое время вообще обошелся без глобальных переменных для своего ПНВ.

Ну, здесь оно было отчасти сделано с тем же акцентом, что оригинал - там использовался GameDaysPassed - в совсем своих скриптах я как правило считаю секунды, а не дни... Что разница непринципиальная, но мне просто в основном с короткими отрезками времени доводится обращаться. Мысль отсчитывать время оборотами скрипта любопытна - причём можно ведь и длиннее 5 секунд паузу делать - но совершенно не стыкуется с необходимостью в том же скрипте следить за нажатостью кнопок (флегматично держать нажатую кнопку 5 секунд, когда какой-то гад выключил свет и плюётся из темноты - нервы из простой стали не выдержат :D ). Внутрисуточное время я даже не соображу, где использовал - в пакетах, наверное? Но там свой хронометр... То есть GameHour вовсе не использую, и даже не потому, что помню о его сумбурном поведении в районе полуночи, а просто мне всегда была важнее длительность событий, а не время их начала-конца по курантам unsure

Ipatow  Offline  Сообщение №1329 написано: 15 декабря 2014, 18:07



Цитата D_e_n_n_y

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

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

Теоретически возможно при помощи скриптов переделать к чертям модель повреждений игры, но практического смысла такое иметь не будет - производительность скриптов неприемлемо низка для этой задачи.

ncrrainjer  Offline  Сообщение №1330 написано: 16 декабря 2014, 15:26



199
Всем привет,подскажите пожалуйста как скриптовой командой прибавлять глобальные переменные???Например GlobalA=0  нужно прибавить 1 чтобы стало GlobalA=1

Quazar  Offline  Сообщение №1331 написано: 16 декабря 2014, 15:59



446
Цитата ncrrainjer

Например GlobalA=0  нужно прибавить 1 чтобы стало GlobalA=1


Set GlobalA to GlobalA + 1   ; можно еще проверить на текущее значение If GlobalA == 0, но это уже по желанию..

ncrrainjer  Offline  Сообщение №1332 написано: 16 декабря 2014, 16:33



199
QuazarX, Спасибо:)

Добавлено (16 Декабря 2014, 19:33)
---------------------------------------------
У меня почему-то в место значения 1 выдает значение 47 в чем причина может быть?


Quazar  Offline  Сообщение №1333 написано: 16 декабря 2014, 17:43 | Отредактировано: QuazarX - 16 декабря 2014, 17:49



446
Цитата ncrrainjer

У меня почему-то в место значения 1 выдает значение 47 в чем причина может быть?

Можно еще использовать так Set GlobalA to 1, так будет жестко ставить на значение 1. Но ты же спрашивал с прибавлением 1...

В общем, ответил в ЛС (т.к. ты еще и туда писал)..

ncrrainjer  Offline  Сообщение №1334 написано: 18 декабря 2014, 15:08



199
Ещё вопрос назрел.Ситуация такая 1-Создал 28 разных НПС на одной Template базе (Чтобы не как клоны были) 2-Поместил их в в Var фаил (по примеру VarWastelander) 3-Сделал, что бы НПС появлялись рядом с Хмаркером StartMarker командой StartMarker.placeatme VarWastelander 1.4-Сделал квест-диалог,прописал в условиях диалога всех 28 НПС.И тут вопрос возникает,всё работает нормально, но вот НПС не реагируют на диалог (Он у них вообще не появляется)В чем может быть проблема???(на карте НПС не проставлены)

Ipatow  Offline  Сообщение №1335 написано: 18 декабря 2014, 15:33



Цитата ncrrainjer

В чем может быть проблема???

Может быть в куче самых разных вещей. Например, квест с диалогом не запущен...

КсюXa  Offline  Сообщение №1336 написано: 18 декабря 2014, 15:45 | Отредактировано: КсюXa - 18 декабря 2014, 15:47


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


Цитата ncrrainjer

на карте НПС не проставлены

А с кем тогда диалог-то пытаешься завести?

Ой, всё...
ncrrainjer  Offline  Сообщение №1337 написано: 18 декабря 2014, 16:24



199
КсюXa, Ну всмысле они в самой игре есть,а на карте нет, и когда их через терминал запрашиваешь,они появляются возле условного маркера

Добавлено (18 Декабря 2014, 19:24)
---------------------------------------------
Ipatow, Квест с диалогом запущен,стоит галка на Start game enabled


КсюXa  Offline  Сообщение №1338 написано: 18 декабря 2014, 17:20


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


ncrrainjer, самый часто встречаемый "прокол" - тип голоса у непися. ;) Забывают назначить либо используют чей-то уникальный - и неписи немеют.

Ой, всё...
ncrrainjer  Offline  Сообщение №1339 написано: 18 декабря 2014, 17:21



199
КсюXa, Ну так сам диалог то должен появиться в этом случае я полагаю?В этом случае просто никакой анимации и звука не будет

КсюXa  Offline  Сообщение №1340 написано: 18 декабря 2014, 17:31


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


Цитата ncrrainjer

Ну так сам диалог то должен появиться в этом случае я полагаю?


Хм... не помню. Вроде бы да... пустое поле без текста и Гудбай от ГГ. А что - и этого нет?

Кстати, я полагаю, например, что тебя зовут Александр, тебе 26 лет и живешь ты в городе Старый Оскол ;) Не?

Ой, всё...
ncrrainjer  Offline  Сообщение №1341 написано: 18 декабря 2014, 17:38



199
КсюXa, Нет, а с чего такое предположение?если не секрет

КсюXa  Offline  Сообщение №1342 написано: 18 декабря 2014, 17:47


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


Цитата ncrrainjer

Нет, а с чего такое предположение?если не секрет


Это я к тому, что хреновый из меня телепат (да и из всех остальных, кто захочет тебе помочь) :D
Я вот ПОСМОТРЕЛА твой профиль и из него узнала, что зовут тебя Андрей, тебе 25 лет и ты из Барнаула. Улавливаешь мысль? ;)

Ой, всё...
ncrrainjer  Offline  Сообщение №1343 написано: 18 декабря 2014, 17:49



199
КсюXa, Не совсем понял о чем ты,но да ладно:)

КсюXa  Offline  Сообщение №1344 написано: 18 декабря 2014, 17:51 | Отредактировано: КсюXa - 18 декабря 2014, 17:52


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


ncrrainjer, я про то, что было бы неплохо УВИДЕТЬ квест и его скрипт и как диалоги расписаны... Скриншоты, чтоль или как-то еще. А не гадать вслепую - почему диалоги не появляются.

Ой, всё...
ncrrainjer  Offline  Сообщение №1345 написано: 18 декабря 2014, 17:51



199
Так, затея с эксперементом с Var файлом провалилась,теперь подскажите пожалуйста,вот есть 28 разных персонажей,как сделать появление в одном месте случайного персонажа из этих 28(а не одного и того же)

КсюXa  Offline  Сообщение №1346 написано: 18 декабря 2014, 18:06 | Отредактировано: КсюXa - 18 декабря 2014, 19:01


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


У меня дежа-вю??? mellow

ncrrainjer,  ты уже спрашивал однажды, почему неписи молчат. И целая страница была посвящена ответам.

Цитата ncrrainjer

как сделать появление в одном месте случайного персонажа из этих 28(а не одного и того же)


вообще-то общепринято делать так: создаются несколько базовых неписей с нужными характеристиками, с нужной экипировкой и т.д. Эти неписи НЕ размещаются в локации. Затем создается уровневый список LeveledCharacter (тот самый Var-файл). А вот уже в этот список перетаскиваются или выбираются в поле внутри эти самые новые персонажи. Список сохраняется. Затем создается ЕЩЕ один новый непись, у которого в качестве ШАБЛОНА выбирается как раз этот самый уровневый список и отмечаются нужные галочки, что использовать от неписей из этого списка: - пакеты, инвентарь, скрипты и т.д. Этот последний непись сохраняется. И именно этот базовый непись выставляется в локации и участвует в скриптах (или его реф-копия с локации). В редакторе он выглядит, как объемная буква "М" со стрелочкой. Цвет этой буковки на локации зависит от того, какой уровень назначен её реф-копии: белый - по-умолчанию, зеленый - простой, желтый - средний и так далее.
Поэтому, если хочешь, чтобы помогли разобраться с проблемой - скриншоты в студию. Скриншоты базовых неписей первого уровня (которые добавлялись в Var-файл) с видимыми вкладками трейтов, статсов, фракций и пакетов, скриншот самого списка, чтоб посмотреть, какие галочки отмечены и скриншот "оконечного" непися, которому этот список назначен в качестве шаблона. Желательно еще скриншот первой вкладки квеста и скриншот какого-либо топика из этого квеста.
Уф... А проще дать через ЛС кому-нибудь просто файл-еспешник с модом для разбора...

Ой, всё...
ncrrainjer  Offline  Сообщение №1347 написано: 19 декабря 2014, 16:22



199
КсюXa, В общем все понятно, спасибо за развернутый ответ.

Добавлено (19 Декабря 2014, 19:22)
---------------------------------------------
Попробовал,теперь всё работает,только еще один маленький вопросик.У нас есть один НПС на основе LeveledCharacter,на этом НПС висит диалог с командами стой там иди за мной.Вопрос в том,можно ли как-то сделать,что бы если я прописываю 10 НПС они не все шли за мной,а только тот НПС кому я даю команду?


КсюXa  Offline  Сообщение №1348 написано: 19 декабря 2014, 18:54


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


Цитата ncrrainjer

если я прописываю 10 НПС они не все шли за мной,а только тот НПС кому я даю команду?

Куда прописываешь?

Ой, всё...
ncrrainjer  Offline  Сообщение №1349 написано: 20 декабря 2014, 06:55



199
КсюXa, Сделал,все как вы и описали.Создал НПС на основе LeveledCharacter.Его через команду в терминале TestXmarker.placeatme NPSTest 1 добавляю в нужное место (Всё работает отлично,и диалоги тоже) лимита на НПС нет.

Ipatow  Offline  Сообщение №1350 написано: 20 декабря 2014, 08:06



Цитата ncrrainjer

можно ли как-то сделать, что бы если я прописываю 10 НПС они не все шли за мной, а только тот НПС кому я даю команду?

Разрешается, причём разными способами. Например, скрипт соответствующей реплики диалога навешивает на собеседника какой-то маркер (суёт ему в карман невидимый предмет, нацепляет на него Actor Effect и т.п. - прояви фантазию), а назначенный всем этим неписям пакет проверяет наличие маркера. У кого есть маркер - тот идёт за боссом, у кого нет маркера - пакет не активируется.

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





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