• Страница 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



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

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

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



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


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



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


Человек человеку - волк, а зомби зомби - зомби.
Вальтэр  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



832
Вальтэр

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, Спасибо получилось, но пришлось не только изменить эти строки, а ещё и добавить строки на анимацию.

Вальтэр
Stea1ch  Offline  Сообщение №3159 написано: 22 июня 2024, 22:24 | Отредактировано: Stea1ch - 22 июня 2024, 22:25



192
Нетривиальный вопрос: Имеется мод, где у некоторых NPC раскрашенные лица. Имеется в виду мод на детей TKAA. Как и чем был создан этот мод - не ясно, в описание четко указано что нельзя использовать CreationKit - все порушится к чертям. Хочу сделать команду "Иди умойся!" чтобы ребенок пошел к ближайшему умывальнику (это как раз не сложно) и умылся, соответственно нужен результат - лицо без краски. Посмотреть на непися в CreationKit не могу - они все восклицательные знаки. Так же в CK видимо не все отображается, вижу текстуры татуировок и раскраски в Tint, но у них у всех полная прозрачность стоит, не должны отображаться, но в игре еще как видны... собственно сабж: как отключить определенную текстуру скриптом? Ну или как реализовать затею? Есть идеи? 


Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3160 написано: 24 июня 2024, 06:52 | Отредактировано: Multigone - 24 июня 2024, 07:00



832
Stea1ch, моды в СК обычно создаются, возможно, с последующими изменениями в TESVEdit. Если скрипты в .bsa, то при пересохранении .esp в СК может произойти потеря связей между ними (? уточнить). Восклицательные знаки случаются, когда СК не может получить данные моделей (они отсутствуют по указанным в формах путям). Слайдеры настройки внешности актера могут не использоваться игрой, а служить для экспорта меша и оттенка головы в папки FaceGen (Ctr+F4 на форме актера). Меш может быть отредактирован далее, ему назначены опред. текстуры и прочее.

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

Stea1ch  Offline  Сообщение №3161 написано: 25 июня 2024, 14:32 | Отредактировано: Stea1ch - 25 июня 2024, 14:35



192
Цитата Multigone

Проще всего раскурочить какой-нибудь мод, где в заявленных возможностях есть изменение татуировок на актерах


Да вот не проще. Такой мод всего один - EFF, зависит от мода RaceMenu и UIExtensions, и он не работает на SE, точнее именно функция изменения внешность непися, она заточена под самую свежую SKSE для AE. Был когда-то мод NPC Appearance Changer - но автор его грохнул с нексуса окончательно и бесповоротно. Да и мне кажется что он тоже костыльный, с проекцией внешности гг на непися и только. Да и вообще этот мод глючный до безумия. Автор однозначно хотел как лучше, но порушил скрипты, отвечающие за поведение напарника, напарник не переходит на другие локации за ГГ, без консоли вообще никак не поиграешь. Пока реализовал только костыль: Ctr+F4 на форме актера, затем удаление экспортированного меша (иначе конская голова) - в этом случае игнорируются татуировки и боевая раскраска, экспортируется только SkitTone от расы, вся боевая раскраска благополучно исчезает. Но надо это реализовать скриптом. Учитывая что мод все же есть - значит можно. Надо как-то достучаться до прозрачности текстур, их имена можно поглядеть, но как скриптом сдвинуть ползунок прозрачности на ноль - хз.


Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3162 написано: 26 июня 2024, 11:12



832
Скриптами можно управлять HeadPart (Actor, ActorBase), TextureSet (ActorBase, только для игрока (?)), Skin (ActorBase, Race), ColorForm (цвет пресетов доп. слоев текстур актера, используемых в Race).
Если я правильно понял, моделью головы из папки FaceGenData используется одна текстура для всех отметок (татуировки, макияж, грязь и т.д.). Думаю, здесь ничего нельзя сделать, т.е. чтобы произвольному актеру без подготовки заменить одну из его отметок.
С подготовкой актера и соотв. форм: можно заменить ему Skin, или HeadPart (голову).

Stea1ch  Offline  Сообщение №3163 написано: 26 июня 2024, 12:40 | Отредактировано: Stea1ch - 26 июня 2024, 12:40



192
Цитата Multigone

Если я правильно понял, моделью головы из папки FaceGenData используется одна текстура


При экспорте из этого мода экспортируется только одна текстура, а в самой форме текстуры раскраски и татуировок присутствуют отдельными файлами. Именно с этим модом такая беда, ванильные модельки с раскрашенными лицами нормально редактируются, у них ползунки прозрачности имеют положительное значение. В этом моде модели не видны в СК и прозрачность везде стоит на 0, однако по факту это не так. В xEdit оно тоже не видно, видна только основная текстура. Но они же есть! А вот управление TextureSet - это интересно! Если удастся просто скриптом подменить TextureSet на аналогичный с расы - то это решение! Благо что в этом моде раскрашенные лица только у детей из враждебных фракций, но каждая раса представлена как минимум двумя неписями - враждебными и обычными. Так что замена TextureSet на аналогичный из той же расы однозначно проканает. Можно хоть пример какой, куда копать? Не видел я таких скриптов.


Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3164 написано: 26 июня 2024, 16:45 | Отредактировано: Multigone - 26 июня 2024, 17:04



832
Я имею в виду, что все ванильные актеры имеют данные о внешности в виде модели головы, находящейся в Meshes...FaceGenData, и одной (?) текстуры оттенка кожи / татуировок / макияжа / грязи, находящейся в Textures...FaceGenData. Эта текстура получается путем смешивания желаемых слоев при создании / экспорте данных актера.
Путь к текстуре указан внутри модели, поэтому, чтобы изменить текстуру, функция скрипта должна уметь оперировать с самой моделью. Насколько я знаю, таких функций в LE нет.
Игра позволяет назначать другие наборы текстур (TextureSet) для форм, имеющих World Model, но неясно, можно ли это сделать для актеров или их HeadParts (не в курсе, нужны тесты).
За это отвечают функции GetWorldModelNumTextureSets, GetWorldModelNthTextureSet, SetWorldModelNthTextureSet. Для ActorBase есть функция Get/SetFaceTextureSet, но неясно, можно ли использовать ее для кого-либо, кроме игрока.

Типичные ситуации применения:
Form Property xF Auto ; какая-то форма, например, актер (?), Armor (skin) или HeadPart
TextureSet Property xS Auto
Function MyFun()
    Int iN = xF.GetWorldModelNumTextureSets() ; число элементов у модели, которые могут иметь TextureSet (?)
    If iN >= 3 and xF.GetWorldModelNthTextureSet(2) != none ; порядок номеров элементов начинается с 0; например, проверяем, что число элементов не меньше 3, и что значение третьего элемента не пусто
        xF.SetWorldModelNthTextureSet(xS, 2) ; даем третьему элементу модели новое значение xS
        If xF as Actor and (xF as Actor).IsOnMount() == false ; например, проверяем, является ли форма актером, и не находится ли он верхом
            (xF as Actor).QueueNiNodeUpdate() ; обновляем модель ; DO NOT USE WHILE MOUNTED

Actor Property xA Auto
Function MyFun()
    ((Game.GetPlayer().GetBaseObject()) as ActorBase).SetFaceTextureSet(xS)
    ((xA.GetBaseObject()) as ActorBase).SetFaceTextureSet(xS)
    ; обновляем модели, убедившись, что актеры не верхом, в противном случае ждем, пока они спешатся, либо спешиваем их принудительно

Далее, сохранение не запоминает эти изменения, поэтому их нужно производить при каждой загрузке актера (?).

Stea1ch  Offline  Сообщение №3165 написано: 29 июня 2024, 21:58 | Отредактировано: Stea1ch - 29 июня 2024, 21:59



192
Цитата Multigone

сохранение не запоминает эти изменения, поэтому их нужно производить при каждой загрузке актера (?).


Думаю все решается квестом, который будет стартовать при загрузке и вносить нужные изменения в зависимости от стадии.


Человек человеку - волк, а зомби зомби - зомби.
Stea1ch  Offline  Сообщение №3166 написано: 29 июня 2024, 22:06 | Отредактировано: Multigone - 30 июня 2024, 15:08



192
Другой вопрос по другому моему моду: хочу использовать ритуальное заклинание иллюзии (зрение десятого глаза) для включения/отключения объектов. Но ванильные скрипты жестко привязаны к квесту. Можно ли переколбасить ванильный скрипт для отображения скрытых предметов без прослойки в виде квеста? Пока уткнулся в обязательную переменную, коей в ванильном скрипте является скрипт квеста. Вот ванильный скрипт:

Scriptname MGRitual02EffectScript extends ActiveMagicEffect
{Scripted effect for the Spell Associated with MGRitual02}

Quest Property RitualQuest Auto
ReferenceAlias Property Book01 Auto
ReferenceAlias Property Book02 Auto
ReferenceAlias Property Book03 Auto
ReferenceAlias Property Book04 Auto

float property fDelay auto
{time to wait before switching to constant Imod}
ImageSpaceModifier property IntroFX auto
{IsMod applied at the start of the spell effect}
ImageSpaceModifier property MainFX auto
{main isMod for spell}
ImageSpaceModifier property OutroFX auto
{IsMod applied at the end of the spell effect}
sound property IntroSoundFX auto ; create a sound property we'll point to in the editor
sound property OutroSoundFX auto ; create a sound property we'll point to in the editor
; Obtain the target of the active fire effect

Event OnEffectStart(Actor Target, Actor Caster)
  fDelay = 0.83
  int instanceID = IntroSoundFX.play((target as objectReference)) ; play IntroSoundFX sound from my self
  introFX.apply() ; apply isMod at full strength
  utility.wait(fDelay) ; NOTE - neccessary?
  introFX.remove() ; remove initial FX
  mainFX.apply()
  fDelay=0
  MGRitual02QuestScript QuestScript = RitualQuest as MGRitual02QuestScript
  QuestScript.SpellActive =1
  Book01.GetReference().Enable(True)
  Book02.GetReference().Enable(True)
  Book03.GetReference().Enable(True)
  Book04.GetReference().Enable(True)
EndEvent

Event OnEffectFinish(Actor Target, Actor Caster)
  MGRitual02QuestScript QuestScript = RitualQuest as MGRitual02QuestScript
  QuestScript.SpellActive =0
  Book01.GetReference().Disable()
  Book02.GetReference().Disable()
  Book03.GetReference().Disable()
  Book04.GetReference().Disable()
  int instanceID = OutroSoundFX.play((target as objectReference)) ; play OutroSoundFX sound from my self
  introFX.remove()
  mainFX.remove()
  OutroFX.apply()
endEvent






Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3167 написано: 30 июня 2024, 15:28 | Отредактировано: Multigone - 30 июня 2024, 15:52



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

ObjectReference Property MyObject Auto
Event...
 MyObject.Enable()

...
FormList Property MyFLBaseObjects Auto
Event...
 ObjectReference tempref = Game.FindRandomReferenceOfAnyTypeInListFromRef(MyFLBaseObjects, Game.GetPlayer(), 600.0)
 ; найти случайный подходящий референс из форм-листа с базовыми формами рядом с игроком в радиусе 600 юнитов
 If tempref
   tempref.Enable()
 EndIf

Stea1ch  Offline  Сообщение №3168 написано: 2 июля 2024, 23:11 | Отредактировано: Stea1ch - 2 июля 2024, 23:16



192
Цитата Multigone

Для ActorBase есть функция Get/SetFaceTextureSet


Наткнулся на ЭТО, но инфы крайне мало...


Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3169 написано: 3 июля 2024, 10:42 | Отредактировано: Multigone - 3 июля 2024, 10:50



832
Stea1ch, это скрипт для управления составляющими формы с типом TextureSet. Функции позволяют узнать число слоев, используемых тем или иным TextureSet, и назначить слоям пути к другим текстурам. Изменения будут затрагивать всех пользователей этого TextureSet, и не запоминаются между игровыми сессиями. Слэши из путей либо такие же, как в винде, либо обратные (? уточнить). TextureSet'ы используются в том числе для HeadPart и Skin, и назначение TextureSet другой текстуры, по сути, почти эквивалентно замене HeadPart или Skin (таких же, но с другими текстурами).

Stea1ch  Offline  Сообщение №3170 написано: 3 июля 2024, 18:10



192
Цитата Multigone

и назначить слоям пути к другим текстурам.


На мой взгляд - то, что нужно. Если примет none в качестве аргумента - будет просто шикарно =))


Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3171 написано: 3 июля 2024, 18:46 | Отредактировано: Multigone - 3 июля 2024, 18:53



832
Stea1ch, SetNthTexturePath(Int n, String texturePath), как и любая другая функция, примет аргументы только тех типов и в том порядке, в каком виде она объявлена в соответствующем исходнике скрипта .psc, иначе пользовательский скрипт не скомпилируется с ошибкой. Для конкретно этой функции первым аргументом должен быть int (целое число), вторым string (текст). Текстовая перем. берется в кавычки и может быть пустой, типа так:
""

Значение none может быть присвоено скриптовым переменным, оперирующим формами СК.
TextureSet MySet = none


Stea1ch  Offline  Сообщение №3172 написано: 3 августа 2024, 18:49 | Отредактировано: Stea1ch - 3 августа 2024, 20:50



192
Кто знает за что именно отвечает property type ImageSpaceModifier? А точнее хоть один мануал по созданию оных, там в них параметров туева хуча и никакой инфы что к чему... Пытаюсь сделать заклинание замедления времени (в идеале - остановки), но вот уперся в это, тот вариант MagShoutSprint03 из крика просто не сохраняется на заклинании, сбрасываются все остальные свойства со скрипта. Это в свойстве OutroFX скрипта MagicImodScript. Так же нашел именно остановку времени, однако... этот эффект вообще непонятен. При архитектуре скрипт ничего кроме визуалки не меняется, при установке архитектуры Slow Time имеет обратный эффект - течение времени ускоряется в разы, неписи бегают как перепуганные ракеты, луны по небу движутся очень заметно... Такой вот неуклюжий доктор Стрендж получается =))

Все! Победил. Ванильные скрипты и Imod работают отлично, дело в магнитуде. Значения должны быть ниже 1 для замедления, все, что выше ускорит время. Но вопрос про создание Imagespace Modifer остается открытым, уж очень интересная фича.



Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3173 написано: 4 августа 2024, 07:13 | Отредактировано: Multigone - 4 августа 2024, 07:13



832

Stea1ch  Offline  Сообщение №3174 написано: 5 августа 2024, 14:48



192
Ладно, это мне пока не по зубам. Задумался в сторону полета. Да не просто фокусы с неписем-лошадью и игры с гравитацией, а решил попробовать замутить полноценный летающий дом. И не висящий в воздухе, а именно летающий. Идея такова: использовать ванильный скрипт ловушки для подъема и спуска, слегка изменить его, для движения по остальным осям. Соответственно весь экстерьер должен быть одним мешем и являться Movable Static. Вроде как реализуемо, но некоторые нюансы все же есть. Например с маркерами входа в интерьер. Так же в теории я могу использовать меш дома как бодипарт непися, такое я уже делал в Fallout NV - замутил нло с пушкой, где само нло - бодипарт пушки, крепление к потолку =)) Собственно сабж: как можно контролировать высоту полета не от уровня моря (Z=0), а от реальной поверхности? Или я пытаюсь укусить себя за хвост?


Человек человеку - волк, а зомби зомби - зомби.
ApeX  Offline  Сообщение №3175 написано: 5 августа 2024, 20:27



Цитата Stea1ch

как можно контролировать высоту полета не от уровня моря (Z=0), а от реальной поверхности? 


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

Stea1ch  Offline  Сообщение №3176 написано: 6 августа 2024, 07:33 | Отредактировано: Stea1ch - 6 августа 2024, 07:50



192
Цитата ApeX

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


Это я прекрасно знаю, именно по этому тот самый робоглаз по сути не летает, а бегает на этой кости. Попадись на пути гора - он будет оббегать ее по кругу, а не перелетит. Костыль. Такой же как с поездом метро, где для визуализации движения по туннелю на гг одевается шлем в виде кабины поезда и блокируется управление. Но в скайриме есть нативные подъемники и летающие существа. Вот по этому я и ищу другое решение. Что-то по типу непрерывного сброса и возврата какого-нибудь прожектиля, к примеру магического света, с замером величины Z при прикреплении оного и коррекцией высоты на основе этих данных. Ну или все-же упростить и сделать высоту полета по умолчанию выше, чем Глотка мира, которая является самой высокой точкой Тамриэля.


Человек человеку - волк, а зомби зомби - зомби.
Multigone  Offline  Сообщение №3177 написано: 6 августа 2024, 13:04 | Отредактировано: Multigone - 6 августа 2024, 13:11



832
Stea1ch, можно узнать коорд. точки поверхности:

1) Бросить заклинание FF-Aim от Х-маркера вертикально вниз. Маркер должен находиться чуть ниже, чем летающая штуковина, чтобы снаряд не попал в ее хитбокс. У снаряда взрыв, у взрыва Placed Object, у которого скрипт, передающий собственные коорд. в основной скрипт, управляющий этим. Спавн-удаление всех этих объектов скриптами. Сложна. Зато можно узнать коорд. любого препятствия, ведь снаряды можно пулять в любом направлении.
2) Бросить Hazard с флагом Drop to ground, затем проверить его коорд. (сразу или, возможно, спустя краткое время).
3) Спавнить / передвинуть актера и узнать его коорд. Актер может быть крошечным и невидимым. Не обязательно, что он появится в указанной ему точке, возможно смещение на несколько или даже много метров, поэтому точность способа приблизительная. Зато есть и свои плюшки (проверка особых для маг. эффектов условий, которые нельзя узнать скриптом, напр., находится ли актер в воде).

Stea1ch  Offline  Сообщение №3178 написано: 6 августа 2024, 18:55



192
Цитата Multigone

Бросить заклинание FF-Aim


Именно это я и задумывал, несколько лет назад при разработке радиоуправляемой мины (к стати хорошо что вспомнил, я же этот мод так и не опубликовал) в фолле 3 я вдоль и поперек изучил эти механики.


Цитата Multigone

Спавнить / передвинуть актера и узнать его коорд.

А вот этот метод я как раз хотел использовать для движения по координатам. Непись бежит к заданному маркеру, летающий дом отслеживает направление и движется за неписем, на мой взгдяд наиболее простое решение - заюзать ии пакет непися и навмеши для путешествий. Значит что-то уже начинаю понимать, раз мысли схожи =)))



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





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