Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
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
читаю алекс.. только если посмотреть по выше то будет видно что некоторые вопросы повторяются.. а видео практически с вики и сделано...
Проблема не том, с чего сделано видео, а в том, что вырабатывается шаблонное мышление. И когда в работе возникает расхождение с "видео шаблоном", то сразу ступор - "а что мне делать, ведь на видео было так, а мне надо иначе". Учитесь думать самостоятельно. На форуме люди только подсказывают и дают наводки, в каком направлении надо повернуть свою мысль, а уж реализовывать её надо самому. Хотя, дело хозяйское, как и что делать, я только советую, не более.
что то я нифига не пойму.привязываю нпц к маркеру на вкладке linked ref и никакого эффекта..пакет у нпц верный,сетка есть,даже в ownership маркера указал нпц..ходит вокруг да около и не хочет с маркером связываться..было у кого подобное?
Добавлено (03.10.2013, 20:01) --------------------------------------------- раньше так же привязывал и все норм
Изменение репутации для пользователя StanislavD
StanislavDOffline
Сообщение №5768
написано: 4 октября 2013, 05:29
| Отредактировано: StanislavD - 3 октября 2013, 18:37
Добавлено (03.10.2013, 20:14) --------------------------------------------- прошу разъяснить по порядку куда и что вставлять? а то у меня уже дым из ушей валит
Добавлено (03.10.2013, 21:36) --------------------------------------------- прикольно... но в ветреном пике (золотой коготь) я абсолютно не нашёл места с рычагом... хотя в игре оно есть....
что то я нифига не пойму.привязываю нпц к маркеру на вкладке linked ref и никакого эффекта..пакет у нпц верный,сетка есть,даже в ownership маркера указал нпц..ходит вокруг да около и не хочет с маркером связываться..было у кого подобное?
сетку путей переделай.. так чтобы треугольники в нужную сторону смотрели.. было такое.. вместо того чтоб на прямую идти кругами ходили нпс
у меня было так: пути идут по кругу с одной точки, т.е. один нпс идёт по часовой, другой против часовой стрелки, так первый нпс шёл как надо, а второй доходил до определённой точки разворачивался обходил по кругу до этой точки, опять разворачивался и продолжал путь уже как надо. присмотрелся к сетке путей и в одном месте у меня сходились 4 треугольника, а не три... (т.е. так /|\|, а не /|/|)...
Да, мы бандиты и бродяги, как злословит молва, Мы попадаем в передряги, помня эти слова. Смотри вперед и не сдавайся ты на милость судьбе! Предай их всех, останься верен себе. (Канцлер Ги - Кантри Бреган Д'Эрт)
вкладка Quest Stages: index Log Entry kmyQuest ------------------------------------------------------ 10 найти нпс2 и получить вещь SetObjectiveDisplayed(10)
------------------------------------------------------ 30 вещь получена надо отдать нпс1 SetObjectiveCompleted(10) SetObjectiveDisplayed(30) ----------------------------------------------------- 40 SetObjectiveCompleted(30) AliasNPC1.TryToEvaluatePackage() (надо сделать свойство AliasNPC1 и назначить на него свой алиас нпс1, а потом писать команды скрипта) нпс1 согласно пакету пойдёт дёргать рычаг на рычаге (тебе так будет проще) скрипт OnActivate с условиями: "стадия №40" и "akActivator == ID_нпс1" там команда myQuest.SetStage(50) и телепортация ГГ. ( сделать свойство myQuest и назначить на него свой квест) ------------------------------------------------------ 50 конец (галочки Shut Down Stage и Complete Quest)
вкладка Quest Objectives: - index Display Text Target Ref 10 найти нпс2 получить вещь нпс2 30 отдать вещь нпс1 ---------------------------------------------------------------- вкладка Quest Aliases: - Name type Fill нпс1 ref uniqeActors нпс2 ref uniqeActors вещь ref Created ********************************************** вещь-Created естественно, назначив ID своей вещи
топики - блок №1 (оранжевый), в нём топики: - топик №1 getStage - quest < 10 GetIsId - нпс1 == 1 - топик №2 "нет" GetIsId - нпс1 == 1 - топик №3 "да" GetIsId - нпс1 == 1 - скрипт: GetOwningQuest().SetStage(10) ----------------------------------------------------------------- блок №2 (оранжевый), в нём топики: - топик №1 getStage - quest == 10 GetIsId - нпс2 == 1 - скрипт: GetOwningQuest().SetStage(30) akSpeaker.RemoveItem(AliasItem.GetRef(), 1, false, Game.GetPlayer()) - (надо сделать свойство AliasItem и назначить на него свой алиас вещи, а потом писать команды скрипта) ------------------------------------------------------------------------------- блок №3 (оранжевый), в нём топики: - топик №1 getStage - quest == 30 GetIsId - нпс1 == 1 - скрипт: Game.GetPlayer().RemoveItem(AliasItem.GetRef(), 1, false, akSpeaker) GetOwningQuest().SetStage(40) - (надо сделать свойство AliasItem и назначить на него свой алиас вещи, а потом писать команды скрипта) ****************************************************** - топик №3 (из тп №2) - это совсем не понятно, но если это связь топиков, то не правильно.
хелп пипл) не меняется внешний вид нпс. скачал мод на компаньонов и изменил внешность первый раз получилось, решил еще раз поменять - в creatoin kid внешность изменена показывает а в самом скуриме нет... что не так?
(надо сделать свойство 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) --------------------------------------------- а при таком варианте скрипта:
;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) --------------------------------------------- в общем не хочет он строчки вставлять! ругается... говорить ему якобы не с кем, и команду вторую он не понимэ!
в общем не хочет он строчки вставлять! ругается... говорить ему якобы не с кем, и команду вторую он не понимэ!
Так и я не понимаю. Откуда в скрипте КВЕСТА взялась запись Actor akSpeaker = akSpeakerRef as Actor ??? это топиковая переменная. Почему ВСЕ фрагменты == Fragment_0 ???
Ты что, открываешь сам стадийный скрипт QF_000ThePassageInPrison_010DF766 в последней вкладке квеста Scripts и пишешь там что-то вручную??? Просто копируешь блок нулевого фрагмента и вставляешь со своими командами... Мда... сильно! Это служебный скрипт, там ничего самостоятельно писать не надо, тем более, не понимая своих действий. Для этого есть окна Papyrus Fragment во вкладке стадий и в топиках. На нужном топике в этом окне вставляешь свои команды и компилируешь (там есть кнопочка). Если есть в командах свойства, то сперва добавляешь свойство через кнопку Properties и только потом пишешь сами команды, иначе компиляции без свойств не будет. Так же и со стадиями, там такое же окно, и точно также надо писать.
Скрипты топиков и стадий - разные скрипты. На каждый топик свой скрипт. На все стадии один общий квестовый стадийный скрипт.
Alias Property Pass Auto не Alias, а ReferenceAlias
Добавлено (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
Вот в этом посте расписано именно так, как писал ты сам 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
StanislavDOffline
Сообщение №5787
написано: 6 октября 2013, 12:06
| Отредактировано: StanislavD - 6 октября 2013, 11:34
Добавлено (06.10.2013, 15:06) --------------------------------------------- вроде квест заработал, но герой берёт вещь и тут же отдаёт его! не отходя от нпс 2... даже разговора не начинает с нпс 1
в общем перемещения вещи в инвентарь не происходит, а стадия завершается как будто он вещь получил и вещь отдал!
Добавлено (06.10.2013, 16:06) --------------------------------------------- значит так пункт по перемещению вещи от нпс2 к гг выполняется.. и тут же выполняется пункт по перемещению вещи к нпс1 на веще у меня сидит скрипт:
значит так пункт по перемещению вещи от нпс2 к гг выполняется.. и тут же выполняется пункт по перемещению вещи к нпс1 на веще у меня сидит скрипт:
Всё правильно, ты сам так и сделал, твой скрипт на вещи переключает стадию на 40 сразу по добавлении в инвентарь ГГ. А ведь ГГ сперва должен вернуться к нпс1, поговорить с ним и только тогда отдать вещь. Этот скрипт на вещи вообще не нужен, его надо удалить.
Вот если бы по заданию надо было найти и забрать/подобрать эту вещь, вот тогда скрипт был бы нужен, а в твоём варианте он лишний.
*************** SetObjectiveDisplayed(40) - эти команды не надо везде вписывать, достаточно одной в стадии.
Изменение репутации для пользователя StanislavD
StanislavDOffline
Сообщение №5789
написано: 6 октября 2013, 13:22
| Отредактировано: StanislavD - 6 октября 2013, 12:51
так я убрал этот скрипт, всё равно берёт и тут же отдаёт а мне надо чтобы он взял у нпс2 пошёл к нпс1 и отдал.. я даже из 40 стадии перенёс это в 50..
Добавлено (06.10.2013, 16:58) --------------------------------------------- может добавить промежуточный пункт отнести вещь нпс1? и топик со связью??...
Добавлено (06.10.2013, 17:22) --------------------------------------------- возможно нужно впереди команду добавить, чтобы он отдавал только после разговора с нпс1?
возможно нужно впереди команду добавить, чтобы он отдавал только после разговора с нпс1?
Нужно сделать, как написано выше, где пост со спойлерами. Там написано, что команды на добавление и удаление предмета находятся в топиках, а ты куда их вписал? Вот в топике нпс1 и должна быть команда на удаление вещи у ГГ, и естественно, в таком случае она удалится только после разговора с нпс1.