vjronin, можно сделать всё одним квест-скриптом и форм-листами.
Код
scn НазваниеСкрипта
int ModOff ref ModTarget
Begin GameMode
If Player.GetEquipped НазваниеПредмета == 1
If Player.GetAnimAction != 4
Set ModOff to 0
EndIf
If Player.GetAnimAction == 4
If ModOff != 1
Set ModOff to 1 Set ModTarget to GetCrosshairRef
If ModTarget.IsInList СписокЦелей1 == 1
Те действия которые нужно сделать, в этот момент... Те действия которые нужно сделать, в этот момент... Те действия которые нужно сделать, в этот момент...
ElseIf ModTarget.IsInList СписокЦелей2 == 1
Те действия которые нужно сделать, в этот момент... Те действия которые нужно сделать, в этот момент... Те действия которые нужно сделать, в этот момент...
EndIf
EndIf
EndIf
EndIf
End
Частоту квеста скрипта можно поставить 0.04 (25 FPS). По форм-листам раскидать объекты/цели.
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №67
| Тема: Помощь по моддингу
написано: 14 июня 2016, 15:37
| Отредактировано: MaxwellDemon - 14 июня 2016, 15:37
sergerenard, забыл умное слово ... "ребилдинг" что ли... В общем - когда берёшь готовое решение и разбираешь его на кусочки, пока не поймёшь с чего всё начиналось - изучение методом обратной последовательности, если можно так выразится. Переходя к от общего к частному - берёшь готовый мод, который содержит интересующие тебя моменты, находишь в моде эти самые моменты и смотришь что к ним привело, понимаешь принцип и делаешь уже на свой манер. Вот пара ресурсов: GECK и TIARUM.
Что считается более оптимизированным и предпочтительным?
Можно конечно нагородить конструкцию, которая вариативно будет включать/выключать отдельные квесты со своими скриптами. Но всегда ли нужен такой подход? Моё мнение - конечно же нет! Если речь идёт о каких-то гигантских конструкциях - то допустим, есть смысл. Если нужно просто связать разные скрипты (и прочее) - можно использовать глобальные переменные. А если всё умещается в один скрипт - смысл городить огород?
Кстати - с камерой в диалогах нереально что-то сделать, кроме как зум выключить? Давно вопрос этот интересовал. Все-таки когда персонаж визуализируется при диалогах то это весьма доставляет. Хоть бы спину свою видеть и то прикольно было бы)
Во время диалогов, камера переходит в режим от первого лица - спину не увидишь.
Мальчишки и девчонки, а так же их родители, кто нибудь сталкивался с такой проблемой? Вычислил мод из-за которого игра вылетает, происходит это при снятии квестового предмета из совсем другого мода, при этом мод виновник краша и мод с предметом абсолютно никак не связаны и ни где не пересекаются (оба мода делал я, так что знаю точно)! Припоминаю - уже сталкивался с подобным... В чём причина таких крашей?
Можно объединить оба плага вручную или через FO3Plugin.
Не думал об этом т.к. нет задачи их объединять - разнонаправленные моды. Однако в качестве эксперимента этот финт прошёл - два мода (без каких либо изменений) отлично работают как один плагин, что опять же подтверждает отсутствие конфликтов (по крайней мере внутри GECK). Но обнаружилось, что квест-скрипт из мода виновника крашит игру при снятии любого квестового предмета из любых других модов... И опять же при объединении проблема исчезает. Ясное дело - объединил всё в один плагин и не парься, но мммм.... ну не эстетично это, что ли... Может кто нибудь в курсе причин подобных падений игры???
А зачем такие сложности? Если скрипт отслеживает количество ОЗ и снимает предмет при падении ниже выбранного порога, даже если игрок одел этот предмет - он будет тут же снят (в случае количества ОЗ ниже упомянутого порога).
Linnan, поконкретней опиши принцип действия желаемого скрипта: 1.) Каков порог ОЗ, количественный или процентный? 2.) Какая экипировка должна сниматься, конкретная или какого-то типа? 3.) Должна ли экипировка автоматически одеваться обратно, при восполнении ОЗ?
1 - Так сколько % то? 2 - Возможность есть, будет квест-скрипт с частотой, ну скажем, 50 в секунду. Что скрипту проверять то? Надет ли какой-то конкретный предмет или предмет из списка (создаётся список, в который добавляются желаемые предметы)? Или всё-таки проверять экипирован ли определённый слот? 3 - Проверять можно массу параметров. Например, если при восполнении ОЗ, слот с которого был снят некий предмет пустой - то экипировать тот предмет обратно....
Когда я говорил опиши поконкретней, я имел ввиду - напиши конкретно, как должен действовать скрип, а я переведу твои "фантазии" на скриптовый язык. А у нас, я как посмотрю, стандартная женская проблема - хочу того, не знаю чего...
1.) Делается список (Form List), в него добавляются все 70 предметов. 2.) Сохраняется переменная предмета, надетого в нужном слоте. 3.) При низких ОЗ. Если переменная находится в списке - снимается предмет и сохраняется в отдельную переменную, аля "снятый предмет". 4.) При высоких ОЗ. Если нужный слот пуст и переменная "снятый предмет" существует - одевается тот самый предмет и чистится та самая переменная.
Всё... И делается всё это одним ... мать его ... квест-скриптом и без кучи всяких "невидимых" предметов...
P.S. Только для проверки слота, а соответственно для одевания снятых предметов - нужен NVSE.
Добавлено (09 Августа 2016, 04:56) ---------------------------------------------
Linnan, написал я скрипт, даже проверил в игре - работает и думается так как вам и хотелось. Данный скрипт требуетNVSE и работает со слотамим upperbody и hair т.е. под броню и большинство шлемов (но не все). Смотри номера слотов тут GetEquippedObject. Для скрипта нужно предварительно создать список (Form List) и поместить туда все предметы соответствующих слотов, которые должны сниматься/одеваться. И ... чтоб его ... да это квест-скрипт для которого нужно будет делать квест, разжёвано на другом примере тут (только в данном случае частоту скрипта делать не 1 как в примере, а скажем 0.02). Делается элементарно и никаким "Заданием" в игре не является.
Linnan, Ох... Я повторюсь... Ребята... Мудрите по чём зря...
Я написал тебе один скрипт на все предметы и не важно есть они в инвентаре или нету.
В игре скрипт действует так: Если ОЗ упали ниже 50% и если при это на персонаже надеты любой(ые) предметы(ы) из списка предметов - то они снимутся. Если ОЗ выросли до 50% и выше - именно те предметы что были сняты и оденутся обратно, если только игрок уже не одел в те слоты другие предметы.
Добавлено (09 Августа 2016, 13:14) ---------------------------------------------
Цитата Linnan
... чтобы в инвентаре отображался только комплект с привязанным к нему скриптом, а сами элементы оставались бы в инвентаре невидимыми и включались/выключались по заданным условиям ...
Пардон, а комплект и элементы это разные вещи? Никак не пойму зачем "аловердесы" с невидимыми псевдо предметами, когда можно обойтись без них...
По словам людей, гораздо более грамотных чем я, отследить "здоровье брони" при помощи скриптов нереально.
Люди ошибаются. Вот нужная команда - GetEquippedCurrentHealth (требует NVSE). Есть ещё команды действующие на данный аспект, я с их помощью сделал в моде "ModResTech" - отслеживание состояний предметов и их авто-ремонт, в соответствии с навыком ремонта игрока. Так что всё работает...
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №81
| Тема: ВОПРОСЫ по моддингу
написано: 10 августа 2016, 19:39
| Отредактировано: MaxwellDemon - 10 августа 2016, 20:10
... зависящие не от здоровья, а от состояния самой брони ... такое вообще реально?
Linnan, знаешь, а ведь действительно так будет правильней, если я правильно понял - что ты хочешь сделать: Ты хочешь сделать базовую броню (скажем с моделью "нагрудник") и невидимые в инвентаре, но видимые на игроке предметы (с моделями типа "сапоги", "перчатки", "штаны" и т.п.) и при повреждении "базовой" снимать/заменять "невидимые" модели? Конечно, лучше было бы не снимать, а заменять "невидимые" предметы на другие (с более или менее разрушенными моделями, в зависимости от состояния "базовой" брони), да и базовую можно заменять по такому же принципу...
На этот раз я угадал, что ты хочешь сделать? Если да, то выкладывай мод с одним комплектом, естественно модели и текстуры к нему. Я скачаю, напишу скрипт к комплекту, сохраню с рабочим скриптом и выложу тебе обратно - потом уж сама (думаю сможешь) по типу сделать скрипты к остальным комплектам.
Linnan, перечитай моё сообщение, я изменил/обновил его.
Добавлено (10 Августа 2016, 23:15) ---------------------------------------------
Цитата MaxwellDemon
На этот раз я угадал, что ты хочешь сделать? Если да, то выкладывай мод с одним комплектом, естественно модели и текстуры к нему. Я скачаю, напишу скрипт к комплекту, сохраню с рабочим скриптом и выложу тебе обратно - потом уж сама (думаю сможешь) по типу сделать скрипты к остальным комплектам.
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №84
| Тема: ВОПРОСЫ по моддингу
написано: 10 августа 2016, 20:50
| Отредактировано: MaxwellDemon - 10 августа 2016, 20:52
Linnan, нужен один полный комплект, и "базовая" броня и "невидимые" элементы (назови все их в GECK однотипно - с одинаковым началом имени).
Цитата Linnan
... требует установку нестандартного тела ...
Комплект лучше в точности как у тебя, по фиг на тело, в конце концов мне ведь не важно как модели отображаются, а скрипт на них я написать/проверить смогу.
Добавлено (10 Августа 2016, 23:50) --------------------------------------------- Linnan, сейчас подумал - не проще ли заменять модель брони целиком?
Просто несколько цельных моделей с разными степенями "повреждений" и уж их заменять друг другом: ОЗ упали - модель меняется на более "повреждённую". ОЗ выросли - модель меняется на менее "повреждённую".
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №85
| Тема: ВОПРОСЫ по моддингу
написано: 10 августа 2016, 21:06
| Отредактировано: MaxwellDemon - 10 августа 2016, 21:10
Помог Linnan с реализацией её задумки. Тема оказалась обсуждаемая, а направление в принципе интересное... Если кто захочет заморочиться с текстурами, а может даже моделями - сама механика процесса замены внешнего вида брони, в зависимости от условий готова:
Сделал два варианта - один в зависимости от износа брони, другой зависит от ОЗ в процентах. Одна броня меняет пять разных моделей, в зависимости от условий (для примера взяты разнообразные модели боевой брони).
И пожалуй повторюсь - если кто нибудь сделает разные текстуры одной брони, а если ещё и разнообразные модели, к этой броне ... на тему различных стадий разрушения, всё той же брони ... на мой взгляд, был бы весьма интересный мод. Чисто структурно всё сделано - всё работает...
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №87
| Тема: Вопросы по скриптам Papyrus
написано: 22 августа 2016, 17:28
| Отредактировано: MaxwellDemon - 22 августа 2016, 04:27
Привет "скайримщикам"! Тут такое дело ... после скриптов Fallout 3 / Fallout NV - дай, думаю, поковыряюсь в Skyrim. Я думал, что разницы нет, а оказывается - тут всё не совсем так ... или даже совсем не так.
Люди, помогите вникнуть, на простом и конкретном примере:
Нужен скрипт "спамер" - что бы повторялся, ну скажем, каждую секунду. Если в игре нет призванного игроком, ну например, огненного атронаха - вызвать его.
Может кто нибудь написать этот скрипт и чуть-чуть разжевать как его создать?
Добавлено (22 Августа 2016, 17:51) --------------------------------------------- Один "пустой" квест, один скрипт, три переменных.
Код
Scriptname ModPetSCRIPT extends Quest
MagicEffect Property ModPetEFFECT Auto
SPELL Property ModPetSPELL Auto
Actor Property ModPetPLAYER Auto
Event OnInit()
RegisterForSingleUpdate(1.0)
EndEvent
Event OnUpdate()
If ModPetPLAYER.HasMagicEffect(ModPetEFFECT) == false ModPetSPELL.Cast(ModPetPLAYER, ModPetPLAYER) EndIf
RegisterForSingleUpdate(1.0)
EndEvent
Добавлено (22 Августа 2016, 20:28) --------------------------------------------- Такой вот вопросик - как получить переменную из "горячих" клавиш? Не могу найти команду, нужно что то вроде команды из Fallout GetHotkeyItem.
FolaytSuper, предлагаю метод основательного наложения болта на данную проблему!
А если серьёзно - единственные (на мой взгляд) неудобства, которые порой подкидывает GECK мододелу, это нежелательные изменения в моде, которые решаются FNVPlugin.
Изменение репутации для пользователя MaxwellDemon
MaxwellDemonOffline
Сообщение №90
| Тема: Скрипты
написано: 8 сентября 2016, 20:29
cruznik, если сделать предметы "неигровыми" т.е. снять галочку с Playable - то игрок не увидит эти предметы в инвентаре, а следовательно не сможет снять их с кого либо.
Ну скриптом можно сделать например так: ловить условиями момент игры, когда игрок осматривает труп и в такие моменты делать всю одежду в игре "неигровой" (ручками прописать каждую броню в скрипте), иначе - возвращать всей броне "игровой" статус... Менять статус командой SetIsPlayable.