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

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


The Red Sun


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


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


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

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

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
nodtrial  Offline  Сообщение №3031 написано: 3 Апрель 2021, 13:42 | Отредактировано: nodtrial - 3 Апрель 2021, 16:38



1
Ребята подскажите, почему может игнорировать команду GlobalVar1.SetValue(10.00) ?

Переменная объявлена в проперти, указана в пропертис в СК, флоат, не константа.
Меняется по событию OnRead, скрипт привязан к книге.

при
debug.notification("До: " + GlobalVar1.GetValue() as int)
GlobalVar1.SetValue(10.00)
debug.notification("После: " + GlobalVar1.GetValue() as int)

Оба раза выводит нули или другое базовое значение.
В консоли show GlobalVar1 тоже показывает базовое значение и до и после события.

ЗЫ: Решено!!!
Я нашёл в чем было дело - всё заработало после того как удалил мод полностью, почистил его скрипты, и запустил заново.

Dsion  Offline  Сообщение №3032 написано: 3 Апрель 2021, 16:30



nodtrial, должно работать... А на чистом сейве или на новой игре не пробовали? Может, у вас сейв, в котором проперти в скрипте не была заполнена или была константой.

JohnSmith  Offline  Сообщение №3033 написано: 12 Сентябрь 2021, 16:52



29
Всем привет, помогите пожалуйста с простым скриптом. Суть в следующем - скрипт вешается на предмет и при одевании проверяется какое-либо условие (например пол нпц) и выполняется что-либо. Проблема в том, что я никак не могу найти REF предмета к которому прикреплен скрипт.

Scriptname AaaScriptName extends ObjectReference

event OnEquipped(Actor akActor)

  ;ObjectReference equipment = self

  Form equipment = GetBaseObject()

  if (akActor.GetActorBase().GetSex() == 1)

    akActor.RemoveItem(equipment, 1)

    Debug.MessageBox(equipment)

  endIf

endevent


Dsion  Offline  Сообщение №3034 написано: 13 Сентябрь 2021, 14:08



Та да, есть такое. У обычных предметов, лежащих в контейнерах, референсов и нету.
Вроде, есть у тех, что также находятся в алиасе. Не уверен.
Можно сделать проперти типа Armor и сунуть туда базовый объект. Тогда можно будет его снять.

Armor Property Magic2Ring Auto;

Event OnEquipped(Actor akActor)
    akActor.UnequipItem(Magic2Ring);
EndEvent

Но если надето несколько одинаковых предметов, то и не фак, что снимется нужный.

JohnSmith  Offline  Сообщение №3035 написано: 13 Сентябрь 2021, 21:28



29
Цитата Dsion

Та да, есть такое. У обычных предметов, лежащих в контейнерах, референсов и нету.
Вроде, есть у тех, что также находятся в алиасе. Не уверен.
Можно сделать проперти типа Armor и сунуть туда базовый объект. Тогда можно будет его снять.

Armor Property Magic2Ring Auto;

Event OnEquipped(Actor akActor)
    akActor.UnequipItem(Magic2Ring);
EndEvent

Но если надето несколько одинаковых предметов, то и не фак, что снимется нужный.

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


Multigone  Offline  Сообщение №3036 написано: 15 Сентябрь 2021, 15:01



682
JohnSmith, хватит одного скрипта-шаблона, который будет повешен на все формы, и у которого проперти будет заполнено этой формой. В смысле, если для всех предметов требуется выполнить одно и то же действие (например, снять или удалить).

Lissenok  Offline  Сообщение №3037 написано: 6 Декабрь 2021, 18:51



11
Здравствуйте. Подскажите,пожалуйста, есть ли такой скрипт, чтобы в контейнер один раз в сутки добавлялись определенные предметы, но не просто обновлялись, а плюсовались. Допустим, если добавляется две единицы молока, то через неделю их было в контейнере уже 14? Спасибо.

Multigone  Offline  Сообщение №3038 написано: 14 Декабрь 2021, 17:40



682
Lissenok,

Например, такое (на контейнер, он не должен авто-обновляться вместе с локацией):

MiscObject Property MyItem Auto ; Предмет (для оружия, брони, зелий, боеприпасов вместо MiscObject использовать соотв. Weapon, Armor, Potion, Ammo)
Int Property MyCount Auto ; Кол-во

EVENT OnInit()
   RegisterForSingleUpdateGameTime(12.0)
ENDEVENT

EVENT OnUpdateGameTime()
   AddItem(MyItem, MyCount)
   RegisterForSingleUpdateGameTime(24.0)
ENDEVENT

; В данном случае скрипт впервые добавляет предметы через 12 ч. после первой инициализации референса контейнера, и далее каждые 24 ч. Чтобы предмет добавлялся в опред. промежуток времени суток / строго в опред. время суток, скрипт должен быть немного сложнее, но я не могу его сейчас написать и проверить, т.к. не установлен СК и нет исходников.

Lissenok  Offline  Сообщение №3039 написано: 25 Декабрь 2021, 13:19



11
Цитата Multigone

Lissenok,

Например, такое (на контейнер, он не должен авто-обновляться вместе с локацией):

MiscObject Property MyItem Auto ; Предмет (для оружия, брони, зелий, боеприпасов вместо MiscObject использовать соотв. Weapon, Armor, Potion, Ammo)
Int Property MyCount Auto ; Кол-во

EVENT OnInit()
   RegisterForSingleUpdateGameTime(12.0)
ENDEVENT

EVENT OnUpdateGameTime()
   AddItem(MyItem, MyCount)
   RegisterForSingleUpdateGameTime(24.0)
ENDEVENT

; В данном случае скрипт впервые добавляет предметы через 12 ч. после первой инициализации референса контейнера, и далее каждые 24 ч. Чтобы предмет добавлялся в опред. промежуток времени суток / строго в опред. время суток, скрипт должен быть немного сложнее, но я не могу его сейчас написать и проверить, т.к. не установлен СК и нет исходников.


Спасибо! Мне и не надо в определенное время, главное, что бы когда я возвращалась домой, в контейнере лежал не один предмет, а по количеству прошедших дней.



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





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