AlexKu, проблема именно в том, что окно не влезает в экран? Если так, то можно что-то придумать... Можно сделать программу для изменения размера окон, у которых это заблокировано. Или для скролла по ним. Что-то такое.
Скриптом можно создать любой объект возле любого другого объекта или на любых координатах...
Но если нужно, чтоб сыр появлялся именно там, куда игрок направил курсор (как атронах), то будет чуть сложнее... Даже так сходу и не скажешь. Наверное, придется заходить через Explosion аж...
Добавлено (27 Января 2015, 22:42) --------------------------------------------- То есть, можно легко сделать, чтоб предмет появлялся перед игроком на какой-то высоте. Но он будет падать сразу. Это легко.
А вот так, чтоб направил курсор на стол и получил кусок сыра именно на столе - это чуть посложнее. Тебе как нужно?
Ты точно-точно уверен, что там надо столько проперти?
Представь скрипт, который целиком переносит Коллегию Винтерхолда в другое место. Потом добавляет каждому её обитателю рандомное персональное домашнее животное. И в добавок делает так, чтоб все эльфийки Скайрима перед сном раздевались и надевали рандомное нижнее белье. Так вот даже такому скрипту не понадобилось бы более 5-10 проперти... И они бы все заполнились нажатием кнопки Auto-Fill All.
teron_b2, не знаю. Создать такой же скрипт с другим именем и скопировать туда Property можно. Но имя скрипта фигурирует в сейвах. Если игрок уже сохранялся с предыдущим скриптом, наверняка проблем не избежать. Так же могут перестать работать другие скрипты, которые использовали этот.
Gvinpin, если бы у меня была полезная информация по твоему вопросу, конечно, ответил бы. Но я такого не встречал.
teron_b2, там на рецептах есть условия, при которых они видны. Например, для того, чтоб был виден рецепт стального арбалета (DLC1RecipeTechSteelCrossbow), должно выполняться два условия: игрок должен иметь перк SteelSmithing и глобальная переменная DLC1TechXbowSteelChanceNone должна равняться нулю. А равной нулю она становится, когда игрок просит Сорин научить его крафтить арбалет.
А тебе нужно какое-то своё условие придумать. Например, свою глобальную переменную. Когда игрок крафтит меч, значение переменной должно измениться.
Отследить крафт меча можно разными способами: скриптом на мече, скриптом на алиасе игрока, квестом, который стартует по ивенту OnStoryCraftItem итп.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №428
| Тема: Вопросы по скриптам Papyrus
написано: 1 февраля 2015, 09:41
| Отредактировано: Dsion - 1 февраля 2015, 09:50
В диалоге есть поле для скрипта "End:". Можно просто всписать туда akSpeaker.StartCombat(Game.GetPlayer()) Тогда NPC договорит свою фразу и набросится на игрока. Но не станет врагом игрока перманентно.
Если NPC должен стать врагом навсегда, можно всписать такое: akSpeaker.SetRelationshipRank(Game.GetPlayer(), -4) NPC станет врагом игрока. Но будет ли он на игрока набрасываться - зависит от характеристики Aggression. Если Aggression == 0, то не будет. Если Aggression == 1, будет набрасываться на врагов. Если Aggression == 2, то (тут я не уверен) будет набрасываться на всех не-союзников.
Aggression можно задвать в настройках Actor'а или изменять в том же скрипте: akSpeaker.SetActorValue("Aggression", 1)
Если на кольце энчант с магическим эффектом и скриптом, то RegisterForSingleUpdate должно работать (для эффекта, не для кольца). А если просто обычное кольцо без дополнительных мер, то у него нету своего ID, пока оно в контейнере. Регистрация для каких-то событий - это только малая часть того, чего с ним нельзя будет сделать...
Добавлено (02 Февраля 2015, 16:33) --------------------------------------------- На пальце - тоже нету... Выбросить в мир - появится... Можно в скрипт на кольце в любом месте добавить Debug.MessageBox(Self), чтоб проверить, есть ли у ниго личное ID.
Можно объединить... А можно и не через задницу сделать Не буду кричать, что добавить предмет торговцу - это очень легко, но можно придумать что-то поинтереснее, чем редактировать сундук. Для начала можно было бы попробовать при помощи скрипта (именно скрипта) добавить книгу в список LItemSpellTomes50AllAlteration. Тогда она должна появиться в продаже у Толфдира и у Виландрии. И мод останется совместимым с любым другим.
Добавлено (06 Февраля 2015, 15:35) --------------------------------------------- Добавить что-нибудь в сундук тоже скриптом можно... Но сундуки сбрасываются каждый день... Потому нужно что-то более хитрое, чем просто один раз добавить предмет.
Вряд ли Вас устроит точность в +/- 300% Вот, к примеру, эбонитовые перчатки с зачарованием стоят 1000 монет, а функция показывает базовую стоимость перчаток - 275 монет.
Если что-то полезное придет в голову, я обязательно напишу. Ну или кто-то еще.
Я бы предпочел сделать качественно... Чтоб этот коэффициент задавался вручную, а не оказался таким "как получится"... Но если ничего не придет в голову и никто другой не возьмется...
Попробовал еще несколько вариантов, но так и не получилось правильно определить цену зачарованных предметов. И не важно, был ли предмет найден зачарованным или зачарован игроком... Нельзя просто сделать этого компаньона торговцем, но с более низкими ценами?
Лично мне недостаток скрипта кажется не очень-то приемлемым, но, если хотите, я сделаю. Это не сложно.
Только уточните: 1. Должны ли 2 суток отсчитываться для каждого предмета отдельно. Или просто всё разом должно продаваться. 2. Какой должен быть коэффициент полезного действия сундука. И должен ли он зависеть от каких-то умений/перков игрока.
Изменение репутации для пользователя Dsion
DsionOffline
Сообщение №438
| Тема: Вопросы по скриптам Papyrus
написано: 8 февраля 2015, 18:57
| Отредактировано: Dsion - 8 февраля 2015, 19:03
Добавлено (08 Февраля 2015, 21:52) --------------------------------------------- Сделал пока два простеньких варианта. В обеих нужно заполнить три Property: Gold001 --> Gold001 (можно Auto-Fill) Period - это промежуток между продажами лута в игровых часах (например 48.0 - это двое суток) - меньше 0.05 лучше не ставить. Efficiency - это КПД (например, 0.7 - это 70% от базовой цены предметов)
На всякий случае предупреждаю, что предусмотреть все возможные проблемы сразу бывает сложно даже для маленьких программок. Если что-то не так, пишите. Ну и если появятся новые требования к функционалу.
Сделать так, чтоб его можно было брать спутником, - это не сложно. Но если в выбранном голосе просто нету записанных некоторых фраз, то он их говорить никак не сможет. В бою он будет кричать и ругаться, как положено, но в диалоге будет молчать.
В принципе, для диалога можно выбрать ответы из каких-то других фраз... Но это надо дополнительно дорабатывать.
Defender12, самый простой и кривой способ - это добавить нужный голос в списки DefaultNPCVoiceTypes и VoicesFollowerNeutral. Тогда можно будет брать NPC спутником, но он не будет говорить те фразу, которые не записаны для голоса. Другой способ (тоже кривой) - это удалить все требования к голосу с диалогов в квестах DialogueFavorGeneric и DialogueFollower. А единственный не кривой способ - создать свой квест со своими диалогами. Алиасы, пакеты и скрипты можно не делать. Только диалоги. И чтоб эти диалоги взаимодействовали с квестом DialogueFollower.
Добавлено (14 Февраля 2015, 19:00) --------------------------------------------- Или выбрать какой-то голос из списка VoicesFollowerAll
Ничего не знаю. У меня появляется. Кроме списков, еще, конечно, нужно добавить NPC во фракцию PotentialFollowerFaction через консоль и сделать другом игрока.
Когда начинается игра, игрок не появляется вообще нигде. Сначала запускается главный квест, что-то там делает... А потом этот главный квест посредством скриптовой команды телепортирует игрока в определенную точку. И вот только в этот момент пропадает экран загрузки и игрок появляется в мире. Чтоб изменить точку появления, можно подпилить главный квест. Или вообще отключить автозапуск главного квеста и создать свой собственный, который бросит игрока в нужное место. А главную квестовую цепочку можно будет запустить позже с любого этапа.
Если отменить старт главного квеста и переместить игрока куда-то своим собственным квестом, то всё будет нормально. Он будет нордом в железной броне с полным контролем. А потом уже можно поменять одежду и сменить расу.
slastik, про массивы Вам верно сказали.. Разберитесь как-нибудь под настроение. А если вернуться к теме именно с часами. То там и вовсе не обязательно иметь 24 стрелки. В скриптах есть команды для перемещения и поворота объектов. Можно даже чтоб это делалось плавно. Часы даже с двумя стрелками и плавным их движением - не проблема...