1)Как сделать, чтобы когда ГГ одевал шлем, драугры перестовали атаковать его и начнали его защищать?
2)Как сделать, чтобы когда ГГ одевал шлем, у него пропадала вся магия и помальньку убывал запас сил?
а если шлем одевает кто-нибудь другой, то он умирает? И кстати со 2 вопросом я делал так, создал новое зачарование с высасованием магии и запаса сил и повешал его на шлем, в принципе получилось то, что нужно, но с 1 (большим для меня) минусом на игроке синие свечение и искры, и поэтому можно создать собственный Magic Effect поглощающий всю магию, и хотябы 1 единицу запаса сил?
Изменение репутации для пользователя Иsкатель
ИsкательOffline
Сообщение №3
| Тема: Вопросы по скриптам Papyrus
написано: 6 марта 2013, 19:10
| Отредактировано: Иsкатель - 6 марта 2013, 19:11
Event OnEffectStart (Actor akTarget, Actor akCaster) if akCaster == Game.GetPlayer() int Mag = Game.GetPlayer().GetAV("Magicka") int Stam = Game.GetPlayer().GetAV("Stamina") akCaster.SetAV("Magicka",Mag / 2) akCaster.SetAV("Stamina",Stam / 2) endif endEvent
Event OnEffectFinish (Actor akTarget, Actor akCaster) if akCaster == Game.GetPlayer() int Mag = Game.GetPlayer().GetAV("Magicka") int Stam = Game.GetPlayer().GetAV("Stamina") akCaster.SetAV("Magicka",Mag * 2) akCaster.SetAV("Stamina",Stam * 2) endif endEvent
Выдает ошибку при компиляции, к сожилению я закрыл кит, и пошел спать=(, и не запомнил точно какая ошибка, помню, что он связана с этими переменными Float Mag, Float Stam. Может у кого-нибудь было что-то подобное, скажите, что делать?
Возможно ли в Skyrim'е сделать так, чтобы при экипировке шлема(условное id HelmLordDraugr) Главным Героем(тобиш Player), все драугры переставали атаковать его и начинали сражаться на его стороне, а если он снимает шлем, то наоборот, драугры начинают его атаковать?
Тут можно взять готовый скрипт из игры) Есть такой эффект "Глас небесный"(этот эфф дается за прочтение всех табличек по пути на высокий хродгар и животные не атакуют игрока.) посмотри там скрипт и измени Property с фракции "Animals" на Graughr или Undead точно не помню, теперь копируешь эффект магический и выставляеш то как тебе я написал выше и назначаешь этот эффект зачарованию а зачарование-шлему. Все должно работать) Надеюсь обьяснил подробно хотя и запутанно как-то...
Можно сказать получилось, НО есть один ОЧЕНЬ большой недостаток, драугры не атакуют Драконих жрецов, пауков, скелетов...
Добавлено (04.05.2013, 00:31) --------------------------------------------- Как это можно исправить?
Koxae, я знаю что дело в фракциях, но если я удалю во фракция дружественные фракции, то в игре будет бардак, Драугры будут атаковать Драконих жрецов, скелетов даже тогда когда на ГГ не одет шлем=( Есть еще какие-нибудь идеи?
alexwar, не подскажите как убрать enb на время работы в CK, а топом вернуть?
Добавлено (10.05.2013, 19:08) --------------------------------------------- Как сделать, чтобы после того как npc закончит диалог, экран потемнел, прошло 2 часа(игровых) и экран светлел? Знаю что FadeIn затемняет экран, а FadeOut осветляет.
alexwar, ссылку не смог разместить из-за того, что "Сообщение содержит запрещенный URL", но вот его название "ENBSeries 0.092 Patch 5", посмотри в инете. Переименновал файлы, запускаю CK, надписи, которые обычно появляются если enb включен, не появились, значит он выключился, открываю Preview Window, но оно все ровно сжато!=(
Как сделать, чтобы после того, как заканчивается диалог, экран темнел(FadeIn), к игровому времени + 2 часа(например до того как диалог был активирован было время в игре 13.00, а после 15.00), через 5 секунд экран светлел(FadeOut)?
Добавлено (11.05.2013, 09:09) --------------------------------------------- Пытаюсь сделать так, чтобы после окончания диалога добавлялся AI пакет. Сделал 2 алиаса DGFAliasNPCSerana и DGFAliasPackageSerana. Назначил Properties(DGFNPCSerana, DGFPackageSerana присвоил им зачения), но возникают вот такие ошибки:
I:\Games\The Elder Scrolls 5.Skyrim.v 1.7\Data\Scripts\Source\temp\AaaDGF_TIF__0300CE09.psc(12,17): ForceRefTo is not a function or does not exist I:\Games\The Elder Scrolls 5.Skyrim.v 1.7\Data\Scripts\Source\temp\AaaDGF_TIF__0300CE09.psc(13,13): EvaluatePackage is not a function or does not exist
вот фрагмент кода:
Код
;BEGIN FRAGMENT Fragment_3 Function Fragment_3(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE DGFPackageSerana.ForceRefTo(DGFNPCSerana) DGFNPCSerana.EvaluatePackage() ;END CODE EndFunction ;END FRAGMENT
Пытаюсь сделать так, чтобы после окончания диалога добавлялся AI пакет. Сделал 2 алиаса DGFAliasNPCSerana и DGFAliasPackageSerana. Назначил Properties(DGFNPCSerana, DGFPackageSerana присвоил им зачения), но возникают вот такие ошибки
AleksTirex, спасибо большое! Поменял property DGFPackageSerana с Alias на ReferenceAlias, DGFNPCSerana это тоже был property alias, но его я поменял, на actor, выбрал актера и все нормально сработало!
Добавлено (11.05.2013, 18:54) --------------------------------------------- Как сделать, чтобы если стадия квеста меньше 10, то актеры скрыты(disable), а если стадия больше или равна 10, то они появились(enable)?
Еще, как сделать, чтобы если DGFNPCSerana(это актер, а не алиас) заходит в зону триггера, то у нее прекращается AI пакет(Сообщение №208), и ее перемещает к определенному месту(например к DGFMarkerMoveSerana(это XMarkerHeading))?
Открой ImagespaseModifier, задублируй VC01BlackOutImod, у дубликата поменяй ID, открой его. В окошке Duration измени значение 12.000 на 5.000, ОК. Сделай скрипт:
ImageSpaceModifier Property IntroFX Auto ; назначается твой ImagespaseModifier
вот хочу узнать кое что, вот манекен это же как живой персонаж который "заморожен" в определенной позиции скриптами, я например хочу взять обычного скелета и так же заморозить его, просто для красоты не в целях манекена, можно ли такое сделать?
Да.
Добавлено (12.05.2013, 22:12) --------------------------------------------- Попробуй так: Добавь своему скелету вот такой скрипт:
Код
Scriptname AaaSkeletonStatueSCRIPT extends Actor EVENT OnCellLoad() self.EnableAI(FALSE) EndEVENT
При каком ответе что должно происходить? (при каждом ответе) Поясни, тогда быстро всё поправим.
При ответе "Куда ты, туда и я" срабатовает скрипт:
Код
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;NEXT FRAGMENT INDEX 2 Scriptname AaaDGF_TIF__03002F9B Extends TopicInfo Hidden
Quest PROPERTY DGFReturnSoulsCairn AUTO
;BEGIN FRAGMENT Fragment_1 Function Fragment_1(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE (GetOwningQuest() as DLC1_NPCMentalModelScript).TalkedPostQuest = true ; Чтобы NPC больше не говорил этот диалог DGFReturnSoulsCairn.SetStage(5) ; Устанавливаю стадию квеста 5, потому что имменно в этой стадии появляются(enable) актеры ;END CODE EndFunction ;END FRAGMENT
;BEGIN FRAGMENT Fragment_0 Function Fragment_0(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE DGFReturnSoulsCairn.SetObjectiveDisplayed(10) DGFReturnSoulsCairn.SetStage(10) ; ;END CODE EndFunction ;END FRAGMENT
;END FRAGMENT CODE - Do not edit anything between this and the begin comment
При ответе "Несейчас" срабатовает скрипт:
Код
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;NEXT FRAGMENT INDEX 1 Scriptname AaaDGF_TIF__03002F9E Extends TopicInfo Hidden
Quest Property DGFReturnSoulsCairn Auto
;BEGIN FRAGMENT Fragment_0 Function Fragment_0(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE (GetOwningQuest() as DLC1_NPCMentalModelScript).TalkedPostQuest = true ; Чтобы NPC больше не говорил этот диалог (GetOwningQuest() as DLC1_NPCMentalModelScript).Dismiss() ; "Отпускает" компаньона DGFReturnSoulsCairn.SetStage(5) ; Устанавливаю стадию квеста 5, потому что имменно в этой стадии появляются(enable) актеры ;END CODE EndFunction ;END FRAGMENT
;END FRAGMENT CODE - Do not edit anything between this and the begin comment
При ответе "у меня есть дела и поважней" срабатовает скрипт:
Код
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;NEXT FRAGMENT INDEX 5 Scriptname AaaDGF_TIF__0300CE09 Extends TopicInfo Hidden
Quest Property DGFReturnSoulsCairn Auto ReferenceAlias Property DGFPackageSerana Auto Actor Property DGFNPCSerana Auto
;BEGIN FRAGMENT Fragment_0 Function Fragment_0(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE (GetOwningQuest() as DLC1_NPCMentalModelScript).TalkedPostQuest = true ; Чтобы NPC больше не говорил этот диалог (GetOwningQuest() as DLC1_NPCMentalModelScript).Dismiss() ; "Отпускает" компаньона DGFReturnSoulsCairn.SetStage(5) ; Устанавливаю стадию квеста 5, потому что имменно в этой стадии появляются(enable) актеры ;END CODE EndFunction ;END FRAGMENT
;BEGIN FRAGMENT Fragment_4 Function Fragment_4(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor ;BEGIN CODE DGFPackageSerana.ForceRefTo(DGFNPCSerana) DGFNPCSerana.EvaluatePackage() ;END CODE EndFunction ;END FRAGMENT
;END FRAGMENT CODE - Do not edit anything between this and the begin comment
AleksTirex, добавил в топик. Теперь все появляются. Спасибо!!!=)
Есть 4 дракона, как сделать, чтобы 1 атаковал DGFNPCSerana, только, чтобы не огнем и не холодом, а просто кусал, после 2-3 укусов, DGFNPCSerana падала и ползала(как ползают NPC когда у них мало health), пока ГГ не убьет всех драконов и не заговорит с ней и кстати когда она ползает, дракон который ее атаковал, должен перестать ее атаковать и начать атаковать ГГ
Изменение репутации для пользователя Иsкатель
ИsкательOffline
Сообщение №23
| Тема: Вопросы по скриптам Papyrus
написано: 18 мая 2013, 07:46
| Отредактировано: Иsкатель - 18 мая 2013, 10:02
1)Как сделать, чтобы когда ГГ одевает шлем(ID шлема LOTDHelmet), все драугры Скайрима перестают его атаковать, нападать и начинают сражатся на стороне ГГ, а если ГГ снимает шлем, то драугры возврощаются к своему прежнему состоянию(то есть ГГ для них снова враг)? Пытался сделать через добавление фракции, по сути получалось что-то подобное, но с ОЧЕНЬ большым минусом, а именно, когда на ГГ одет шлем, и он сражается с драконьями жрецами или скелетами, то драугры не атакуют их. Дело в том, что в фракции драугров драконии жрецы и скелеты установлены как ally, friend. Я думаю вносить изменения во фракцию драугров не стоит так, как это нарушит баланс игры. Может быть есть другой способ или можно усовершенствовать способ которым я пытался?
**********************************
2)Как сделать свою GlobalValue(или GlobalVariable)?
**********************************
3)AleksTirex, хоты Вы и писали, что Цитата AleksTirex { если с этим будут сложности, то первые две-три строки можно не писать } ну мне все ровно интересно. Property LandingMarker - какой static предмет нужно назначить(предмета LandingMarker в static'ах нету)?
**********************************
4) У меня есть 4 костяных дракона и 4 дракона призрака. Как сделать, чтобы 4 костяных дракона, изначально были мертвые? Как сделать, чтобы когда ГГ зайдет в зону триггера, прелетали 4 дракона призрака и каждый из них садился на(или в) одного из 4 костяных драконов, после этого драконы призраки исчезали и оживали костяные драконы. После того как они ожили происходило вот это:
Цитата Иsкатель
Есть 4 дракона, как сделать, чтобы 1 атаковал DGFNPCSerana, только, чтобы не огнем и не холодом, а просто кусал, после 2-3 укусов, DGFNPCSerana падала и ползала(как ползают NPC когда у них мало health), пока ГГ не убьет всех драконов и не заговорит с ней и кстати когда она ползает, дракон который ее атаковал, должен перестать ее атаковать и начать атаковать ГГ
Только все-таки я решил сделать чтобы 2 дракона атаковали Серану и не обязательно кусали, еще после того, как ГГ поговорил с Сераной, она должна не бегать, а только ходить, пока не наступит определенная стадия квеста, как наступит(определенная стадия квеста), она снова должна "уметь" бегать. Как все это сделать?
4) У меня есть 4 костяных дракона и 4 дракона призрака. Как сделать, чтобы 4 костяных дракона, изначально были мертвые? Как сделать, чтобы когда ГГ зайдет в зону триггера, прелетали 4 дракона призрака и каждый из них садился на(или в) одного из 4 костяных драконов, после этого драконы призраки исчезали и оживали костяные драконы. После того как они ожили происходило вот это:
Есть 4 дракона, как сделать, чтобы 1 атаковал DGFNPCSerana, только, чтобы не огнем и не холодом, а просто кусал, после 2-3 укусов, DGFNPCSerana падала и ползала(как ползают NPC когда у них мало health), пока ГГ не убьет всех драконов и не заговорит с ней и кстати когда она ползает, дракон который ее атаковал, должен перестать ее атаковать и начать атаковать ГГ
Только все-таки я решил сделать чтобы 2 дракона атаковали Серану и не обязательно кусали, еще после того, как ГГ поговорил с Сераной, она должна не бегать, а только ходить, пока не наступит определенная стадия квеста, как наступит(определенная стадия квеста), она снова должна "уметь" бегать. Как все это сделать?
Во-первых, я сделал чтобы дракон не прелитал, а просто подходил(потому что я не знаю как сделать чтобы он прелитал). Сделал я это так: создал квест, в квесте создал алиас с пакетом travel в пакете указал Near linked(вроде так пишется), сделал триггер, на триггер повесил скрипт (Actor Property DragonSG Auto ReferenceAlias Property Alias_DragonSG Auto
Event OnTriggerEnter(ObjectRererence akActivator) if akActivator == Game.GetPlayer() Alias_DragonSG.ForceRefTo(DragonSG) endif endEvent) И у дракона призрака(DragonSG) в Linked Ref указал костяного дракона.
Во-вторых, костяных драконов я убиваю не скриптом, а ставлю галочку "Start Dead"
Во-третьих, AleksTirex, в вашем скрипте я убрал "Actor Property Dragon Auto" и изменил это "Dragon.Resurrect()" на это " Actor LinkActor = (GetLinkedRef() as Actor) LinkActor.Resurrect() "
В итоге драконы призраки не исчезают, а костяные не оживают. Почему?