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

Результаты поиска
Multigone  Offline  Сообщение №721 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 5 июня 2016, 13:47



832
RanJin, я просто прошел по ссылке, которую тебе дали, и посмотрел, что там было изменено. В общем, тебе нужен этот мод: Skyrim -Community- Uncapper by Elys

Multigone  Offline  Сообщение №722 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 7 июня 2016, 18:27



832
Кто-нибудь знает, как определить, имеет ли актер квестовый(-ые) предмет(-ы)? Можно делать с инвентарем актера что угодно, можно использовать SKSE.

Multigone  Offline  Сообщение №723 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 8 июня 2016, 10:03



832
Dsion, ну да. Для чего нужно: делаю возможность изгонять мертвых существ из мира, как если бы на них использовали Banish. Вместе со всем содержимым инвентаря. Если есть квестовый предмет, он должен остаться, а существо вместо изгнания испепеляется.

Kepper, да, все верно). Я тоже пошел этим путем, просто хотел узнать, есть ли способ сделать проще. Моя версия такая:


Код
xT.UnequipItem(xT.GetEquippedObject(0), false, true)
xT.UnequipItem(xT.GetEquippedObject(1), false, true)
xT.RemoveAllItems()
    ; Экипированное после смерти актера оружие не удаляется (?).
    ; Предметы Outfit, не имеющие флага Playable, не удаляются в некоторых (или во всех?) случаях.
    ; Квестовые предметы в этом случае не удаляются.
iC = xT.GetNumItems()
WHILE iC
    iC -= 1
    Armor xA = xT.GetNthForm(iC) AS Armor
    IF !xA || xA.IsPlayable()
        iC = -1
    ENDIF
ENDWHILE
IF iC < 0
    ; Есть квестовые вещи - испепелить.
ELSE
    ; Нет - изгнать.
ENDIF

Multigone  Offline  Сообщение №724 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 8 июня 2016, 11:33 | Отредактировано: Multigone - 8 июня 2016, 11:38



832
Дрейк, добро пожаловать в Скайрим.

Цитата Дрейк

на каждый кусок хлеба или сыра нужно писать скрипт

... а также на все предметы, обладающие физикой. Куда проще использовать унылый Decorator Assistant.

Multigone  Offline  Сообщение №725 | Тема: Поиск модов для TES-V: Skyrim написано: 12 июня 2016, 18:57



832
Ищу мод, который был на МГ в разделе магии. Там был видос с таким моментом: в Вайтране (у входа в город) НПС поднят вихрем и летает вокруг одной точки. Позарез нужен этот мод, точнее, исходники скриптов, которые я там (возможно) обнаружу. Уже полтора часа смотрю разные видео :D , что-то пока безрезультатно.

Multigone  Offline  Сообщение №726 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 13 июня 2016, 15:23



832
Kepper, RemoveAllItems(), примененный к НПС, удаляет все без разбора, невзирая на значение abRemoveQuestItems. Тестировал на драугре-боссе, выпрыгивающем из саркофага в Ветреном Пике, с которого падает скрижаль с картой. Есть еще идеи?

Multigone  Offline  Сообщение №727 | Тема: Вопросы по скриптам Papyrus написано: 19 июня 2016, 14:30



832
Цитата Lexo

как сделать, что бы при взломе замков повышался навык карманных краж

При активации перком узнаем референс закрытого объекта. Ждем мгновение (Wait()). Проверяем, закрыт ли объект. Если нет, повышаем навык. Думаю, это можно реализовать.

Multigone  Offline  Сообщение №728 | Тема: Вопросы по скриптам Papyrus написано: 23 июня 2016, 19:51



832
MagicalDagger, может, влияет Relationship? У хускарлов изначально Ally. Попробуй скриптом установить Фаркасу ранг 3 и посмотри результат.

Multigone  Offline  Сообщение №729 | Тема: Вопросы по скриптам Papyrus написано: 25 июня 2016, 18:24



832
MagicalDagger, минутку. Все изменения базового объекта в СК после того, как нужный референс был инициализирован и записан в сохранение, не возымеют никакого эффекта. Т. о., скрипт нужно вешать на алиас актера, не на ActorBase.

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

Multigone  Offline  Сообщение №730 | Тема: Вопросы по скриптам Papyrus написано: 27 июня 2016, 21:32 | Отредактировано: Multigone - 24 апреля 2020, 10:30



832
Функции нет. Но определить можно с помощью заклинаний.

Цитата Lexo

скрипт, который кидает заклинание перед персонажем


У Cast() есть множество ограничений. И снаряд заклинания будет вылетать из башки.

Multigone  Offline  Сообщение №731 | Тема: Metal написано: 28 июня 2016, 20:28



832
Вышел недавно, подарок прекрасный.


Multigone  Offline  Сообщение №732 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2016, 11:01



832
Lexo, я пытался сделать, чтобы молнии били из актера в стоящих рядом и в пространство под произвольными углами. Если поместить внутри актера маркер и использовать его как источник заклинания, то молнии будут ударять в самого актера. Надо смещать источник от центра в направлении заклинания на некоторое расстояние. Но тогда будет видно, что снаряд вылетает из пустого места. Короче, я к тому, что "кидает куда попало" еще и достаточно проблемно сделать.

Multigone  Offline  Сообщение №733 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2016, 13:20



832
asharmutin, скриптов нет. Можно менять параметры боя в Settings. Алгоритмы боя находятся в движке.

Multigone  Offline  Сообщение №734 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2016, 15:34



832
Lexo

1) НПС (не игрок) могут иметь только перки, унаследованные от ActorBase. Т.е. ни скриптом, ни с помощью ApplyPerk нельзя их добавить / удалить.
2) Значит, он не может проверить, есть ли в направлении его взгляда актер или нет.

Там надо по-другому. Ща.

Multigone  Offline  Сообщение №735 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2016, 17:00



832
Если нужно, вот моя версия. Делаем 3 заклинания.











Принцип: третье заклинание основное. Когда накладывается на актера, запускается вся байда. Первое заклинание ударяет в направлении взгляда источника. Цель (если есть) возвращает второе заклинание обратно. Производится проверка и, если удачно, делаются необходимые действия.

Multigone  Offline  Сообщение №736 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2016, 17:21



832
Lexo, эту тему поднимали уже давно. У нескольких человек не работало. У меня не работает. Я сейчас еще раз проверил. Проверь, поставь эффекту Ability, который указываешь в перке, какой-нибудь шейдер, например, LifeDetected. У меня он не отображался на НПС.

Multigone  Offline  Сообщение №737 | Тема: Вопросы по скриптам Papyrus написано: 30 июня 2016, 19:38 | Отредактировано: Multigone - 30 июня 2016, 19:56



832
Цитата Lexo

переделал скрипт

Чуть поправлю и поправлюсь сам:


***

А, разобрался. Первое заклинание не работало. Если не указывать цель заклинания, то оно будет ударять по линии взгляда актера, за исключением, когда имеет TargetActor и актер - НПС. Тогда просто ничего происходить не будет.
Поэтому, нужно изменить первое заклинание на Aimed, его эффекту указать невидимый снаряд (луч?). У меня заработало на НПС.

Multigone  Offline  Сообщение №738 | Тема: Вопросы по скриптам Papyrus написано: 4 июля 2016, 21:18



832
Lexo,

1) Есть GetName() и SetName() (SKSE).
Код
ActorBase2.SetName(ActorBase1.GetName())

2) По-моему, можно изменять имена актеров через алиас (не работал с этим).

Multigone  Offline  Сообщение №739 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 11 июля 2016, 11:57



832
Bolgarec75, 1), 2) Скриптами.

Multigone  Offline  Сообщение №740 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 11 июля 2016, 12:21



832
Bolgarec75, информация об основах есть в этом разделе форума. Все есть на СК.com.
А лучше попробуй просто добавить в заклинание больше маг. эффектов с призывом разных атронахов, и посмотри результат.

Multigone  Offline  Сообщение №741 | Тема: Вопросы по скриптам Papyrus написано: 13 июля 2016, 19:00



832
ksv042, вешай на контейнер:




Цитата qwertynosik

как реализовать


Изменить тип благословений на Ability, отредактировать все затронутые маг. эффекты - вместо FF указать Constant (нужно сделать копии, т. к. те эффекты используются и в др. заклинаниях).
Использовать этот скрипт в активаторах (заполнить переменные). Можно просто поменять текст ванильного (его заголовок не трогать) и скомпилировать (не рекомендую):



За снятие одних благословений при наложении других отвечает флаг Dispel Effects в их маг. эффектах. Сомневаюсь , что флаг сработает (???), когда эффекты станут Сonstant, но лучше его убрать (во всех).

PS: Скрипты, добавленные модами на базовые объекты (в данном случае это активаторы), не будут работать на конкретных референсах, если референсы уже записаны в сохранение, с которого стартует мод. Это означает, что все уже встреченные алтари не будут изменены. Проверь, может, я не прав.

Multigone  Offline  Сообщение №742 | Тема: Вопросы по скриптам Papyrus написано: 14 июля 2016, 21:42



832
Цитата qwertynosik

И со скриптом

Даешь ему в шапке свое название (вместо _tеmp); файл .psc должен называться так же. Компилируешь. Открываешь активатор, удаляешь старый, добавляешь новый. Указываешь все Property, как они были. Не укажешь, работать не будет. Сохраняешь. Повторяешь для других активаторов. Как я уже говорил, можно тупо заменить текст в ванильном. Для этого делаешь бекап .psc, в ванильном пишешь свой текст (шапку не трогать), сохраняешь и компилируешь, возвращаешь бекап на место ванильного .psc. В результате у тебя будет модифицированный .pex и ванильный исходник. Это не лучший путь, но он позволяет не трогать активаторы.

Multigone  Offline  Сообщение №743 | Тема: Вопросы по скриптам Papyrus написано: 15 июля 2016, 19:26



832
Цитата Lexo

убегать куда-подальше

Актеру установлена высокая мораль?

Вот изменения:


Код
Event onupdate()
    if (Player.HasMagicEffect_WisplHealerLightFFSelf)) ; Это маг. эффект со скриптом? Если да, эта проверка не нужна. Обновление авто-отменяется после завершения эффекта.
        if (Player.GetActorValuePercentage("health") < Health50)
            GrandHealing.Cast(Player, Player) ; Сильно Лечим
        elseif (Player.GetActorValuePercentage("health") < Health95)
            HealOther.Cast(Player, Player) ; Лечим
        EndIf
    EndIf
    RegisterForSingleUpdate(2.0)
EndEvent

Я бы добавил заклинанию еще один эффект со слабым постепенным лечением (и условием в заклинании "здоровье < 95%"), тогда HealOther вообще не нужен.
А проверку привязал бы не только к обновлению, но и к получению урона, чтобы после удара лечение срабатывало мгновенно, затем следовала перезарядка 2с. Но хозяин - барин. :) К тому же, может, так и задумано.

Multigone  Offline  Сообщение №744 | Тема: Вопросы по скриптам Papyrus написано: 16 июля 2016, 19:42



832
Miter, нет такой, есть вот какие (без последних обновлений).
Скачиваешь SKSE, скидываешь содержимое архива в корень игры. Вуаля.

Multigone  Offline  Сообщение №745 | Тема: Что слушаем? Тема закрыта, только для просмотра. написано: 19 июля 2016, 14:56



832

Multigone  Offline  Сообщение №746 | Тема: Вопросы по скриптам Papyrus написано: 25 июля 2016, 07:49



832
Нарада

Код
MyActor.DispelSpell(MySpell)
Будут сняты все временные заклинания с именем MySpell.

Multigone  Offline  Сообщение №747 | Тема: Вопросы по скриптам Papyrus написано: 27 июля 2016, 15:53



832
nepewka, идеи есть, только не понял, зачем это тебе вообще. Куда стреляет пушка? Похоже, маркер цели задается на основе того, куда смотрит актер с этим маг. эффектом.

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

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

Multigone  Offline  Сообщение №748 | Тема: Вопросы по скриптам Papyrus написано: 27 июля 2016, 19:35 | Отредактировано: Multigone - 27 июля 2016, 19:40



832
nepewka, если тебе очень нужно, я подумаю и напишу нужную версию, но не сейчас. Терпение, спокойствие.

Цитата nepewka

стакались

Чтобы это происходило, нужно убрать архетип Scripts, и вместо него поставить ValueMod (параметр Morality, к примеру).

Multigone  Offline  Сообщение №749 | Тема: Вопросы по скриптам Papyrus написано: 28 июля 2016, 14:35 | Отредактировано: Multigone - 28 июля 2016, 17:45



832
nepewka, проверь в игре (2).


Код
Scriptname _MySCRIPT3 extends activemagiceffect

Activator Property FXEmptyActivator Auto
Activator Property ORD_Smh_DwarvenAutocannon_Activator Auto
Float Property ORD_ShootZ Auto
Float Property ORD_DistanceInFront Auto
Float Property ORD_UpdateRate Auto
Float Property ORD_DistanceZ Auto
Spell Property ORD_Smh_DwarvenAutocannon_Spell_Proc Auto
Sound Property ORD_Smh_DwarvenAutocannon_Marker_Deploy Auto
Sound Property ORD_Smh_DwarvenAutocannon_Marker_Destroyed Auto

Perk Property ORD_Smh30_RemoteControl_Perk_30 Auto
Activator Property ORD_Smh_DwarvenAutocannon_Activator_RemoteControl Auto
Float Property ORD_RemoteControlDist Auto

Int Property ORD_Electrobolt Auto
Spell Property ORD_Smh_DwarvenAutocannon_Spell_Proc_Electrobolt Auto
Explosion Property ORD_Smh_DwarvenAutocannon_Explosion_Electrobolt Auto
Perk Property ORD_Smh50_Electrobolt_Perk_50 Auto

Perk Property ORD_Smh80_SpinUp_Perk_80 Auto
Float Property ORD_SpeedUpDelta Auto

Perk Property ORD_Smh70_FiringLine_Perk_70 Auto
Float Property ORD_AngleDelta Auto
Float Property ORD_Min Auto

MiscObject Property ORD_Smh_DwarvenAutocannon_Misc Auto

Actor TargetActor
Int iC = 5                     ; Количество пушек.
Bool bF

Event OnEffectStart(Actor akTarget, Actor akCaster)
    TargetActor = akTarget
    RegisterForSingleUpdate(0.0)
EndEvent

Event OnEffectFinish(Actor akTarget, Actor akCaster)
    bF = true
EndEvent

EVENT OnUpdate()
    IF !iC
        RETURN
    ENDIF
    iC -= 1
    RegisterForSingleUpdate(0.1)
    Bool SpinUp
    Int ShotCount
    ObjectReference TheCannon
    Bool IsRemoteControl
    Float CharacterAngle
    Float ShootRate = ORD_UpdateRate
    If TargetActor.HasPerk(ORD_Smh50_Electrobolt_Perk_50)
        ShotCount = 0
    Else
        ShotCount = -9999
    EndIf
    ORD_Smh_DwarvenAutocannon_Marker_Deploy.Play(TargetActor)
    If TargetActor.HasPerk(ORD_Smh30_RemoteControl_Perk_30)
        IsRemoteControl = true
        If TargetActor.HasPerk(ORD_Smh70_FiringLine_Perk_70)
            CharacterAngle = TargetActor.GetAngleZ() + ORD_AngleDelta
        Else
            CharacterAngle = TargetActor.GetAngleZ()
        EndIf
        TheCannon = TargetActor.PlaceAtMe(ORD_Smh_DwarvenAutocannon_Activator_RemoteControl)
        TheCannon.MoveTo(TargetActor,ORD_DistanceInFront*Math.Sin(CharacterAngle),ORD_DistanceInFront*Math.Cos(CharacterAngle),ORD_DistanceZ)
        TheCannon.SetAngle(0,0,CharacterAngle)
    Else
        IsRemoteControl = false
        If TargetActor.HasPerk(ORD_Smh70_FiringLine_Perk_70)
            CharacterAngle = TargetActor.GetAngleZ() + ORD_AngleDelta
        Else
            CharacterAngle = TargetActor.GetAngleZ()
        EndIf
        TheCannon = TargetActor.PlaceAtMe(ORD_Smh_DwarvenAutocannon_Activator)
        TheCannon.MoveTo(TargetActor,ORD_DistanceInFront*Math.Sin(CharacterAngle),ORD_DistanceInFront*Math.Cos(CharacterAngle),ORD_DistanceZ)
        TheCannon.SetAngle(0,0,CharacterAngle)
    EndIf
    ObjectReference ShootStart = TheCannon.PlaceAtMe(FXEmptyActivator)
    ShootStart.MoveTo(TheCannon, 0, 0, ORD_ShootZ)
    ObjectReference ShootAim = TheCannon.PlaceAtMe(FXEmptyActivator)
    ShootAim.MoveTo(TheCannon, 0, 0, ORD_ShootZ)
    TargetActor.RemoveItem(ORD_Smh_DwarvenAutocannon_Misc, 1, true)
    If TargetActor.HasPerk(ORD_Smh80_SpinUp_Perk_80)
        SpinUp = true
    Else
        SpinUp = false
    EndIf
    WHILE !bF
        Utility.Wait(ShootRate)
        If IsRemoteControl || TheCannon.GetDistance(TargetActor) <= ORD_RemoteControlDist
            ShotCount += 1
            ShootAim.MoveTo(ShootStart,ORD_DistanceInFront*Math.Sin(TargetActor.GetAngleZ()),ORD_DistanceInFront*Math.Cos(TargetActor.GetAngleZ()),(ORD_DistanceInFront*Math.Tan(-TargetActor.GetAngleX()) + 0))
            If ShotCount >= ORD_Electrobolt
                ShotCount = 0
                ShootStart.PlaceAtMe(ORD_Smh_DwarvenAutocannon_Explosion_Electrobolt)
                ORD_Smh_DwarvenAutocannon_Spell_Proc_Electrobolt.RemoteCast(ShootStart, TargetActor, ShootAim)
            Else
                ORD_Smh_DwarvenAutocannon_Spell_Proc.RemoteCast(ShootStart, TargetActor, ShootAim)
            EndIf
        EndIf
        If SpinUp == true && ShootRate > ORD_Min
            ShootRate -= ORD_SpeedUpDelta
        EndIf
    ENDWHILE
    ORD_Smh_DwarvenAutocannon_Marker_Destroyed.Play(TheCannon)
    TheCannon.Disable(true)
    TheCannon.Delete()
    ShootStart.Delete()
    TargetActor.AddItem(ORD_Smh_DwarvenAutocannon_Misc, 1, true)
ENDEVENT

Multigone  Offline  Сообщение №750 | Тема: Вопросы по скриптам Papyrus написано: 29 июля 2016, 14:57



832
nepewka,

(IF !iC) эквивалентно (IF iC == 0)
(IF iC) эквивалентно (IF iC != 0)

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





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