Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

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 и как, чтобы, наконец, скомпилировалось?

Опубликовано
10.02.2021 09:26:54, Herbert d'Godzor сказал(-а):

Вот скрипт. Куда здесь поставить 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
Опубликовано
09.02.2021 16:35:00, Herbert d'Godzor сказал(-а):


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

Эээ. Нет.

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

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

Опубликовано
10.02.2021 21:52:21, Azazellz сказал(-а):

Эээ. Нет.

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

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

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

  • 2 недели спустя...
Опубликовано

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

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

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

Опубликовано
25.02.2021 15:34:20, Brannweig сказал(-а):
Функция GetNodePosition была встречена в одном скрипте

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

  • Нравится 1

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

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

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

Опубликовано

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

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

  • Нравится 1
Опубликовано (изменено)

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

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

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

 

Спойлер
Scriptname WFHorseSumScr extends Actor
import utility
Int Property oldState Auto

Int Property newState Auto

Event On3dLoad()
RegisterForCameraState();Register for camera states
EndEvent

Event OnPlayerCameraState(oldState, newState)
if newState == 10
Debug.Trace("The Camera is in Horse mode.")
SetIniBool("bDisablePlayerCollision:Havok",true) ; disable collision
EndIf
RegisterForUpdate()
EndEvent


 

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

Изменено пользователем Brannweig
  • 4 недели спустя...
Опубликовано (изменено)

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

Спойлер
Scriptname GK_Mirror extends ObjectReference 

Message Property Message_Mirror Auto
ObjectReference Property PlayerRef Auto
Sound Property QSTDA10ItemLevitate Auto
SPELL Property MirrorSpell Auto
Int Property IntegerHalt Auto


Event OnActivate(ObjectReference akActionRef)
If IntegerHalt == 0
  IntegerHalt + 1 
  Int iButton = Message_Mirror.Show()
   If iButton == 0

   ElseIf iButton == 1 
    Game.GetPlayer().UnequipItemSlot(30)
  Utility.Wait(0.5)
    Game.ShowLimitedRaceMenu()
    QSTDA10ItemLevitate.Play(PlayerREF)
    MirrorSpell.Cast(PlayerREF)
   EndIf
  Utility.Wait(10)
  IntegerHalt - 1
EndIf
EndEvent

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

Проблема была не в скрипте. Помог фикс
https://www.nexusmods.com/skyrim/mods/33526?tab=description

Изменено пользователем GOLDEN KINDER
  • 3 недели спустя...
Опубликовано

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

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

  • 1 месяц спустя...
Опубликовано (изменено)

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

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

Изменено пользователем Rh4eg4n
Опубликовано
25.05.2021 06:38:00, Rh4eg4n сказал(-а):

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

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

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

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

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

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

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

  • 3 недели спустя...
Опубликовано

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

https://drive.google.com/file/d/1DWztgpViyuuWNirA44u0LpOlUtY0zxsA/view?usp=sharing

  • 4 недели спустя...
Опубликовано

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

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

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

 

Scriptnime Crime_gold

player. setcrimegold 0

End:

Endif;

Опубликовано
04.07.2021 04:02:31, angel-deff сказал(-а):
хочу узнать будет ли такой скрипт работать впринципе?

 

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

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

 

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

Опубликовано
04.07.2021 09:22:38, Azazellz сказал(-а):

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

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

 

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

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

Опубликовано
04.07.2021 09:22:38, Azazellz сказал(-а):

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

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

 

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

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

 

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

Опубликовано
04.07.2021 10:03:12, angel-deff сказал(-а):
А так? Надеюсь скрипт хоть от части правельно описан

И так - нет.

Дать ссылку на туториал по скриптингу (на английском)?

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

 

Но "от части" скрипт написан правильно, да. Имя скрипта ты не забыл =)

Все остальное вот только - плохо.

Опубликовано
04.07.2021 10:12:59, Azazellz сказал(-а):

И так - нет.

Дать ссылку на туториал по скриптингу (на английском)?

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

 

Но "от части" скрипт написан правильно, да. Имя скрипта ты не забыл =)

Все остальное вот только - плохо.

Буду благодарен.

и да нулевое. Надеялся хоть end endif верно клацнул

Опубликовано
04.07.2021 10:12:59, Azazellz сказал(-а):

И так - нет.

Дать ссылку на туториал по скриптингу (на английском)?

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

 

Но "от части" скрипт написан правильно, да. Имя скрипта ты не забыл =)

Все остальное вот только - плохо.

Хотя я просто скопипастил синтаксис вставив межу названием и Endif=) в надежде что прокатит.

Опубликовано
04.07.2021 10:18:47, angel-deff сказал(-а):

Буду благодарен.

и да нулевое. Надеялся хоть end endif верно клацнул

Тут.

Читаешь, делаешь.

Просто прочитать, если знания нулевые - недостаточно.

Без практики тут никуда.

 

Еще две полезные ссылки:

Объекты

Ивенты

 

04.07.2021 10:27:05, angel-deff сказал(-а):
Хотя я просто скопипастил синтаксис вставив межу названием и Endif=) в надежде что прокатит.

Нет, не прокатит =)

Не для того оно нужно.

Опубликовано

Автор Sneak Tools любезно разрешил пользоваться его скриптом из его маски для сторонних модов, однако она не везде действует

Можно куда-то вставить эту строчку Function SetPlayerReportCrime(bool abReportCrime = true) native global чтоб скрипт на столсхейме работал?

Это тот самый скрипт который делает игрока невидимым в скайриме

Scriptname SneakToolsEquipMaskMagEffScript extends activemagiceffect  

AASneakToolsMainQuestScript Property questScript auto
Spell Property SneakToolsCheckDetectionSpell auto
Spell Property SneakToolsWearingMaskAbility auto
Actor Property playerRef auto

Event OnEffectStart(Actor akTarget, Actor akCaster)
If(akTarget == playerRef)
		playerRef.AddSpell(SneakToolsWearingMaskAbility, false)
		If(questScript.playerBusted)
			questScript.SneakToolsEquipFaceMaskFunction()
			return
		EndIf
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		If(questScript.detected)
			questScript.SneakToolsEquipFaceMaskFunction()
			return
		EndIf
		Utility.Wait(1)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		If(questScript.detected)
			questScript.SneakToolsEquipFaceMaskFunction()
			return
		EndIf
		Utility.Wait(1)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		If(questScript.detected)
			questScript.SneakToolsEquipFaceMaskFunction()
			return
		EndIf
		Utility.Wait(1)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		questScript.SneakToolsEquipFaceMaskFunction()
EndIf
EndEvent

Event OnEffectFinish(Actor akTarget, Actor akCaster)
If(akTarget == playerRef)
		playerRef.RemoveSpell(SneakToolsWearingMaskAbility)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		If(questScript.detected)
			questScript.SneakToolsUnequipFaceMaskFunction()
			return
		EndIf
		Utility.Wait(1)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		If(questScript.detected)
			questScript.SneakToolsUnequipFaceMaskFunction()
			return
		EndIf
		Utility.Wait(1)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		If(questScript.detected)
			questScript.SneakToolsUnequipFaceMaskFunction()
			return
		EndIf
		Utility.Wait(1)
		SneakToolsCheckDetectionSpell.Cast(playerRef, playerRef)
		questScript.SneakToolsUnequipFaceMaskFunction()
EndIf
EndEvent

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...