Перейти к содержимому


Фотография

Вопросы по скриптам

papyrus help скрипты вопросы

  • Авторизуйтесь для ответа в теме

#681 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Тема для вопросов по скриптингу.

Функции папируса:

На английском

На русском (не все, но базис)



 




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 832

#682 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

 

 

Я так думаю, что эту систему можно переделать, просто в проперти скрипта.изменив существо, которое призывается на маркер.

Чтоб проперти ДЛЦшных скриптов смотреть и править, надо исходники скриптов перенести из папки Data\Scripts\Source\ИМЯ_ДЛЦ\ в просто Data\Scripts\Source\

Так дело в том, что мод завязан на "Dawngurd" а не на "Dragonborn". И я совсем не разбираюсь в скриптах, так что и понятия не имею как сделать то, что вы мне предлагаете. Я вычленил скрипты связанные с пепельным стражем, но не могу ничего в них понять. Мне стыдно, но что делать... Поэтому я и обратился за помощью.



#683 Ссылка на это сообщение Кайо

Кайо
  • Новенький
  • 8 сообщений

Отправлено

Вот в таком виде.

Ох, спасибо вам за такое участие, что даже сами проверяли, но... Увы... Очень обрадовалась, что всё скомпилировалось в диалоге, очень огорчилась, что в игре оно совсем не работает. Проверяла, пробегаясь по диалогу и проверяя глобальную переменную через консоль - у неё остаётся стартовое значение (я не ставила галочки у Constant, честное чайничное). Сделала ещё один скрипт в квесте, скопировав тот текст для создания функции (только название поменяла), всё скомпилировалось, но, когда ввожу в диалоговом окне PlusLevel(100), прога торжественно сообщает, что функция не существует... Даже перезапускала дважды, мало ли. На всякий случай сменила стартовое значение переменной на -2, ибо не знала, не может ли оно ноль за булевый тип принимать. Тоже бес толку.



#684 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Очень обрадовалась, что всё скомпилировалось в диалоге, очень огорчилась, что в игре оно совсем не работает.

Глобальная переменная то так же называется, как в скрипте?

но, когда ввожу в диалоговом окне PlusLevel(100), прога торжественно сообщает, что функция не существует

Вызов внешней функции, не из текущего скрипта, происходит несколько иначе.
 

Так дело в том, что мод завязан на "Dawngurd" а не на "Dragonborn". И я совсем не разбираюсь в скриптах, так что и понятия не имею как сделать то, что вы мне предлагаете. Я вычленил скрипты связанные с пепельным стражем, но не могу ничего в них понять. Мне стыдно, но что делать... Поэтому я и обратился за помощью.

Ну тогда тебе сюда.
Но лучше начать с самого начала.
Если у тебя нет знания основ - советы тебе ничем не помогут.



#685 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

Ну тогда тебе сюда.

Но лучше начать с самого начала.
Если у тебя нет знания основ - советы тебе ничем не помогут.

Спасибо. А на русском нет?



#686 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Спасибо. А на русском нет?

Не видел.



#687 Ссылка на это сообщение Кайо

Кайо
  • Новенький
  • 8 сообщений

Отправлено

Глобальная переменная то так же называется, как в скрипте?

Да, глобальная переменная BLlevel, она равна -2 сейчас. Код в точности скопирован, только название локальной переменной усложнила, хотя, если она локальная, то можно также спокойно использовать n? Или то таки для примера?

GlobalVariable BLlevel
int BLlevar = BLlevel.GetValueInt()
BLlevel.SetValueInt(BLlevar + 100)

Более простой вариант тоже не ругается, но и тоже не работает

GlobalVariable BLlevel
BLlevel.SetValueInt(1)

С вызовом функции явно косячу ещё сильнее, чем можно закосячить с этим, компилятор ругается почти на всё, а она, полагаю, тоже не сработает, если не пашет этот вариант?



#688 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

а она, полагаю, тоже не сработает, если не пашет этот вариант?

Да вот хз.

Возможно, что глобалы нельзя "на лету" назначать. Только с проперти. Но тут я не уверен.

В скрипте квеста у тебя оно у тебя в любом случае как проперти должно быть прописано, и функция тоже там лежит, и оттуда работает.

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

Ну и еще, есть команда Mod. Работает проще, чем связка Get\Set.



#689 Ссылка на это сообщение IgorLutiy

IgorLutiy
  • Выбраковщик
  • 1 107 сообщений
  •    

Отправлено

Спасибо. А на русском нет?

Первые три части из четырех на русском есть:

Папирус. Туториал 1. Привет, мир!

Папирус. Туториал 2. Переменные и условия

Папирус. Туториал 3. Введение в свойства и функции


Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/


#690 Ссылка на это сообщение Кайо

Кайо
  • Новенький
  • 8 сообщений

Отправлено

Да вот хз.

Возможно, что глобалы нельзя "на лету" назначать. Только с проперти. Но тут я не уверен.

В скрипте квеста у тебя оно у тебя в любом случае как проперти должно быть прописано, и функция тоже там лежит, и оттуда работает.

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

Ну и еще, есть команда Mod. Работает проще, чем связка Get\Set.

Увы, похоже, гиблое это дело. Что компилируется, то не работает, на что есть надежда, что заработает как-то иначе - не компилируется. Mod компилируется в том числе в строке диалоговых скриптов, но тоже не работает. Кайо пробовала переименовывать, править скрипт вручную, уже скомпилированный (почему-то не добавляет проперти, кстати, пишет, уже есть такая, хотя прям как проперти - объявления в скрипте нет, и в списке свойств тоже отсутствует), пробовала добавлять свойство в список через интерфейс (черти-что, выбираю тип глобальной переменной - все равно запрашивает конкретное значение, я не понимаю, оно же из глобальных должно брать?). Пробовала всовывать в функцию прямо в этом скрипте (из другого так и не поняла, как вызывать) и сразу следом её вызвать, тоже говорит, что не существует, пробовала тот же финт повторить не в скрипте, а в диаложном окошке для фрагмента - делает вид, что не видит endFunction, напишите, говорит, а оно вот оно, написано. Такая уже каша в голове, не могу полностью вспомнить, что уже пробовала и в каких именно окнах... Дебаг-уведомления и прочее я в скрипт вообще не представляю как добавить, тупо проверяю значение переменной в консоли, и всё. Наверное, придется отказаться от всей этой затеи. Мой уровень в скриптинге откровенно нулевой, а попытки в этом разобраться терпят фиаско. Признаться, я вообще взялась за эту штуку лишь потому что наивно полагала, что конкретно этот механизм должен быть максимально прост, это же, мол, просто переменная. Ага... как же... XD

Спасибо вам за участие, мне неловко лишь, что вы зря на меня тратили время...



#691 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

Спасибо, но когда я скачиваю, антивирус ругается. Впрочем я разобрался и без этого. Но у меня теперь новый вопрос: как правильно поставить функцию SetAlpha, чтобы NPC медленно исчезал? А то в руководстве непонятно и как я не пробовал, скрипт не компилируется. Пишут:

SetAlpha is not a function or does not exist

 

. Очень прошу ответить.


Сообщение отредактировал Herbert d'Godzor: 08 февраля 2021 - 21:22


#692 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Очень прошу ответить.

https://www.creation...etAlpha_-_Actor

В синтаксисе где-то ошибаешься, скорее всего.

Пример правильно написания с сылки выше:

Ghost.SetAlpha(0.9, true)


#693 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

 

https://www.creation...etAlpha_-_Actor

В синтаксисе где-то ошибаешься, скорее всего.

Пример правильно написания с сылки выше:

Ghost.SetAlpha(0.9, true)

ХЗ, СК все равно выдает: 

SetAlpha is not a function or does not exist

Хотя я скопировал прямо отсюда.


Сообщение отредактировал Herbert d'Godzor: 09 февраля 2021 - 10:45


#694 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Хотя я скопировал прямо отсюда.

"Просто скопировать" - мало.

Нужно еще понимать, как она применяется.

Вот скажет этот Ghost из примера выше - он у тебя где-нибудь определен?



#695 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

"Просто скопировать" - мало.

Нужно еще понимать, как она применяется.

Вот скажет этот Ghost из примера выше - он у тебя где-нибудь определен?

У меня вот так: 

self.SetAlpha(0.1)

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


Сообщение отредактировал Herbert d'Godzor: 09 февраля 2021 - 12:54


#696 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

У меня вот так: 

Если на маг.эффекте это висит - попробуй с ивента взять akTarget вместо self.

Ну или указать, что self тут - actor, а не что-то еще.

Ибо вроде как оно только на actor работает, на просто референсы не прокатит.



#697 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

Я тут поспрашивал на другом форуме и выяснилось, что SetAlpha  это вообще скрипт из SKSE. А мне бы очень не хотелось бы использовать его в своем моде. Я сделал призываемое без привязки к игроку существо которое не следует за ним, а охраняет территорию призыва. Даже удалось сделать чтобы оно исчезало после смерти. Но оно исчезает очень некрасиво - просто падает и труп мгновенно исчезает. А все "классические" призванные существа исчезают хоть и быстро, но постепенно. Вот я и хочу узнать - можно ли сделать это без SKSE? Ведь в оригинальной игре и Dragonborn  это как-то сделали.



#698 Ссылка на это сообщение IgorLutiy

IgorLutiy
  • Выбраковщик
  • 1 107 сообщений
  •    

Отправлено

Спасибо, но когда я скачиваю, антивирус ругается.

Выкиньте антивирус. Без шуток. Там архив с текстовым файлом

 

 

Я тут поспрашивал на другом форуме и выяснилось, что SetAlpha  это вообще скрипт из SKSE

Вас обманули. Из SKSE другая функция с аналогичным названием SetAlpha - ColorComponent


Мир друзьям - смерть врагам!

Мой новый сайт-блог: https://igorlutiy.pp.ua - как некое подведение итогов моей жизни в интернете

Мой профиль на Самиздате: http://samlib.ru/l/ljutyj_i/


#699 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Вот я и хочу узнать - можно ли сделать это без SKSE? Ведь в оригинальной игре и Dragonborn  это как-то сделали.

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

Зачем изобретать велосипед?

 

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

 

И да, как выше заметили - функция ванильная. Используется в скриптах призраков, в маг. эффектах зелья призрачного вида, где-то еще...

В СКСЕ другая.



#700 Ссылка на это сообщение Herbert d'Godzor

Herbert d'Godzor
  • Новенький
  • 16 сообщений

Отправлено

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

Зачем изобретать велосипед?

 

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

 

И да, как выше заметили - функция ванильная. Используется в скриптах призраков, в маг. эффектах зелья призрачного вида, где-то еще...

В СКСЕ другая.

Как я уже говорил - когда я ставлю SetAlpha, скрипт не компилируется.



#701 Ссылка на это сообщение Azazellz

Azazellz
  • Знаменитый оратор
  • 2 055 сообщений
  •    

Отправлено

Как я уже говорил - когда я ставлю SetAlpha, скрипт не компилируется.

Значит, что-то не так ставишь.

Скрипт целиком давай.







Темы с аналогичным тегами papyrus, help, скрипты, вопросы

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых