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

Результаты поиска
Dsion  Offline  Сообщение №121 | Тема: Вопросы по Creation Kit. Старая тема написано: 10 июня 2014, 15:13 | Отредактировано: Dsion - 10 июня 2014, 15:15



Цитата MemoriaVetusta

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


А, да есть такое. Не обязательно перед НИП сохранять. Просто сохранить и загрузить. Тогда все диалоги из квеста уже работают. А лично я не ставлю галочку "Start game enabled" у квеста, а запускаю его скриптом.

Event OnInit()
Utility.Wait(1.0)
Start()
EndEvent

Скрипт к самому квесту цепляется. Еще что-то писали о решении с помощью SEQ файлов, но не знаю, что это.

Dsion  Offline  Сообщение №122 | Тема: Вопросы по Creation Kit. Старая тема написано: 10 июня 2014, 22:09



Цитата SayGoodbye

Правда пришлось переделать из из заклинания в объект, добавляющий эффект.


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

Dsion  Offline  Сообщение №123 | Тема: Вопросы по Creation Kit. Старая тема написано: 11 июня 2014, 00:15



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

С другой стороны, способ с Cloak не очень-то легко сделать... Вот тут есть гайд, но поработать и поразбираться все-равно нужно:
http://www.creationkit.com/Dynamically_Attaching_Scripts

Dsion  Offline  Сообщение №124 | Тема: Вопросы по скриптам Papyrus написано: 11 июня 2014, 18:27



Чтоб работало OnEquipped, скрипт ведь должен либо к самому свитку цепляться, либо к алиасу, в котором какой-то конкретный из свитков.

А в предыдущей версии ты в скрипт на игроке не вставлял ничего типа Utility.Wait(x)? Эта функция не даст скрипту продолжить выполнение до закрытия меню.
Если же ничего такого нету, то, вроде, вещь должна нормально сниматься и удаляться даже если игрок в меню.

Dsion  Offline  Сообщение №125 | Тема: Вопросы по Creation Kit. Старая тема написано: 12 июня 2014, 16:03



Если какой-то квест отбирает у игрока все вещи и перемещает их в какой-то контейнер при помощи функции RemoveAllItems, то он запросто может и квестовые вещи отбирать. У функции есть флаг abRemoveQuestItems. Это уж как автор скрипта захочет...

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

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

Dsion  Offline  Сообщение №126 | Тема: Вопросы по Creation Kit. Старая тема написано: 12 июня 2014, 17:13 | Отредактировано: Dsion - 12 июня 2014, 17:09



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

Добавлено (12 Июня 2014, 21:13)
---------------------------------------------
Я готовые скрипты не выкладываю потому что люди иногда начинают думать, что это единственный вариант и его нужно скопировать символ-в-символ.


Dsion  Offline  Сообщение №127 | Тема: Вопросы по Creation Kit. Старая тема написано: 12 июня 2014, 18:32 | Отредактировано: Dsion - 12 июня 2014, 18:32



А в RemoveItem и RemoveAllItems можно задать, куда они будут перемещаться. Если ничего не задавать, то удаляются.
И через AddItem можно, но там другая история.

Dsion  Offline  Сообщение №128 | Тема: Вопросы по Creation Kit. Старая тема написано: 12 июня 2014, 20:22



Сделать вещи квестовыми - тоже не проблема. Но толку-то... Все-равно смогут их отобрать.
Если найдешь хоть какой-то ванильный предмет, который не отбирают, тогда можно посмотреть, как оно там сделано.

Автовозвращение отобранного можно сделать без изменения каких-либо ванильных записей.

Dsion  Offline  Сообщение №129 | Тема: Вопросы по Creation Kit. Старая тема написано: 12 июня 2014, 21:33



Любой скрипт в любой момент может создать любую вещь где-угодно (или взять уже созданную) и сунуть её в любой алиас любого квеста (сделать квестовой). Вариантов много. Можно и с изменением ванильного квеста, и вообще без изменения чего-либо ванильного.
Плохо, что название квеста так и не сказал... Я бы посмотрел, как именно создаются вещи, как даются игроку и действительно ли опустошение происходит уже после выдачи (зачем?).
В общем, чтоб лучший вариант выбрать, нужно ванильный квест посмотреть.

Добавлено (13 Июня 2014, 01:33)
---------------------------------------------
Можно сделать, чтоб каждый раз при попадании в тюрьму, игроку давался квестовый напильник. Или только при попадании в определенную тюрьму. И без изменения ванильных записей.
В общем, мало информации :(


Dsion  Offline  Сообщение №130 | Тема: Вопросы по Creation Kit. Старая тема написано: 13 июня 2014, 17:07



Цитата Arin

В предметах есть два серебрянных блюда помеченные:DLC1SilverPlatter01IdleCups
DLC1SilverPlatter01IdleFood
Я припоминаю, что в замке Воликхар вроде бы при первом посещении стоят пленники с блюдами в руках. Но Idle маркеров с похожими названиями нет. Есть только - MQ201HoldingDrinkTrayIdleMarker, но нпс его игнорирует. Точнее стоит на том же месте, но не держит ничего в руках.


Я бы сначала нашел нужную Idle в списке Animations для Character. А потом можно сделать свой IdleMarker с этой Idle или вызывать её скриптом. Там есть функция PlayIdle для Actor.
Если только потом не окажется, что Idlы тут вообще не при чем...

Dsion  Offline  Сообщение №131 | Тема: Вопросы по Creation Kit. Старая тема написано: 13 июня 2014, 18:09 | Отредактировано: Dsion - 13 июня 2014, 18:10



Цитата Arin

О. Я как-то не подумала там посмотреть. А на счет Idle. Сколько я помню, но если персонаж что-то делает с вещами в руках, то это либо фурнитура, либо анимация, либо активатор. Третьего не дано.


Вроде, разобрался немного.
Раб в замке Волкихар - это DLC1VQ02FeastThrall2.
К нему приделан пакет - DLC1VQ02FeastThrall2HoldTray

В пакете сказано, где стоять. И в закладке Idles у пакета прописано использовать IdleMQ201HoldingDrinkTray.

Открыл пакет Изольды, зашел во вкладку Idles, добавил IdleMQ201HoldingDrinkTray. И всё. Теперь Изольда держит поднос. Ну когда не ходит...

Dsion  Offline  Сообщение №132 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 июня 2014, 05:19



Цитата Munky

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


А как именно ты их заставляешь юзать мебель? Пакетом или чем?

Dsion  Offline  Сообщение №133 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 июня 2014, 05:30 | Отредактировано: Dsion - 14 июня 2014, 05:33



У драугров точно есть пакет, который говорит им "Используй IdleMarker"..? LinkedRef-маркер или еще напрямую указанный.
Перепроверь пакеты. Может, на самих драуграх пакетов и нету, а warehouse им его через алиас цеплял. Или еще как-то.

Dsion  Offline  Сообщение №134 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 июня 2014, 05:51



Цитата Munky

вот например EncDraugr01AmbushMelee2HHeadM09


У него там еще условия на пакетах.
ambushsleeppackage - только тогда, когда какая-то переменная == 0
остальные два - когда переменная == 1.

Может, это условие и мешает. Я бы забил на эти пакеты и сделал свой собственный.

Добавлено (14 Июня 2014, 09:51)
---------------------------------------------
А, понял, зачем переменная... Сейчас попробую сделать засаду, если ноутрбук потянет.


Dsion  Offline  Сообщение №135 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 июня 2014, 05:58



Сейчас попробую сделать. Уложить драугра в гроб, да? Звучит просто.

Dsion  Offline  Сообщение №136 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 июня 2014, 06:18



Ррр, да всё работает. Я просто поставил CreatureAlcoveMarker, рядом EncDraugr01AmbushMelee2HHeadM09.
И даугру в LinkedRef добавил этот маркер.

http://piccy.info/view3/6544936/eb2dbefbe0e991ff8d733f1d3bb6f992/

Единственное, что еще могу посоветовать, - это нажать "T" в игре и подождать пару часов. Может, твой тоже залезет.

Dsion  Offline  Сообщение №137 | Тема: Вопросы по Creation Kit. Старая тема написано: 14 июня 2014, 07:41 | Отредактировано: Dsion - 14 июня 2014, 07:42



Цитата VALKNUT

mq201


А... Понятненько...
Ну этот конкретный квест не отбирает квестовые вещи... Хотя мог бы.

Он запущен не со старта игры, а запускается в конце предыдущего квеста.
В момент старта квеста алиасы создают две вещи на маркере PartyCenterMarker, а позже скрипт перемещает их к игроку.

Если нужно, чтоб выдавались еще три вещи, то вариантов много:

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

2. Добавить три пустых+опциональных алиаса. Снова отредактировать скрипт выдачи, чтоб он сначала создавал вещь на маркере PartyCenterMarker, потом совал её в алиас (сделать квестовой), а потом перемещал игроку. Как-то так (не проверено):

ObjectReference Property PartyCenterMarker Auto
ReferenceAlias Property SomeAlias Auto
Actor Property PlayerRef Auto

ObjectReference Ref = PartyCenterMarker.PlaceAtMe(SomeItem) ;;создать на маркере
SomeAlias.ForceRefTo(Ref) ;;сунуть в алиас
PlayerRef.AddItem(Ref) ;;передать игроку

Будет работать даже если квест уже запущен. Или просто PlayerRef.AddItem(SomeItem), но уже после очистки инвентаря. Предмет не будет квестовым.

3. Можно как-нибудь обойтись вообще без изменения ванильного квеста. Привожу абсолютно точно не лучший, но один из вариантов.
Создать новый квест. В нем 4 алиаса: три алиаса с трема твоими вещами и помечены как квестовые, а четвертый алиас указывает на сундук, в который у игрока забирают вещи. На 4м алиасе скрипт с ивентом OnItemAdded. Когда срабатывает этот инвент (тоесть, у игрока отбирают вещи), скрипт передает игроку три вещи. Но это так... Можно что-то намного изящнее придумать.

Dsion  Offline  Сообщение №138 | Тема: Вопросы по скриптам Papyrus написано: 15 июня 2014, 21:15 | Отредактировано: Dsion - 15 июня 2014, 21:28



Цитата MemoriaVetusta

ЗЫ: Оцените, насколько можно сократить код:



Честно говоря, над твоей редакцией стоило бы еще поработать. Результаты не совпадают с оригинальным методом:


Код

         GameTime    OrigMeth    TestMeth             
             0           7           7             
           0.5           0           7             
             1           0           7             
           1.5           0           7             
             2           0           7             
           2.5           0           7             
             3           0           0             
           3.5           1           0             
             4           1           0             
           4.5           1           0             
             5           1           0             
           5.5           1           1             
             6           1           1             
           6.5           2           1             
             7           2           1             
           7.5           2           1             
             8           2           1             
           8.5           2           1             
             9           2           2             
           9.5           3           2             
            10           3           2             
          10.5           3           2             
            11           3           2             
          11.5           3           2             
            12           3           3             
          12.5           4           3             
            13           4           3             
          13.5           4           3             
            14           4           3             
          14.5           4           4             
            15           4           4             
          15.5           5           4             
            16           5           4             
          16.5           5           4             
            17           5           4             
          17.5           5           5             
            18           5           5             
          18.5           6           5             
            19           6           5             
          19.5           6           5             
            20           6           5             
          20.5           6           6             
            21           6           6             
          21.5           7           6             
            22           7           6             
          22.5           7           6             
            23           7           6             
          23.5           7           7             
            24           7           7             
          24.5           0           7             
            25           0           7             
          25.5           0           7             
            26           0           7             
          26.5           0           7             
            27           0           0             
          27.5           1           0             
            28           1           0             
          28.5           1           0             
            29           1           0             
          29.5           1           0             
            30           1           1             
          30.5           2           1             
            31           2           1             
          31.5           2           1             
            32           2           1             
          32.5           2           1             
            33           2           2             
          33.5           3           2             
            34           3           2             
          34.5           3           2             
            35           3           2             
          35.5           3           2             
            36           3           3             
          36.5           4           3             
            37           4           3             
          37.5           4           3             
            38           4           3             
          38.5           4           3             
            39           4           4             
          39.5           5           4             
            40           5           4             
          40.5           5           4             
            41           5           4             
          41.5           5           4             
            42           5           5             
          42.5           6           5             
            43           6           5             
          43.5           6           5             
            44           6           5             
          44.5           6           5             
            45           6           6             
          45.5           7           6             
            46           7           6             
          46.5           7           6             
            47           7           6             
          47.5           7           6             
            48           7           7

    

Но и оригинальный тоже кривоват действительно.

Dsion  Offline  Сообщение №139 | Тема: Вопросы по скриптам Papyrus написано: 16 июня 2014, 11:20 | Отредактировано: Dsion - 16 июня 2014, 11:32



Цитата MemoriaVetusta

Dsion, не знаю, как ты считал.



Да... Это я облажался. Не поставил .0 после целых чисел и c++ всё неправильно посчитало.

В любом случае, это всё фигня... Вот моя редакция формулы:
int phase = qFloor((time + 23.5)/3.0) % 8;
Это если фаза начинается в полдень (как в оригинале).

Или даже еще проще:
int phase = qFloor(time/3.0) % 8;
Если фаза начинается в полночь.

И всё тут.

Dsion  Offline  Сообщение №140 | Тема: Вопросы по скриптам Papyrus написано: 16 июня 2014, 23:06 | Отредактировано: Dsion - 16 июня 2014, 23:11



qFloor - это Floor. А % - это modulo. Офигенный оператор. Ты меня уже, наверное, ненавидишь и не хочешь никаких советов, иначе я бы посоветовал разобраться с modulo. Очень полезно для любых программистов.

Он возвращает остаток от деления:
8 % 8 = 0 - делится без остатка.
9 % 8 = 1
10 % 8 = 2
80 % 8 = 0
83 % 8 = 3
4 % 8 = 4

Если брать остаток от деления именно на 8, то он всегда меньше 8.

Dsion  Offline  Сообщение №141 | Тема: Вопросы по скриптам Papyrus написано: 17 июня 2014, 06:41



Я формулы в Qt проверял и оттуда скопировал... У Qt чуть ли не всё на "q" или "Q" начинается...
Для папируса действительно надо просто Floor, а остальное без изменений.

Dsion  Offline  Сообщение №142 | Тема: Вопросы по Creation Kit. Старая тема написано: 18 июня 2014, 07:42



Arin дело говорит... Скорее всего, у него sandbox пакет. Некоторые торговцы sandbox пакет и используют. Важно только задать подходящий к случаю радиус. Например, у Белетора с 8 часов до 20 часов активен sandbox пакет. Центр - Белеторов стол, радиус - 50. 50 - это очень мало. Потому он особо никуда и не рыпается.
Ну или можно сделать новый пакет: сидеть или стоять в конкретном месте и никакого sandbox.

Добавлено (18 Июня 2014, 11:42)
---------------------------------------------
Если в названии пакета не присутствует слово sandbox, это еще не значит, что он - не sandbox. Название - это только название. Суть - внутри.


Dsion  Offline  Сообщение №143 | Тема: Вопросы по Creation Kit. Старая тема написано: 18 июня 2014, 08:09



Если что, пиши... Нам тут всё-равно скучно...

Dsion  Offline  Сообщение №144 | Тема: Вопросы по скриптам Papyrus написано: 18 июня 2014, 08:21



Цитата Munky

Как такое описать?



Ну если задача именно так стоит...
Наверное, в энчанте понадобилось бы два магических эффекта:

1. Концентрация на цель. С кастомными Projectile. Метает Projectile и наносит урон. Но урон-то магический. Я не помню точно, можно ли установить физическую защиту как ресист для магического эффекта. Надо проверить. Для создания этого эффекта можно скопировать эффект с обычного "Пламени".

2. Концентрация на самого себя. Со скриптом, который отбирает стрелы каждую секунду и прерывает каст, если стрел нету. Зачем этот эффект? Тебе ведь нужно, чтоб стрелы отбирались постоянно во время стрельбы, а не только тогда, когда ты в кого-то попадаешь.

Кастомные Projectile очень легко создать. Для тестов можно даже обычные стрелы использовать.

Вот.. Но это только те мысли, что сразу пришли. Может, есть и поинтереснее способы.

Dsion  Offline  Сообщение №145 | Тема: Вопросы по Creation Kit. Старая тема написано: 18 июня 2014, 08:52



Цитата Oracle

А где находится кузня, стол зачарования и т.п.?



В Furniture? Можно найти по фильтру "Crafting".

Dsion  Offline  Сообщение №146 | Тема: Вопросы по скриптам Papyrus написано: 18 июня 2014, 10:03 | Отредактировано: Dsion - 18 июня 2014, 10:06



akCaster.InterruptCast()

Но какой от этого всего толк, если нельзя указать физическую защиту как ресист...

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

Dsion  Offline  Сообщение №147 | Тема: Вопросы по скриптам Papyrus написано: 18 июня 2014, 12:33 | Отредактировано: Dsion - 18 июня 2014, 13:07



Мне кажется, что я способ получше придумал, чем магические эффекты. Надо проверить только.

Добавлено (18 Июня 2014, 16:33)
---------------------------------------------
Попробуй вот такой вариант. Сначала создается посох и зачарование для него с Concentration Self эффектом.
К зачарованию цепляется скрипт:


Код

Scriptname DartMassacre extends ActiveMagicEffect

Weapon Property TrapDartWeapon01 Auto
Ammo Property TrapDart Auto
Actor Caster

Event OnEffectStart(Actor akTarget, Actor akCaster)
    Caster = akCaster
    RegisterForSingleUpdate(0.1)
EndEvent

Event OnUpdate()

    If (Caster.GetItemCount(TrapDart) > 0)
        Caster.RemoveItem(TrapDart, 1)
        TrapDartWeapon01.Fire(Caster, TrapDart)
        RegisterForSingleUpdate(0.1)

    Else
        Caster.InterruptCast()

    EndIf

EndEvent




Все Property в скрипте заполняются автоматическим заполнением.

Работает это всё почти так, как тебе нужно. Но всплывают несколько проблем... В общем, попробуй.
В любом случае, это весело. Я минут 7 не мог оторваться от расстрела мирных жителей дротиками.
Хорошо бы придумать, как обойтись без посоха. Идея есть, вроде.

Dsion  Offline  Сообщение №148 | Тема: Вопросы по Creation Kit. Старая тема написано: 18 июня 2014, 16:25



И далось же вам это слово "привязать"... Нету ведь такой процедуры у пакетов...
Просто стоять на маркере - это Travel.

Dsion  Offline  Сообщение №149 | Тема: Вопросы по скриптам Papyrus написано: 18 июня 2014, 17:48



Цитата MemoriaVetusta

Dsion, а ты боезапас экипируешь? Если да, то за одно обновление будет съедаться 2 ед. боезапаса.


Да? Если экипированы, сами расходуются? Так даже лучше. Можно обойтись одной функцией IsEquipped(дротик) вместо проверки количества и удаления.

Но там основная проблема в другом... Если персонаж держит в руках стрелковое оружие, то всё круто. А если держит некоторые другие виды оружие, то 1) оружие становится невидимым 2) дротики летят не совсем точно туда, куда целишься. Посох как-раз к таким "другим" видам относится. Как бы так сделать включение и отключение пулемета без использования посоха?

Dsion  Offline  Сообщение №150 | Тема: Вопросы по скриптам Papyrus написано: 19 июня 2014, 12:55



Если задуматься, то не круто это всё... Скорее всего, DPS у такого скрипта будет зависеть от производительности компьютера и частоты смены кадров.
Но других идей нету пока...

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





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