Вверх Вниз


  • Страница 95 из 95
  • «
  • 1
  • 2
  • 93
  • 94
  • 95
Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Вопросы по скриптам Papyrus
sansuli  Offline Сообщение №1 написано: 31 Августа 2012 в 17:29 | Отредактировано: sansuli - Пятница, 17 Апреля 2015, 21:08


The Red Sun


194
Уроки по скриптованию на языке Papyrus
Прежде чем задать вопрос просмотрите вышеуказанные уроки.
ok

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Wertys  Offline Сообщение №2821 написано: 01 Апреля 2018 в 23:50 | Отредактировано: Wertys - Воскресенье, 01 Апреля 2018, 23:51


Странник


24
Цитата Multigone ()
Для скрипта ActiveMagicEffect это должно быть что-то вроде:
Все изменил, но звук так и не заработал. Звук дефолтный из игры.
Поменял так же свой звук на звук пчелы в банке (он точно в скриптах используется) - ничего.
Возможно звуки просто не могут работать в эффектах?

Multigone  Offline Сообщение №2822 написано: 02 Апреля 2018 в 17:22



627
Wertys, а что надо-то? Поменять дефолтный звук эффекта на другой? Так это в маг. эффекте в полях Sounds (в центральной правой части окна).

Wertys  Offline Сообщение №2823 написано: 02 Апреля 2018 в 23:08


Странник


24
Multigone, короче смотри - есть заклинание со скриптовым эффектом, и, в зависимости от результата, проигрываются разные звуки. Т.е. если условия соблюдается, то проигрывается 1й звук, если нет то 2й. Собственно я уже впихнул туда Debug.Notification, но хотелось бы еще чтоб звук был. 
Я не стал весь скрипт приводить полностью, меня интересовало только как можно воспроизвести звук в скрипте. Но если это невозможно, то пусть.

Кстати, да, спасибо за информацию по GetCurrentLocation - работает. Правда, оказалось еще можно использовать GetParentCell() для этих целей blush

Multigone  Offline Сообщение №2824 написано: 03 Апреля 2018 в 02:20 | Отредактировано: Multigone - Вторник, 03 Апреля 2018, 02:20



627
Wertys, звук может играться откуда угодно, будь то скрипт алиаса, эффекта, актера и т.д. Дай его - посмотрим, в чем дело.

Wertys  Offline Сообщение №2825 написано: 06 Апреля 2018 в 02:29


Странник


24
Multigone, а можешь подсказать как сделать противоположный скрипт запирания. Хотелось бы сделать через EVENT OnEffectStart(). Попробовал вот такой вариант:

Код
Import Debug
Import Game
Bool iLevel

   EVENT OnEffectStart(Actor akTarget, Actor akCaster)
        iLevel =  GetPlayer().GetActorValue("Alteration")
        If akTarget.IsLocked() == 0        
              akTarget.Lock(iLevel)
              Notification("Заклинание создало замок!")
         else
              Notification("Замок уже есть!")
         endif   
ENDEVENT
Опять же, все нормально сохраняется, но скрипт не работает. Такое впечатление, что заклинание вообще не видит этот скрипт.

Multigone  Offline Сообщение №2826 написано: 06 Апреля 2018 в 03:58 | Отредактировано: Multigone - Пятница, 06 Апреля 2018, 04:00



627
Wertys, он и не будет работать, т.к. маг. эффект (и его скрипт) будет запускаться только на актерах. Нужно это делать все так же через алиас с onHit().

Код
Spell Property MySpell Auto

EVENT OnHit(...
    IF akSource == MySpell
        If !GetRef().IsLocked()
              GetRef().Lock(GetPlayer().GetActorValue("Alteration"))
              Notification("Заклинание создало замок!")
         else
              Notification("Замок уже есть!")
         endif   
    ENDIF
ENDEVENT

Wertys  Offline Сообщение №2827 написано: 06 Апреля 2018 в 07:21


Странник


24
Multigone, да попробовал уже и через Event OnHit, и алиас, и Event OnMagicEffectApply - ничего. Как будто не видит заклинание скрипт, шейдеры работают, скрипт нет. Алиас сделал в том же квесте, что и алиас открытия, надеюсь не нужно для каждого алиаса свой квест создавать.

Multigone  Offline Сообщение №2828 написано: 06 Апреля 2018 в 17:02 | Отредактировано: Multigone - Пятница, 06 Апреля 2018, 17:15



627
Wertys, тебе нужно создать новый алиас с условиями...


Код
(S) (GetIsObjectType) (Container) (== 1) AND
(S) (GetLocked) (== 0)

...потому что в старый попадают только запертые предметы (я так думаю).

Скрипт:


Код
Spell Property MySpell Auto

EVENT OnHit(...
    IF akSource == MySpell
        GetRef().Lock(iInt(GetPlayer().GetActorValue("Alteration") AS Int, 1, 100))
        Notification("Заклинание создало замок!")
    ENDIF
ENDEVENT

Int FUNCTION iInt(Int A, Int B = 1, Int C = 0) ; Ограничение А внутри интервала В - С.
    IF B > C
        IF A >= B
            RETURN B
        ELSEIF A < C
            RETURN C
        ENDIF
    ELSEIF A <= B
        RETURN B
    ELSEIF A > C
        RETURN C
    ENDIF
    RETURN A
ENDFUNCTION

Wertys  Offline Сообщение №2829 написано: 07 Апреля 2018 в 05:08


Странник


24
Multigone, разобрался, ошибка была еще в квесте.

Скрипт, в целом рабочий, но он почему-то закрывал мне ящики только на 0-й уровень, независимо от уровня навыка. Проблему решил так:

Код
GetRef().Lock(true)
GetRef().SetLockLevel(iInt(GetPlayer().GetActorValue("Alteration") AS Int, 1, 100))
Еще раз спасибо за помощь!

Хисимэль  Offline Сообщение №2830 написано: 15 Апреля 2018 в 18:48 | Отредактировано: Хисимэль - Среда, 18 Апреля 2018, 19:21


Обращённый


108
В Скайриме есть нажимные пластины: нажал - и что-то там открылось.
Есть даже такой вариант: нажал повторно - закрылось.
А как в скрипте прописать, чтобы при нажатии открывалось, а когда отжато - открывалось?
______________
Вопрос решен.

Фэнтези песни менестрелей - тут можно прослушать мой голос
Настройка гитары онлайн - онлайн софт для музыкантов

Ругательство модмейкера: Чтоб тебе всю жизнь навмеши по спиральной лестнице прокладывать! (с)
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
  • Страница 95 из 95
  • «
  • 1
  • 2
  • 93
  • 94
  • 95
Поиск: