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


Фотография

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

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

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

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

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


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

Отправлено

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

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

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

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



 




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

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

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

Отправлено

Scriptname _SGDyingScript extends ObjectReference 
{Plays an fx when something is unsummoned}

EffectShader Property AtronachUnsummonDeathFXS Auto

EVENT onDying(actor myKiller)
   AtronachUnsummonDeathFXS.Play(self)

   utility.wait(1.1)

   self.Disable()
   self.Delete()

ENDEVENT

 

Вот скрипт. Куда здесь поставить SetAlpha и как, чтобы, наконец, скомпилировалось?



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

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

Отправлено

Вот скрипт. Куда здесь поставить SetAlpha и как, чтобы, наконец, скомпилировалось?

Как я уже говорил, SetAlpha может быть применена только на актерах. Т.е. чтобы это заработало, сначала ты должен сказать скрипту, что self - это именно актер, а не что-то абстрактное.

Scriptname _SGDyingScript extends ObjectReference
{Plays an fx when something is unsummoned}
EffectShader Property AtronachUnsummonDeathFXS Auto

EVENT onDying(actor myKiller)
   AtronachUnsummonDeathFXS.Play(self)
  
   actor akTarget = (self as form) as actor
   akTarget.SetAlpha(0.1, true)   

   utility.wait(1.1)   
   self.Disable()
   self.Delete()
ENDEVENT


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

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

Отправлено

Огромное спасибо. Помогло. Правда в игре разница почти незаметна, но все же. Спасибо!



#705 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено


Это делается шейдерами (EffectShader). А SetAlpha(), к слову, в Скайриме может принимать значения 0 или 1. Промежуточные значения округляются до 1.

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

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

Отправлено

А SetAlpha(), к слову, в Скайриме может принимать значения 0 или 1. Промежуточные значения округляются до 1.

Эээ. Нет.

Все призрачные эффекты работают через эту функцию.

В том числе и "Снадобье фантома", которое игроку альфу на 0.5 ставит, пока эффект зелья работает.



#707 Ссылка на это сообщение werr

werr
  • больной на всю голову

  • 1 733 сообщений
  •    

Отправлено

Эээ. Нет.

Все призрачные эффекты работают через эту функцию.

В том числе и "Снадобье фантома", которое игроку альфу на 0.5 ставит, пока эффект зелья работает.

Хмм, ок. Почему-то я был уверен.



#708 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Господа, вопрос возник, не могу найти, где взять ответ.
Функция GetNodePosition была встречена в одном скрипте, а если точнее  - строка выглядела так: 
float cposx = GetNodePositionX(Player,"NPC COM [COM ]",False)

Как я поняла, используется для вычисления расстояния от координаты игрока до, скажем так, земли, чтобы затем задать, с какими последствиями данный игрок шлёпается с высоты на эту самую землю.
Где можно подробнее почитать про эту функцию?
Мне вот нужно, чтобы не на Player, а на другом актёре -точнее, его лошади, - вычислялось данное расстояние. Потому что скрипт будет висеть именно на лошади-суммоне как Actor script.

Поэтому - будет ли применима функция не к игроку? Как изменится грамматика функции? Буду признательна за помощь.



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

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

Отправлено

Функция GetNodePosition была встречена в одном скрипте

Функция из SKSE и вроде устаревшая.


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

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

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


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

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

Отправлено

Не думаю я, что оно "расстояние до земли" в том скрипте вычисляло.

К "миру" эти скрипты отношения не имеют, там все целиком внутри скелета расчитывается.



#711 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Ясно. Значит, не там копаю. Спасибо.



#712 Ссылка на это сообщение Brannweig

Brannweig
  • "Мы наш, мы новый мир построим" (с)
  • 170 сообщений
  •    

Отправлено

Господа, нужна помощь.

Не могу правильно отследить событие OnPlayerCameraState. Компилятор ругается: extraneous input ',' expecting ID

Как правильно построить эту конструкцию? Буду весьма признательна за помощь.

 

 

Всё, спасибо, допёрла.


Сообщение отредактировал Brannweig: 03 марта 2021 - 14:20


#713 Ссылка на это сообщение GOLDEN_KINDER

GOLDEN_KINDER
  • Авантюрист
  • 155 сообщений
  •  

Отправлено

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

Проблема в том, что иногда после завершения внешности игра вылетает... В чем может быть моя ошибка?

Проблема была не в скрипте. Помог фикс
https://www.nexusmod...tab=description


Сообщение отредактировал GOLDEN KINDER: 27 марта 2021 - 12:32


#714 Ссылка на это сообщение ac97

ac97
  • Скиталец
  • 40 сообщений

Отправлено

Кто-нибудь пробовал SKSE API(Cpp) связывать с Qt Framework?

Хочу попробовать реализовать при нажатии кнопки/открытия книги и подобных событиях, загружать файл с сервера.



#715 Ссылка на это сообщение Rh4eg4n

Rh4eg4n
  • Скиталец
  • 33 сообщений

Отправлено

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

Допустим: происходит диалог -> нпс встает перед первым лезвием и ждет когда лезвие заедет в одну из сторон -> пробегает-> ждет так же у следующего лезвия и так пока не закончит.


Сообщение отредактировал Rh4eg4n: 25 мая 2021 - 07:44


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

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

Отправлено

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

Допустим: происходит диалог -> нпс встает перед первым лезвием и ждет когда лезвие заедет в одну из сторон -> пробегает-> ждет так же у следующего лезвия и так пока не закончит.

Ну, теоретически это как бы возможно.

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

Либо сделать целиком скриптовую уникальную ловушку.

Практически же... Сложнореализуемо это все.

Обыграй как-нибудь иначе - пусть НПС куда-нибудь залезет (тайный проход, еще что-нибудь), и вылезет уже с другой стороны от ловушек, например.



#717 Ссылка на это сообщение Фарсик

Фарсик
  • Новенький
  • 2 сообщений

Отправлено

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

https://drive.google...iew?usp=sharing



#718 Ссылка на это сообщение angel-deff

angel-deff
  • Авантюрист
  • 173 сообщений
  •  

Отправлено

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

Я тут написал скрипт по моим знаниям, хочу узнать будет ли такой скрипт работать впринципе? И если да как его зацыклить на зацыкливание каждые две секунды?

Ну или как его превратить в рабочий вариант?

 

Scriptnime Crime_gold

player. setcrimegold 0

End:

Endif;



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

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

Отправлено

хочу узнать будет ли такой скрипт работать впринципе?

 

Нет. Не будет.

Попробуй использовать это.

 

Ну и есть же моды. На капюшон Ноктюрнал только две штуки из мне известных.



#720 Ссылка на это сообщение angel-deff

angel-deff
  • Авантюрист
  • 173 сообщений
  •  

Отправлено

Нет. Не будет.

Попробуй использовать это.

 

Ну и есть же моды. На капюшон Ноктюрнал только две штуки из мне известных.

Проблема с модами (Мне известными, капюшон Ноктюрнал там и квест есть и штраф вроде который мне не нужен. А инструменты вора просто не работают в вороньей скале. + там скрипт привязан непонятным мне образом.



#721 Ссылка на это сообщение angel-deff

angel-deff
  • Авантюрист
  • 173 сообщений
  •  

Отправлено

Нет. Не будет.

Попробуй использовать это.

 

Ну и есть же моды. На капюшон Ноктюрнал только две штуки из мне известных.

А так? Надеюсь скрипт хоть от части правельно описан

 

scriptname Crime_gold
Function SetPlayerReportCrime(bool abReportCrime = false) native global
End:
Game.SetPlayerReportCrime(false)
End:
Endif;







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

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

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