Форум » Записи участника [Dsion]

Результаты поиска
Dsion  Offline  Сообщение №421 | Тема: Вопросы по Creation Kit. Старая тема написано: 27 января 2015, 13:50



Дверь, ведущую в ванильный дом, всегда можно спрятать. А на её место поставить такую же дверь, ведущую в новый интерьер.

Dsion  Offline  Сообщение №422 | Тема: Вопросы по Creation Kit. Старая тема написано: 27 января 2015, 16:27



AlexKu,  проблема именно в том, что окно не влезает в экран?
Если так, то можно что-то придумать... Можно сделать программу для изменения размера окон, у которых это заблокировано. Или для скролла по ним. Что-то такое.

Dsion  Offline  Сообщение №423 | Тема: Вопросы по Creation Kit. Старая тема написано: 27 января 2015, 19:42



Скриптом можно создать любой объект возле любого другого объекта или на любых координатах...

Но если нужно, чтоб сыр появлялся именно там, куда игрок направил курсор (как атронах), то будет чуть сложнее... Даже так сходу и не скажешь. Наверное, придется заходить через Explosion аж...

Добавлено (27 Января 2015, 22:42)
---------------------------------------------
То есть, можно легко сделать, чтоб предмет появлялся перед игроком на какой-то высоте. Но он будет падать сразу. Это легко.

А вот так, чтоб направил курсор на стол и получил кусок сыра именно на столе - это чуть посложнее. Тебе как нужно?


Dsion  Offline  Сообщение №424 | Тема: Вопросы по Creation Kit. Старая тема написано: 27 января 2015, 21:08




Dsion  Offline  Сообщение №425 | Тема: Вопросы по Creation Kit. Старая тема написано: 29 января 2015, 04:17



Ты точно-точно уверен, что там надо столько проперти?

Представь скрипт, который целиком переносит Коллегию Винтерхолда в другое место. Потом добавляет каждому её обитателю рандомное персональное домашнее животное. И в добавок делает так, чтоб все эльфийки Скайрима перед сном раздевались и надевали рандомное нижнее белье. Так вот даже такому скрипту не понадобилось бы более 5-10 проперти... И они бы все заполнились нажатием кнопки Auto-Fill All.

Dsion  Offline  Сообщение №426 | Тема: Вопросы по Creation Kit. Старая тема написано: 29 января 2015, 20:56



teron_b2, не знаю. Создать такой же скрипт с другим именем и скопировать туда Property можно. Но имя скрипта фигурирует в сейвах. Если игрок уже сохранялся с предыдущим скриптом, наверняка проблем не избежать. Так же могут перестать работать другие скрипты, которые использовали этот.

Gvinpin, если бы у меня была полезная информация по твоему вопросу, конечно, ответил бы. Но я такого не встречал.

Dsion  Offline  Сообщение №427 | Тема: Вопросы по Creation Kit. Старая тема написано: 29 января 2015, 21:44



teron_b2, там на рецептах есть условия, при которых они видны. Например, для того, чтоб был виден рецепт стального арбалета (DLC1RecipeTechSteelCrossbow), должно выполняться два условия: игрок должен иметь перк SteelSmithing и глобальная переменная DLC1TechXbowSteelChanceNone должна равняться нулю. А равной нулю она становится, когда игрок просит Сорин научить его крафтить арбалет.

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

Отследить крафт меча можно разными способами: скриптом на мече, скриптом на алиасе игрока, квестом, который стартует по ивенту OnStoryCraftItem итп.

Dsion  Offline  Сообщение №428 | Тема: Вопросы по скриптам Papyrus написано: 1 февраля 2015, 09:41 | Отредактировано: Dsion - 1 февраля 2015, 09:50



Цитата W@nTeD

после диалога враждебным


В диалоге есть поле для скрипта "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)

Dsion  Offline  Сообщение №429 | Тема: Вопросы по скриптам Papyrus написано: 2 февраля 2015, 11:28



А в чем проблема-то? На предмете, который лежит в инвентаре, не срабатывает OnUpdate()? Так оно и не должно. У него же ID нету.

Dsion  Offline  Сообщение №430 | Тема: Вопросы по скриптам Papyrus написано: 2 февраля 2015, 13:33 | Отредактировано: Dsion - 2 февраля 2015, 13:31



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

Добавлено (02 Февраля 2015, 16:33)
---------------------------------------------
На пальце - тоже нету...
Выбросить в мир - появится...
Можно в скрипт на кольце в любом месте добавить Debug.MessageBox(Self), чтоб проверить, есть ли у ниго личное ID.


Dsion  Offline  Сообщение №431 | Тема: Вопросы по Creation Kit. Старая тема написано: 3 февраля 2015, 14:49



Если нужно, чтоб кто-то за кем-то ходил, то, разумеется, нужно создавать AI пакет...

Dsion  Offline  Сообщение №432 | Тема: Вопросы по Creation Kit. Старая тема написано: 6 февраля 2015, 12:35



Можно объединить... А можно и не через задницу сделать :)
Не буду кричать, что добавить предмет торговцу - это очень легко, но можно придумать что-то поинтереснее, чем редактировать сундук.
Для начала можно было бы попробовать при помощи скрипта (именно скрипта) добавить книгу в список LItemSpellTomes50AllAlteration. Тогда она должна появиться в продаже у Толфдира и у Виландрии. И мод останется совместимым с любым другим.

Добавлено (06 Февраля 2015, 15:35)
---------------------------------------------
Добавить что-нибудь в сундук тоже скриптом можно... Но сундуки сбрасываются каждый день... Потому нужно что-то более хитрое, чем просто один раз добавить предмет.


Dsion  Offline  Сообщение №433 | Тема: Вопросы по Creation Kit. Старая тема написано: 6 февраля 2015, 12:53



Просто добавить предмет в алиас? Без скрипта? Попробовать нужно, конечно, но лично я не уверен, что предмет останется там же после сброса сундука.

Dsion  Offline  Сообщение №434 | Тема: Вопросы по скриптам Papyrus написано: 8 февраля 2015, 12:39



Я проверил функцию, которая выдает стоимость предмета. Но, к сожалению, она не учитывает даже стоимость зачарования на предмете.
Нужно подумать...

Dsion  Offline  Сообщение №435 | Тема: Вопросы по скриптам Papyrus написано: 8 февраля 2015, 13:05



Вряд ли Вас устроит точность в +/- 300% :)
Вот, к примеру, эбонитовые перчатки с зачарованием стоят 1000 монет, а функция показывает базовую стоимость перчаток - 275 монет.

Если что-то полезное придет в голову, я обязательно напишу. Ну или кто-то еще.

Dsion  Offline  Сообщение №436 | Тема: Вопросы по скриптам Papyrus написано: 8 февраля 2015, 13:48



Я бы предпочел сделать качественно... Чтоб этот коэффициент задавался вручную, а не оказался таким "как получится"...
Но если ничего не придет в голову и никто другой не возьмется...

Dsion  Offline  Сообщение №437 | Тема: Вопросы по скриптам Papyrus написано: 8 февраля 2015, 15:34



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

Лично мне недостаток скрипта кажется не очень-то приемлемым, но, если хотите, я сделаю. Это не сложно.

Только уточните:
1. Должны ли 2 суток отсчитываться для каждого предмета отдельно. Или просто всё разом должно продаваться.
2. Какой должен быть коэффициент полезного действия сундука. И должен ли он зависеть от каких-то умений/перков игрока.

Dsion  Offline  Сообщение №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% от базовой цены предметов)

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


Код
Scriptname RevilChestScript extends ObjectReference

MiscObject Property Gold001 Auto
Float Property Period Auto
Float Property Efficiency Auto

Int TotalValue = 0
Bool Selling = False

;================================================================================

Event OnInit()
    Utility.Wait(1.0)
    RegisterForSingleUpdateGameTime(Period)
EndEvent

;================================================================================

Event OnUpdateGameTime()

    TotalValue = 0

    Selling = True
    RemoveAllItems()
    Utility.Wait(2.0)
    Selling = False

    AddItem(Gold001, TotalValue)

    RegisterForSingleUpdateGameTime(Period)
EndEvent

;================================================================================

Event OnItemRemoved(Form akBaseItem, Int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)

    If (!Selling || akDestContainer)
        Return
    EndIf

    If (akBaseItem == Gold001)
        TotalValue = TotalValue + aiItemCount
    Else
        TotalValue = TotalValue + Math.Floor(akBaseItem.GetGoldValue() * Efficiency) * aiItemCount
    EndIf

EndEvent

;================================================================================



Код
Scriptname RevilChestScript extends ObjectReference

MiscObject Property Gold001 Auto
Float Property Period Auto
Float Property Efficiency Auto

Int TotalValue = 0

;================================================================================

Event OnInit()
    Utility.Wait(1.0)
    RegisterForSingleUpdateGameTime(Period)
EndEvent

;================================================================================

Event OnUpdateGameTime()

    Int Temp = TotalValue

    RemoveAllItems()
    Utility.Wait(2.0)
    TotalValue = 0

    AddItem(Gold001, Temp)

    RegisterForSingleUpdateGameTime(Period)
EndEvent

;================================================================================

Int Function CalculateItemValue(Form akBaseItem)

    Int Value = 0

    If (akBaseItem == Gold001)
        Value = 1
    Else
        Value = Math.Floor(akBaseItem.GetGoldValue() * Efficiency)
    EndIf

    Return Value

EndFunction

;================================================================================

Event OnItemAdded(Form akBaseItem, Int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer)
    TotalValue = TotalValue + CalculateItemValue(akBaseItem) * aiItemCount
EndEvent

;================================================================================

Event OnItemRemoved(Form akBaseItem, Int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)
    TotalValue = TotalValue - CalculateItemValue(akBaseItem) * aiItemCount
EndEvent

;================================================================================

Dsion  Offline  Сообщение №439 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 февраля 2015, 14:46



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

В принципе, для диалога можно выбрать ответы из каких-то других фраз... Но это надо дополнительно дорабатывать.

Dsion  Offline  Сообщение №440 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 февраля 2015, 16:00



Defender12, самый простой и кривой способ - это добавить нужный голос в списки DefaultNPCVoiceTypes и VoicesFollowerNeutral. Тогда можно будет брать NPC спутником, но он не будет говорить те фразу, которые не записаны для голоса.
Другой способ (тоже кривой) - это удалить все требования к голосу с диалогов в квестах DialogueFavorGeneric и DialogueFollower.
А единственный не кривой способ - создать свой квест со своими диалогами. Алиасы, пакеты и скрипты можно не делать. Только диалоги. И чтоб эти диалоги взаимодействовали с квестом DialogueFollower.

Добавлено (14 Февраля 2015, 19:00)
---------------------------------------------
Или выбрать какой-то голос из списка VoicesFollowerAll


Dsion  Offline  Сообщение №441 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 февраля 2015, 19:54



Ничего не знаю. У меня появляется. Кроме списков, еще, конечно, нужно добавить NPC во фракцию PotentialFollowerFaction через консоль и сделать другом игрока.

Dsion  Offline  Сообщение №442 | Тема: Вопросы по Creation Kit. Старая тема написано: 15 февраля 2015, 18:00



Этот не для заклинания. Для заклинание нужно что-то такого типа:


Код
ObjectReference Property MoveToMarker Auto

Event OnEffectStart(Actor akTarget, Actor akCaster)
    akCaster.MoveTo(MoveToMarker)
EndEvent

Попробуй прицепить к заклинанию, скажем, лечения...
И нужно не забыть заполнить проперти MoveToMarker каким-то конкретным объектом. Можно не маркером.

Dsion  Offline  Сообщение №443 | Тема: Вопросы по Creation Kit. Старая тема написано: 15 февраля 2015, 20:47



Когда начинается игра, игрок не появляется вообще нигде. Сначала запускается главный квест, что-то там делает... А потом этот главный квест посредством скриптовой команды телепортирует игрока в определенную точку. И вот только в этот момент пропадает экран загрузки и игрок появляется в мире.
Чтоб изменить точку появления, можно подпилить главный квест. Или вообще отключить автозапуск главного квеста и создать свой собственный, который бросит игрока в нужное место.
А главную квестовую цепочку можно будет запустить позже с любого этапа.

Dsion  Offline  Сообщение №444 | Тема: Вопросы по скриптам Papyrus написано: 18 февраля 2015, 14:43



Если отменить старт главного квеста и переместить игрока куда-то своим собственным квестом, то всё будет нормально. Он будет нордом в железной броне с полным контролем. А потом уже можно поменять одежду и сменить расу.

Dsion  Offline  Сообщение №445 | Тема: Вопросы по скриптам Papyrus написано: 18 февраля 2015, 15:42



Некоторые предпочитают не лезть клешнями в ванильные записи :)
Клац-клац

Dsion  Offline  Сообщение №446 | Тема: Вопросы по Creation Kit. Старая тема написано: 19 февраля 2015, 09:38



Сделать другой квест со своими диалогами и пакетами. Если приоритет нового квеста будет выше ванильного, его пакеты будут "выше" в списке.

Dsion  Offline  Сообщение №447 | Тема: Вопросы по скриптам Papyrus написано: 21 февраля 2015, 09:26



valambar, полезный сайт:
http://www.creationkit.com/Message_Script

Dsion  Offline  Сообщение №448 | Тема: Вопросы по Creation Kit. Старая тема написано: 21 февраля 2015, 19:37



Если он и пропадал, то не благодаря Target.placeatme(ExplosionRef_2)

Dsion  Offline  Сообщение №449 | Тема: Вопросы по скриптам Papyrus написано: 23 февраля 2015, 20:17



Она действительно должна повторяться каждый час? Даже если игрока нету на континенте?

Dsion  Offline  Сообщение №450 | Тема: Вопросы по скриптам Papyrus написано: 25 февраля 2015, 15:26



slastik, про массивы Вам верно сказали.. Разберитесь как-нибудь под настроение.
А если вернуться к теме именно с часами. То там и вовсе не обязательно иметь 24 стрелки. В скриптах есть команды для перемещения и поворота объектов. Можно даже чтоб это делалось плавно. Часы даже с двумя стрелками и плавным их движением - не проблема...

Форум » Записи участника [Dsion]
Поиск:





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