• Страница 106 из 106
  • «
  • 1
  • 2
  • 104
  • 105
  • 106
Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)

Вопросы по скриптам Papyrus
sansuli  Offline  Сообщение №1 написано: 31 августа 2012, 13:29 | Отредактировано: Multigone - 23 апреля 2020, 14:24


The Red Sun


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


Тема регламентирована.


• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней.
• Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней.
• При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС.
• При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "
+" полезного сообщения.

Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Stea1ch  Offline  Сообщение №3151 написано: 3 мая 2023, 07:19



180
Мда... либо топик мертв - либо не осталось знатоков...

Накатал такой скрипт, призванный парализовать нежить, прикрутил к эффекту, работает, только вот нежить что на ногах почему-то не падает, а продолжает "бег на месте". Паралич срабатывает, но не так. Может какой еще эффект надо прикрутить чтобы нежить с ног валилась и лежала? Кто знает какой эффект прикрутить или какой создать и прикрутить?

Scriptname ForgottenSpellsParalyze extends ActiveMagicEffect  
Explosion Property PowerSerpentStoneExplosion  Auto  
Keyword Property UndeadKeyword  Auto
Spell Property MS08ParalysisAbility  Auto 
Event OnEffectStart(Actor Target, Actor Caster)
;if target is undead - add extra explosion and paralyze effect
 if Target.HasKeyword(UndeadKeyword)
 Target.PlaceAtMe(PowerSerpentStoneExplosion, 1, False, False)
 Target.AddSpell(MS08ParalysisAbility)
 endif
EndEvent



Человек человеку - волк, а зомби зомби - зомби.
Stea1ch  Offline  Сообщение №3152 написано: 3 мая 2023, 08:47



180
Методом научного тыка я понял, что Target.AddSpell(MS08ParalysisAbility) не выполняется. Переделал способность и эффект, отвязав от квеста MS08 (создал свои на основе ванильных), прописал все в скрипт - с нулевым результатом. Хотя из консоли если я кликаю по драугру или скелету и командой addspell добавляю мой созданный паралич - цель успешно падает лапками кверху. За основу взят скрипт огненного плаща Дж'зарго. ЧЯДНТ?


Человек человеку - волк, а зомби зомби - зомби.
Stea1ch  Offline  Сообщение №3153 написано: 3 мая 2023, 19:20



180
Всем огромное спасибо, вы все мне так хорошо помогли своим молчанием и игнором, что я сделал все сам. Хрена с два я теперь поделюсь как. Всех благ.


Человек человеку - волк, а зомби зомби - зомби.
Вальтэр  Offline  Сообщение №3154 написано: 20 мая 2024, 21:41



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

Вальтэр
Вальтэр  Offline  Сообщение №3155 написано: 25 мая 2024, 10:23



49
Хельп други подскадите, что не так. Двери должны открываться, но они стоят. Это скрипт для ставней.

scriptName ............ extends ObjectReference

{Controls a set of Lock with a master enable parent marker with this

script attached to turn on and off at the times of the day specified

by the properties CloseTime and OpenTime}

float Property CloseTime = 7.0 auto

{The time at which Lock should be turned off}

float Property OpenTime = 18.0 auto

{The time at which Open should be turned on}

float Function GetCurrentHourOfDay() global

{Returns the current time of day in hours since midnight}

float Time = Utility.GetCurrentGameTime()

Time -= Math.Floor(Time) ; Remove "previous in-game days passed" bit

Time *= 24 ; Convert from fraction of a day to number of hours

Return Time

EndFunction

Function RegisterForSingleUpdateGameTimeAt(float GameTime)

{Registers for a single UpdateGameTime event at the next occurrence

of the specified GameTime (in hours since midnight)}

float CurrentTime = GetCurrentHourOfDay()

If (GameTime < CurrentTime)

GameTime += 24

EndIf

RegisterForSingleUpdateGameTime(GameTime - CurrentTime)

EndFunction

Event OnInit()

If (ShouldClose())

GoToState("Close")

Else

GoToState("Open")

EndIf

EndEvent

State UnLock

Event OnBeginState()

Disable()

RegisterForSingleUpdateGameTimeAt(OpenTime)

EndEvent

Event OnUpdateGameTime()

If (ShouldClose())

RegisterForSingleUpdateGameTimeAt(OpenTime)

Else

GoToState("Open")

EndIf

EndEvent

EndState

State LockOn

Event OnBeginState()

Enable()

RegisterForSingleUpdateGameTimeAt(CloseTime)

EndEvent

Event OnUpdateGameTime()

If (ShouldClose())

GoToState("Close")

Else

RegisterForSingleUpdateGameTimeAt(CloseTime)

EndIf

EndEvent

EndState

bool Function ShouldClose()

{Validate the Open state based on current time of day}

float CurrentTime = GetCurrentHourOfDay()

If (CurrentTime >= CloseTime) && (CurrentTime < OpenTime)

return true

Else

return false

EndIf

EndFunction


Вальтэр
Multigone  Offline  Сообщение №3156 написано: 25 мая 2024, 12:58



817
Вальтэр

1) изменить названия состояний UnLock на Close и LockOn на Open;
2) в функции RegisterForSingleUpdateGameTimeAt регистрация должна происходить с немного увеличенным временем, т.е. не (GameTime - CurrentTime), а (GameTime - CurrentTime + 0.01);

Вальтэр  Offline  Сообщение №3157 написано: 25 мая 2024, 15:22



49
Multigone,  спасибо попробую

Вальтэр
Вальтэр  Offline  Сообщение №3158 написано: 29 мая 2024, 09:04



49
Multigone, Спасибо получилось, но пришлось не только изменить эти строки, а ещё и добавить строки на анимацию.

Вальтэр
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
  • Страница 106 из 106
  • «
  • 1
  • 2
  • 104
  • 105
  • 106
Поиск:





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