Модератор форума: 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? Пиши не в ЛС, а в эту тему.
Иsкатель  Offline  Сообщение №331 написано: 28 июля 2013, 13:27



71
MZRNLeader, вот:
Код
GlobalVariable Property GameHour  Auto  

GameHour.SetValue(GameHour.GetValue() + 1)  ; Прибавляем 1 час.
Но я не знаю как сделать рандом.
Вообщем почитай вот !это! сообщение.

MZRNLeader  Offline  Сообщение №332 написано: 28 июля 2013, 14:09



6
Цитата Иsкатель

Но я не знаю как сделать рандом. Вообщем почитай вот !это! сообщение.

Спасибо!

AleksTirex  Offline  Сообщение №333 написано: 28 июля 2013, 14:19


Архимаг


371
Цитата Иsкатель

Но я не знаю как сделать рандом.



GameHour.SetValue(GameHour.GetValue() + Utility.RandomFloat(0.1, 24.0))

MZRNLeader  Offline  Сообщение №334 написано: 28 июля 2013, 14:23



6
Цитата AleksTirex

GameHour.SetValue(GameHour.GetValue() + Utility.RandomFloat(0.1, 24.0))

О, премного благодарствую)

Иsкатель  Offline  Сообщение №335 написано: 28 июля 2013, 14:27



71
AleksTirex
Цитата AleksTirex

0.1, 24.0

что они означают?

Добавлено (28.07.2013, 18:27)
---------------------------------------------
AleksTirex, аааа понял, это предел(от и до)?


MZRNLeader  Offline  Сообщение №336 написано: 28 июля 2013, 14:55



6
Цитата Иsкатель

GlobalVariable Property GameHour  Auto  GameHour.SetValue(GameHour.GetValue() + 1)  ; Прибавляем 1 час.

Только теперь возникла проблема с компиляцией скрипта, CK наотказ не компилирует его.

Arin  Offline  Сообщение №337 написано: 28 июля 2013, 15:30



570
Добрый вечер. Возникла небольшая проблема. По квесту нужно, чтобы нпс кастанул на игрока баф (спелл, кастуется на цель(!) ), но найденный оператор отказывается работать.

Ariella.DoCombatSpellApply(AriellaSpell, Game.GetPlayer()) native

Объявленные переменные:

ReferenceAlias Property Ariella  Auto  
SPELL Property AriellaSpell  Auto  

Не подскажете, в чем может содержаться проблема?

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
Иsкатель  Offline  Сообщение №338 написано: 28 июля 2013, 15:43 | Отредактировано: Иsкатель - 28 июля 2013, 15:45



71
Arin,  
Цитата Arin

Ariella.DoCombatSpellApply(AriellaSpell, Game.GetPlayer()) native

 Это функия каста?O_o Впервые вижу, нужно так: AriellaSpell.Cast(Ariella, Game.GetPlayer())
(Хотя я могу и ошибаться)

Добавлено (28.07.2013, 19:43)
---------------------------------------------
MZRNLeader, выложите полный скрипт.

Arin  Offline  Сообщение №339 написано: 28 июля 2013, 15:48 | Отредактировано: Arin - 28 июля 2013, 16:08



570
Цитата Иsкатель

Это функия каста?O_o Впервые вижу, нужно так: AriellaSpell.Cast(Ariella, Game.GetPlayer())(Хотя я могу и ошибаться)


Спасибо, попробую. А оператор я нашла вот тут: http://www.creationkit.skv1991.ru/index.php/Actor_Script

Под ним было подписано: Применить заклинание на цель в бою.

ЗЫ: Все равно выдает ошибку, правда, уже другую.. Может быть ему не нравится ссылка на псевдоним? оО
ЗЫ: сприпт скомпилировался, но не заработал. Придется все-таки заменить каст заклинания на проигрывание анимации. Осталось разобраться, как лучше это сделать Х)

Наука всегда оказывается не права. Она не в состоянии решить ни одного вопроса, не поставив при этом десятка новых.
Джордж Бернард Шоу
AleksTirex  Offline  Сообщение №340 написано: 28 июля 2013, 16:37


Архимаг


371
Обе команды правильные, обе работают, и обе работают без анимации. Если надо, чтобы актёр кастовал "махая руками", то тут нужен пакет UseMagic, в котором указывается цель и спелл. Добавляются пакеты через алиас. tiarum.com/wiki/Skyrim_CK: Как добавить АИ пакет NPC (ссылку никак не вставить, поэтому пройдите сами по этому пути)

Так же проверь корректность самого спелла.

Ракшас  Offline  Сообщение №341 написано: 29 июля 2013, 13:15 | Отредактировано: Ракшас - 29 июля 2013, 13:21



7
Возможно, вопрос глуп, и ответ прост, как пять копеек, но я уже замучился. Как правильно нужно изменять оригинальный скрипт?

Я решил изменить оригинальный скрипт вампиризма - PlayerVampireQuestScript (через Notepad++, потом через Sublime Text 2). Изменение очень небольшое - в своём плагине я создал две новых способности "Оберег тёплой крови", AbVampireRegen01 и AbVampireRegen02, которые увеличивают регенерацию - первая посильнее, вторая послабее.

Добавил строчку в скрипт -

ElseIf VampireStage == 1

...Player.AddSpell(AbVampire01, abVerbose = False)
Player.AddSpell(AbVampire01b, abVerbose = False)
Player.AddSpell(AbVampireRegen01, abVerbose = False)

Player.AddSpell(VampireDrain01, abVerbose = False)
;check to see if player has power equipped and switch them out...

И во вторую стадию вампиризма -

ElseIf VampireStage == 2

...Player.RemoveSpell(AbVampire01)
Player.RemoveSpell(AbVampire01b)
Player.RemoveSpell(AbVampireRegen01)
Player.AddSpell(AbVampire02b, abVerbose = False)
Player.AddSpell(AbVampire02, abVerbose = False)
Player.Addspell(AbVampireRegen02, abVerbose = False)
;Player.RemoveSpell(VampireStrength01)...

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

Лучше пузо от пива, чем горб от работы!
temp5050  Offline  Сообщение №342 написано: 3 августа 2013, 19:21 | Отредактировано: temp5050 - 3 августа 2013, 19:35



167
Цитата Ракшас

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



Скрипт привязан к "квесту"? Если да, то причина, скорее всего, в том, что этот "квест" не был завершен. Все параметры этого скрипта были заданы при запуске квеста и сейчас хранятся в твоем сейве. А добавленные переменные "AbVampireRegen01" и "AbVampireRegen02" просто отсутствуют в сейве. Нужно как-то "перезапустить" этот квест.

Knight84  Offline  Сообщение №343 написано: 4 августа 2013, 13:51



16
Есть ли скриптовая функция, запрещающая игроку использовать его лошадь? Т.е., когда подходишь к лошади, не появлялось бы сообщение "Лошадь, принадлежит игроку. Ехать."
Или же, функция, запрещающая вообще что либо юзать (активировать игроку): активаторы, ящики, нпс и т.д.

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

Спасибо!

Aresnir  Offline  Сообщение №344 написано: 4 августа 2013, 15:02



32
Видимо мой прошлый вопрос был слишком сложным, что на него никто не ответил....

Но у меня есть еще вопрос по скриптам. Подскажите, пожалуйста, как мне сделать скрипт, который бы ВНЕ помещений изменял параметры прыжка игрока. Я вот сделал небольшой скрипт, но в игре так и не увидел последствий его работы:

Код
Scriptname ToaOfAirJumping extends ActiveMagicEffect   

Event OnInit()
             Game.SetGameSettingFloat("fJumpHeightMin", 152)
             Game.SetGameSettingFloat("fJumpMoveMult", 0.6)
             Game.SetGameSettingFloat("fJumpFallHeightMin", 900)
EndEvent

Event OnPlayerLoadGame()
             Game.SetGameSettingFloat("fJumpHeightMin", 152)
             Game.SetGameSettingFloat("fJumpMoveMult", 0.6)
             Game.SetGameSettingFloat("fJumpFallHeightMin", 900)
EndEvent

Этот скрипт работает только с SKSE. (но видимого эффекта нет)

W@nTeD  Offline  Сообщение №345 написано: 4 августа 2013, 19:33


l3g3nD@rY cR3@tuR3


Хотел давно узнать, как работают Чёрные книги в дополнении Dragonborn. А подробно, скрипт телепортации гг! Тойсть когда гг читает книгу, активируется анимация а потом его телепортирует! Вопрос как примерно выглядит скрипт телепортации. Только не с помощью книги, а с помощью созданного мной заклинания?

Тема по Hammer Editor
slastik  Offline  Сообщение №346 написано: 5 августа 2013, 05:44


Жаждущий


209
Цитата W@nTeD

Хотел давно узнать, как работают Чёрные книги в дополнении Dragonborn. А подробно, скрипт телепортации гг! Тойсть когда гг читает книгу, активируется анимация а потом его телепортирует! Вопрос как примерно выглядит скрипт телепортации. Только не с помощью книги, а с помощью созданного мной заклинания?

Этот вопрос уже был. Вот простейший скрипт на телепорт:

Scriptname TeleportScript extends activemagiceffect  

ObjectReference Property MyMarker Auto  

Event OnEffectStart(Actor akTarget, Actor akCaster)
 Game.GetPlayer().MoveTo(MyMarker)
EndEvent


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

- Что это за горы стоят?
- А, это орки бегут!
Runes777  Offline  Сообщение №347 написано: 5 августа 2013, 09:19 | Отредактировано: Runes777 - 5 августа 2013, 09:20



1
Ребят, помогите пожалуйста! нужно изменить значение безопасного падения с высоты. где и как это сделать?

Иsкатель  Offline  Сообщение №348 написано: 5 августа 2013, 11:34



71
Какой скрипт отвечает за то, что когда с лука Ауриэля специальными( название не помню:D ) стрелами стреляеш в небо, то оно темнеет и т.д. ?

-major-  Offline  Сообщение №349 написано: 7 августа 2013, 08:52 | Отредактировано: -major- - 14 августа 2013, 02:32



1
Помогите, пожалуйста, нужен скрипт, чтобы количество тренировок у учителей навыков зависело от текущего уровня игрока.

P.S. Скрипт вроде написал, но вот на какой event его повесить и куда прикрепить.

P.S.S. Всем спасибо, все работает.

katkat  Offline  Сообщение №350 написано: 16 августа 2013, 11:52



9
Помогите, пожалуйста! Нужен скрипт который телепортировал бы нпс к указанному маркеру при ударе по нему определенным оружием.

W@nTeD  Offline  Сообщение №351 написано: 16 августа 2013, 12:00


l3g3nD@rY cR3@tuR3


Иsкатель, Тут скорее используется какой либо эффект чем скрипт.
ALEX250682, За это отвечает сам Creation Kit но не Papyrus.

Тема по Hammer Editor
Artem13  Offline  Сообщение №352 написано: 16 августа 2013, 12:32


Mercenaries. Со смертью на ты.


katkat, несколькими постами выше на этой странице сластик писал как раз то, что тебе нужно.

Добавлено (16.08.2013, 16:32)
---------------------------------------------

Цитата W@nTeD

Иsкатель, Тут скорее используется какой либо эффект чем скрипт.

 W@nTeD, сомневаюсь. Скорее там именно скриптованный эффект.

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
katkat  Offline  Сообщение №353 написано: 16 августа 2013, 17:16



9
Цитата Artem13

несколькими постами выше на этой странице сластик писал как раз то, что тебе нужно

Мне нужно чтобы к маркету телепортировало не героя а того кого он ударит заскриптованным мечом.

Artem13  Offline  Сообщение №354 написано: 16 августа 2013, 18:09


Mercenaries. Со смертью на ты.


katkat, вместо Game.GetPlayer() попробуй подставить akTarget. Т.е. строка должна принять вид akTarget.MoveTo(MyMarker)

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
katkat  Offline  Сообщение №355 написано: 16 августа 2013, 18:49



9
не робит
Цитата Artem13

попробуй подставить akTarget


W@nTeD  Offline  Сообщение №356 написано: 19 августа 2013, 12:28 | Отредактировано: W@nTeD - 19 августа 2013, 12:29


l3g3nD@rY cR3@tuR3


Insomniac, По идее это специальные перки.

Тема по Hammer Editor
slastik  Offline  Сообщение №357 написано: 19 августа 2013, 12:53


Жаждущий


209
Возникла следующая проблемка. Создаю маг эффект с прикрученным скриптом для запуска анимации, а анимация работает только со свободными руками. Каждый раз снимать все вручную неудобно. Подскажите, плиз, скриптовую команду для полной разэкипировки слотов левой и правой руки (чтобы снималось все, будь то факел, оружие, щит или спелл).

- Что это за горы стоят?
- А, это орки бегут!
Artem13  Offline  Сообщение №358 написано: 19 августа 2013, 13:17


Mercenaries. Со смертью на ты.


slastik, теоретически - UnequipItemSlot

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
slastik  Offline  Сообщение №359 написано: 19 августа 2013, 15:26


Жаждущий


209
Artem13, спасибо. А теперь бы узнать какие слоты нужны :)

Добавлено (19.08.2013, 19:26)
---------------------------------------------
Разобрался со слотом для щита, а вот факел какой слот занимает? :(


- Что это за горы стоят?
- А, это орки бегут!
Artem13  Offline  Сообщение №360 написано: 19 августа 2013, 17:15


Mercenaries. Со смертью на ты.


slastik, х.з.. Определить его в руке можно так - GetEquippedItemType
А еще попробуй у Кристы спросить - она по одёжке давала расклад по доп слотам, может хотя бы подскажет где номера эти смотреть..

<a class="link" href="http://nick-name.ru/sertificates/278209/" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Поиск:





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