Форум » TES V: Skyrim » Библиотека модмейкера » Вопросы по Creation Kit. Старая тема (Тут вы можете задать вопросы по редактору Скайрима)

Вопросы по Creation Kit. Старая тема
Морфин  Сообщение №1 написано: 7 февраля 2012, 21:38

Тема по работе с редактором Skyrim Creation Kit.

----------
Полезная информация:

Видео уроки:


Предупреждаю! За оффтоп и флуд буду наказывать беспощадно!

Artem13  Offline  Сообщение №5761 написано: 3 октября 2013, 15:15


Mercenaries. Со смертью на ты.


StanislavD
player.AddItem(EditorID_нужной_вещи, 1)

Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
StanislavD  Offline  Сообщение №5762 написано: 3 октября 2013, 15:22



123
выдаёт:

Starting 1 compile threads for 1 files...
Compiling "QF_aaaProhodVTurmu_010D748A"...
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_aaaProhodVTurmu_010D748A.psc(61,14): script property aaapassinprison already defined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_aaaProhodVTurmu_010D748A.psc(61,14): script variable ::aaapassinprison_var already defined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_aaaProhodVTurmu_010D748A.psc(61,14): script property aaapassinprison already has a get function defined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_aaaProhodVTurmu_010D748A.psc(61,14): script property aaapassinprison already has a set function defined
No output generated for QF_aaaProhodVTurmu_010D748A, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on QF_aaaProhodVTurmu_010D748A

AleksTirex  Offline  Сообщение №5763 написано: 3 октября 2013, 15:29


Архимаг


371
Цитата Artem13

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


StanislavD  Offline  Сообщение №5764 написано: 3 октября 2013, 15:33



123
читаю алекс.. только если посмотреть по выше то будет видно что некоторые вопросы повторяются.. а видео практически с вики и сделано...

AleksTirex  Offline  Сообщение №5765 написано: 3 октября 2013, 15:45


Архимаг


371
Цитата StanislavD

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



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

StanislavD  Offline  Сообщение №5766 написано: 3 октября 2013, 15:47



123
вот я пытаюсь отработать шаблон... и попадаю в ступор.. я уже писал что нарабатываю базу.. так по мелочи...

mayor  Offline  Сообщение №5767 написано: 3 октября 2013, 16:01



194
что то я нифига не пойму.привязываю нпц к маркеру на вкладке linked ref и никакого эффекта..пакет у нпц верный,сетка есть,даже в ownership маркера указал нпц..ходит вокруг да около и не хочет с маркером связываться..было у кого подобное?

Добавлено (03.10.2013, 20:01)
---------------------------------------------
раньше так же привязывал и все норм


StanislavD  Offline  Сообщение №5768 написано: 4 октября 2013, 05:29 | Отредактировано: StanislavD - 3 октября 2013, 18:37



123
что сейчас у меня на квесте:

вкладка Quest Stages:
index     Log Entry            kmyQuest
------------------------------------------------------
10        найти нпс2          SetObjectiveDisplayed(10)
------------------------------------------------------
20        получить вещь    SetObjectiveCompleted(10)
SetObjectiveDisplayed(20)
------------------------------------------------------
30        вещь получена    SetObjectiveCompleted(20)
надо отдать нпс1 SetObjectiveDisplayed(30)
-----------------------------------------------------
40        конец                   SetObjectiveCompleted(30)

вкладка Quest Objectives:

index   Display Text   Target Ref
10      найти нпс2        нпс2
20      получить вещь     вещь
30      отдать вещь       нпс1

вкладка Quest Aliases:

Name     type    Fill
нпс1      ref     uniqeActors
нпс2      ref     uniqeActors
вещь      ref     Created

Добавлено (03.10.2013, 20:13)
---------------------------------------------
топики

топик №1
getStage - quest  < 10
GetIsId  - нпс1  == 1

топик №2 "нет"
GetIsId  - нпс1  == 1

топик №3 "да"
GetIsId  - нпс1  == 1

скрипт:
GetOwningQuest().SetObjectiveDisplayed(10)
GetOwningQuest().SetStage(10)

топик №3 (из тп №2)
getStage - quest == 10
GetIsId  - нпс2  == 1

скрипт:
GetOwningQuest().SetObjectiveDisplayed(20)
GetOwningQuest().SetStage(20)

топик №4 (из тп№3 "финиш")
getStage - quest == 20
GetIsId  - нпс1  == 1

скрипт:
GetOwningQuest().SetObjectiveDisplayed(30)

Добавлено (03.10.2013, 20:14)
---------------------------------------------
прошу разъяснить по порядку куда и что вставлять? а то у меня уже дым из ушей валит

Добавлено (03.10.2013, 21:36)
---------------------------------------------
прикольно... но в ветреном пике (золотой коготь) я абсолютно не нашёл места с рычагом...  хотя в игре оно есть....

Добавлено (04.10.2013, 09:29)
---------------------------------------------

Цитата mayor

что то я нифига не пойму.привязываю нпц к маркеру на вкладке linked ref и никакого эффекта..пакет у нпц верный,сетка есть,даже в ownership маркера указал нпц..ходит вокруг да около и не хочет с маркером связываться..было у кого подобное?


сетку путей переделай.. так чтобы треугольники в нужную сторону смотрели.. было такое.. вместо того чтоб на прямую идти кругами ходили нпс

mayor  Offline  Сообщение №5769 написано: 4 октября 2013, 05:44



194
Цитата StanislavD

сетку путей переделай.. так чтобы треугольники в нужную сторону смотрели.. было такое.. вместо того чтоб на прямую идти кругами ходили нпс

в смысле в нужную сторону?

StanislavD  Offline  Сообщение №5770 написано: 4 октября 2013, 06:08 | Отредактировано: StanislavD - 4 октября 2013, 06:08



123
у меня было так:
пути  идут по кругу с одной точки, т.е. один нпс идёт по часовой, другой против часовой стрелки, так первый нпс шёл как надо, а второй доходил до определённой точки разворачивался обходил по кругу до этой точки, опять разворачивался и продолжал путь уже как надо. присмотрелся к сетке путей и в одном месте у меня сходились 4 треугольника, а не три... (т.е. так /|\|, а не /|/|)...

mayor  Offline  Сообщение №5771 написано: 4 октября 2013, 06:12



194
StanislavD, а,спасибо,попробую

StanislavD  Offline  Сообщение №5772 написано: 4 октября 2013, 06:16 | Отредактировано: StanislavD - 4 октября 2013, 06:22



123
я нашел параметр в квесте GetAcnivationHeight, за что он отвечает?

mayor  Offline  Сообщение №5773 написано: 4 октября 2013, 06:24



194
Цитата StanislavD

Height

высота,возвышенность

StanislavD  Offline  Сообщение №5774 написано: 4 октября 2013, 06:27 | Отредактировано: StanislavD - 4 октября 2013, 06:28



123
уже нашёл, слиплась страница... просто что эта команда делает?... получить активацию высоты... а чего именно

mayor  Offline  Сообщение №5775 написано: 4 октября 2013, 06:58



194
StanislavD, незнаю,но может это тебе поможет http://tiarum.com/wiki/Skyrim_CK:Функции

Artem13  Offline  Сообщение №5776 написано: 4 октября 2013, 07:04


Mercenaries. Со смертью на ты.


Цитата StanislavD

получить активацию высоты

вообщето, скорее всего, Высоту Активации.

Да, мы бандиты и бродяги, как злословит молва,
Мы попадаем в передряги, помня эти слова.
Смотри вперед и не сдавайся ты на милость судьбе!
Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
AleksTirex  Offline  Сообщение №5777 написано: 4 октября 2013, 11:49


Архимаг


371
StanislavD,








Drag231193  Offline  Сообщение №5778 написано: 4 октября 2013, 12:48



2
хелп пипл) не меняется внешний вид нпс. скачал мод на компаньонов и изменил внешность первый раз получилось, решил еще раз поменять - в creatoin kid внешность изменена показывает а в самом скуриме нет... что не так?

StanislavD  Offline  Сообщение №5779 написано: 4 октября 2013, 13:11



123
Цитата AleksTirex

топик №3 (из тп №2) - это совсем не понятно, но если это связь топиков, то не правильно.

 из первого топика во второй и третий...

AleksTirex  Offline  Сообщение №5780 написано: 4 октября 2013, 13:16


Архимаг


371
Цитата StanislavD

из первого топика во второй и третий...



Не правильно. Там должно быть три самостоятельных оранжевых блока. Между ними связей быть не должно. В каждом блоке свои топики.

StanislavD  Offline  Сообщение №5781 написано: 4 октября 2013, 19:34 | Отредактировано: StanislavD - 4 октября 2013, 18:52



123
(надо сделать свойство AliasItem и назначить на него свой алиас вещи, а потом писать команды скрипта)

чтото у меня не выходит его задать(( из топика..

Добавлено (04.10.2013, 21:19)
---------------------------------------------
при попытки скомпилировать 2 последнии стадии он пишет:

Starting 1 compile threads for 1 files...
Compiling "QF_000ThePassageInPrison_010DF766"...
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(33,0): variable akSpeaker is undefined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(33,26): GetRef is not a function or does not exist
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(33,10): none is not a known user-defined type
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(43,34): GetRef is not a function or does not exist
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(43,54): variable akSpeaker is undefined
No output generated for QF_000ThePassageInPrison_010DF766, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on QF_000ThePassageInPrison_010DF766

Добавлено (04.10.2013, 23:11)
---------------------------------------------
а при таком варианте скрипта:

Scriptname QF_000ThePassageInPrison_010DF766 Extends Quest Hidden

;BEGIN ALIAS PROPERTY PassInPrison
;ALIAS PROPERTY TYPE ReferenceAlias
ReferenceAlias Property Alias_PassInPrison Auto
;END ALIAS PROPERTY

;BEGIN ALIAS PROPERTY ShefGuard
;ALIAS PROPERTY TYPE ReferenceAlias
ReferenceAlias Property Alias_ShefGuard Auto
;END ALIAS PROPERTY

;BEGIN ALIAS PROPERTY GuardPrison
;ALIAS PROPERTY TYPE ReferenceAlias
ReferenceAlias Property Alias_GuardPrison Auto
;END ALIAS PROPERTY

;BEGIN FRAGMENT Fragment_0
Function Fragment_0()
;BEGIN CODE
SetObjectiveDisplayed(10)
;END CODE
EndFunction
;END FRAGMENT

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
GetOwningQuest().SetStage(30)
;END CODE
EndFunction
;END FRAGMENT

;BEGIN FRAGMENT Fragment_0
Function Fragment_0(ObjectReference akSpeakerRef)
Actor akSpeaker = akSpeakerRef as Actor
;BEGIN CODE
GetOwningQuest().SetStage(40)
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

Alias Property Pass  Auto  

Alias Property Pass1  Auto

выдаёт следующее сообщение:

Starting 1 compile threads for 1 files...
Compiling "QF_000ThePassageInPrison_010DF766"...
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(29,0): script function fragment_0 already defined in the same state
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(38,0): script function fragment_0 already defined in the same state
No output generated for QF_000ThePassageInPrison_010DF766, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on QF_000ThePassageInPrison_010DF766

Добавлено (04.10.2013, 23:34)
---------------------------------------------
в общем не хочет он строчки вставлять! ругается... говорить ему якобы не с кем, и команду вторую он не понимэ!


AleksTirex  Offline  Сообщение №5782 написано: 4 октября 2013, 22:07


Архимаг


371
Цитата StanislavD

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



Так и я не понимаю.
Откуда в скрипте КВЕСТА взялась запись Actor akSpeaker = akSpeakerRef as Actor ??? это топиковая переменная.
Почему ВСЕ фрагменты == Fragment_0 ???
 
Ты что, открываешь сам стадийный скрипт QF_000ThePassageInPrison_010DF766 в последней вкладке квеста Scripts и пишешь там что-то вручную??? Просто копируешь блок нулевого фрагмента и вставляешь со своими командами... Мда... сильно!
Это служебный скрипт, там ничего самостоятельно писать не надо, тем более, не понимая своих действий. Для этого есть окна Papyrus Fragment во вкладке стадий и в топиках. На нужном топике в этом окне вставляешь свои команды и компилируешь (там есть кнопочка). Если есть в командах свойства, то сперва добавляешь свойство через кнопку Properties и только потом пишешь сами команды, иначе компиляции без свойств не будет.
Так же и со стадиями, там такое же окно, и точно также надо писать.
 
Скрипты топиков и стадий - разные скрипты. На каждый топик свой скрипт. На все стадии один общий квестовый стадийный скрипт.
 
Alias Property Pass  Auto не Alias, а ReferenceAlias
 
ReferenceAlias Property Pass  Auto


goblyn_wolf  Offline  Сообщение №5783 написано: 5 октября 2013, 04:15



12
Можно ли плагин запихнуть в БСА архив?

mayor  Offline  Сообщение №5784 написано: 5 октября 2013, 04:38



194
Siriusteep, ресурсы используемые в плагине.смотри тут

StanislavD  Offline  Сообщение №5785 написано: 5 октября 2013, 06:14 | Отредактировано: StanislavD - 5 октября 2013, 05:57



123
Цитата AleksTirex

Ты что, открываешь сам стадийный

я его открываю чтоб посмотреть где ошибка

Добавлено (05.10.2013, 09:38)
---------------------------------------------
40вые строки не видишь во фрагментах...

Добавлено (05.10.2013, 09:57)
---------------------------------------------
всёравно  не понимает..

Starting 1 compile threads for 1 files...
Compiling "QF_000ThePassageInPrison_010DF766"...
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(33,54): variable akSpeaker is undefined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(43,0): variable akSpeaker is undefined
C:\Program Files (x86)\Steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_000ThePassageInPrison_010DF766.psc(43,10): none is not a known user-defined type
No output generated for QF_000ThePassageInPrison_010DF766, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on QF_000ThePassageInPrison_010DF766

не может определить с кем говорить.. (akSpeaker)

Добавлено (05.10.2013, 10:14)
---------------------------------------------
я вечером полностью переделал квест и получил такой основной скрипт:

;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment
;NEXT FRAGMENT INDEX 11
Scriptname QF_000ThePassageInPrison_010DF766 Extends Quest Hidden

;BEGIN ALIAS PROPERTY ShefGuard
;ALIAS PROPERTY TYPE ReferenceAlias
ReferenceAlias Property Alias_ShefGuard Auto
;END ALIAS PROPERTY

;BEGIN ALIAS PROPERTY PassInPrison
;ALIAS PROPERTY TYPE ReferenceAlias
ReferenceAlias Property Alias_PassInPrison Auto
;END ALIAS PROPERTY

;BEGIN ALIAS PROPERTY GuardPrison
;ALIAS PROPERTY TYPE ReferenceAlias
ReferenceAlias Property Alias_GuardPrison Auto
;END ALIAS PROPERTY

;BEGIN FRAGMENT Fragment_9
Function Fragment_9()
;BEGIN CODE
SetObjectiveCompleted(40)
;END CODE
EndFunction
;END FRAGMENT

;BEGIN FRAGMENT Fragment_7
Function Fragment_7()
;BEGIN CODE
setObjectiveCompleted(30)
setObjectiveDisplayed(40)
Game.GetPlayer().RemoveItem(Pass1.GetRef(), 1, false, akSpeaker)
;END CODE
EndFunction
;END FRAGMENT

;BEGIN FRAGMENT Fragment_2
Function Fragment_2()
;BEGIN CODE
SetObjectiveCompleted(10)
SetObjectiveDisplayed(30)
akSpeaker.RemoveItem(Pass.GetRef(), 1, false, Game.GetPlayer())
;END CODE
EndFunction
;END FRAGMENT

;BEGIN FRAGMENT Fragment_0
Function Fragment_0()
;BEGIN CODE
SetObjectiveDisplayed(10)
;END CODE
EndFunction
;END FRAGMENT

;END FRAGMENT CODE - Do not edit anything between this and the begin comment

ReferenceAlias Property Pass  Auto  

ReferenceAlias Property Pass1  Auto


AleksTirex  Offline  Сообщение №5786 написано: 5 октября 2013, 12:14


Архимаг


371
Цитата StanislavD

не может определить с кем говорить.. (akSpeaker)



Вот в этом посте расписано именно так, как писал ты сам https://modgames.net/forum/110-6941-997457-16-1380887341 
Здесь в первом спойлере написаны стадии и скрипты на стадиях. В третьем спойлере написаны топики и скрипты на топиках. Вот поэтому там и применяется топиковая переменная akSpeaker, она отдаёт референс говорящего.
 
Если ты решил все команды прописать в стадиях, а не топиках, то и надо соответственно правильно прописать свойство.
Game.GetPlayer().RemoveItem(Pass1.GetRef(), 1, false, akSpeaker) - это значит: "из инвентаря ГГ удаляется предмет Pass1.GetRef() в контейнер akSpeaker", т.е. в инвентарь НПС1. Поэтому надо указать движку, кто именно этот НПС, какой у него ID, иначе движок не будет знать, куда засунуть эту вещь. У тебя есть алиасы неписей, вот и надо вместо akSpeaker прописать ID актёра, которому будет дан предмет, а раз нет ID актёра и есть алиас с нужным ID актёра, то пишется алиас.GetActorRef() (естественно, вместо "алиас" пишется или GuardPrison, или PassInPrison, или как там у тебя алиас нпс1)
алиас.GetActorRef() возвращает референс того, кто назначен на этот алиас.

StanislavD  Offline  Сообщение №5787 написано: 6 октября 2013, 12:06 | Отредактировано: StanislavD - 6 октября 2013, 11:34



123
спс...

Добавлено (06.10.2013, 15:06)
---------------------------------------------
вроде квест заработал, но герой берёт вещь и тут же отдаёт его! не отходя от нпс 2... даже разговора не начинает с нпс 1

в общем перемещения вещи в инвентарь не происходит, а стадия завершается как будто он вещь получил и вещь отдал!

Добавлено (06.10.2013, 16:06)
---------------------------------------------
значит так пункт по перемещению вещи от нпс2 к гг выполняется.. и тут же выполняется пункт по перемещению вещи к нпс1
на веще у меня сидит скрипт:

Scriptname aaapassinprison extends ObjectReference  

Quest Property aaaProhodVTurmu Auto  

Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer)
    if(newContainer == Game.GetPlayer())
    aaaProhodVTurmu.SetObjectiveDisplayed(40)
    aaaProhodVTurmu.SetStage(40)
    endif
EndEvent


AleksTirex  Offline  Сообщение №5788 написано: 6 октября 2013, 12:37


Архимаг


371
Цитата StanislavD

значит так пункт по перемещению вещи от нпс2 к гг выполняется.. и тут же выполняется пункт по перемещению вещи к нпс1  на веще у меня сидит скрипт:



Всё правильно, ты сам так и сделал, твой скрипт на вещи переключает стадию на 40 сразу по добавлении в инвентарь ГГ.
А ведь ГГ сперва должен вернуться к нпс1, поговорить с ним и только тогда отдать вещь.
Этот скрипт на вещи вообще не нужен, его надо удалить.
 
Вот если бы по заданию надо было найти и забрать/подобрать эту вещь, вот тогда скрипт был бы нужен, а в твоём варианте он лишний.
 
***************
SetObjectiveDisplayed(40) - эти команды не надо везде вписывать, достаточно одной в стадии.

StanislavD  Offline  Сообщение №5789 написано: 6 октября 2013, 13:22 | Отредактировано: StanislavD - 6 октября 2013, 12:51



123
так я убрал этот скрипт, всё равно берёт и тут же отдаёт
 а мне надо чтобы он взял у нпс2 пошёл к нпс1 и отдал.. я даже из 40 стадии перенёс это в 50..

Добавлено (06.10.2013, 16:58)
---------------------------------------------
может добавить промежуточный пункт отнести вещь нпс1? и топик  со связью??...

Добавлено (06.10.2013, 17:22)
---------------------------------------------
возможно нужно впереди команду добавить, чтобы он отдавал только после разговора с нпс1?


AleksTirex  Offline  Сообщение №5790 написано: 6 октября 2013, 13:36


Архимаг


371
Цитата StanislavD

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



Нужно сделать, как написано выше, где пост со спойлерами. Там написано, что команды на добавление и удаление предмета находятся в топиках, а ты куда их вписал? Вот в топике нпс1 и должна быть команда на удаление вещи у ГГ, и естественно, в таком случае она удалится только после разговора с нпс1.

Форум » TES V: Skyrim » Библиотека модмейкера » Вопросы по Creation Kit. Старая тема (Тут вы можете задать вопросы по редактору Скайрима)
Поиск:





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