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

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

Опубликовано
23.10.2015 12:21:26, Bald сказал(-а):

22.10.2015 17:52:18, werr92 сказал(-а):

auto state WAITING
Event OnRead()
     Game.GetPlayer().AddPerk(Сюда я поставил свой перк)
     GoToState("DONE")
endEvent
endstate
 
state DONE
;
endstate
В игре не чего не произошло, что я делаю не  так?

А я и не знаю, что ты делаешь...
Я написал тело скрипта, куда надо обьявить проперти, скомпилировать, добавить локально на нужную книгу и задать пропертям значения.
  • Нравится 1
Опубликовано
22.10.2015 21:21:25, zilav сказал(-а):

Кстати на официальном форуме создатель папируса рекомендовал не использовать эту конструкцию Game.GetPlayer(), а вместо этого создавать алиас под игрока и проводить операции с ним. Вроде медленно работает, не так оперативно обрабатывается в очереди скриптов или что-то в этом роде, уже не помню, это было года 2 назад. В данном случае это неважно так как вызывается редко, а вот для очень часто запускаемых скриптов может быть критично.

Ну могу сказать, что у меня есть квест, где 4 нпс следуют за гг. Но только у каждого из них по нескольку пакетов: следовать, когда герой стоит в рост; следовать скрытно и игнорировать врагов, если гг ничего не угрожает; ну и напасть на противника, даже если гг в снике, но при этом за ним уже выехали враги. Немного сумбурно описал, но суть, думаю, понятна.

Так вот, у меня на элиас игрока в этом квесте навешан скрипт, в котором сначала происходит регистрация под аним ивенты (сесть, встать и все это же в движении), а после в игра получает ивенты (от элиаса игрока соответственно), в которых приказавается пересмотр пакетов для этих четверых нпс-спутников. В общем, могу сказать, что не всегда это происходит быстро. Может оказаться так, что игра сразу всех четверых ставит в сник, бывает, что парочку сразу, а оставшихся потом, вплоть до 10-15 сек. А бывает, что и никого сразу не пересматривает.
  • Нравится 1
Опубликовано
23.10.2015 12:42:45, werr92 сказал(-а):

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

А можно поподробней ? 

Опубликовано
23.10.2015 12:57:00, werr92 сказал(-а):

Может оказаться так, что игра сразу всех четверых ставит в сник, бывает, что парочку сразу, а оставшихся потом, вплоть до 10-15 сек. А бывает, что и никого сразу не пересматривает.

Я сам на папирусе не пишу, просто написал по памяти что видел. Кстати, рекомендую почитать ответы на различные вопросы от этого пользователя (разработчика папируса в Skyrim и, по всей видимости, в Fallout 4)

http://forums.bethsoft.com/user/183997-smkviper/

 

Там если нажать справа сверху на "Find Content", то выведет все темы, где он отвечал. Можно целый гайд составить из его советов и ответов на различные вопросы, что называется "из первых уст". Если учесть, что скоро офф. форум закроется из-за переезда на bethesda.net и темы переноситься не будут, то вся эта ценная информация будет утеряна. Времени осталось немного. Так что если есть желающие перевести и опубликовать что-то здесь, то самое время пока не поздно.

  • Нравится 1
Опубликовано
23.10.2015 13:20:44, zilav сказал(-а):

Я сам на папирусе не пишу, просто написал по памяти что видел. Кстати, рекомендую почитать ответы на различные вопросы от этого пользователя (разработчика папируса в Skyrim и, по всей видимости, в Fallout 4)
http://forums.bethsoft.com/user/183997-smkviper/
 
Там если нажать справа сверху на "Find Content", то выведет все темы, где он отвечал. Можно целый гайд составить из его советов и ответов на различные вопросы, что называется "из первых уст". Если учесть, что скоро офф. форум закроется из-за переезда на bethesda.net и темы переноситься не будут, то вся эта ценная информация будет утеряна. Времени осталось немного. Так что если есть желающие перевести и опубликовать что-то здесь, то самое время пока не поздно.

Спасибо за совет. Времени не так много свободного, чтоб переводить и оформлять все. А поглядеть — это обязательно)
23.10.2015 13:09:40, Bald сказал(-а):

А можно поподробней ?

Хорошо. Тогда вечером, когда дома буду, напишу.
  • Нравится 1
Опубликовано (изменено)

На определенной стадии квеста Quest: 'questname', 100 предмет Predmet к которому привязывается скрипт PredmetDel должен быть удален. Имею представление как это сделать через тело квеста - но хотелось бы знать более простые пути, если они есть.

Scriptname PredmetDel extends ObjectReference

quest Property questname Auto

Event OnQuestStage('questname', 100)
If QuestStage => 100

EndIf
EndEvent
Event RemoveItem(Actor akActor)
If akActor == Game.GetPlayer()
  akActor.RemoveItem(Predmet)
EndIf
EndEvent

 

 

Понимаю, что синтаксис в чем то наивен - но если в итоге результат возможен, - прошу разъяснить ошибки.

Изменено пользователем Al Sin
Опубликовано (изменено)

Уважаемые скриптоманы и те кто заморачивается со скриптами :)

 

Пожалуйста.

Подскажите - как задать переменную.. или же квестовую переменную.. или же глобальную переменную, чтобы она работала в диалогах?
В скрипте я могу поставить. А где УСЛОВИЯ в диалогах?

И как прописывать переменную в диалоговом окне?

У меня стоит NameCount.value = 1

И NameCount.value +=1 тоже не срабатывает.

 

Разбираю эти переменные уже шестой час))

Благодарю...

Изменено пользователем Wolf4
Опубликовано
02.11.2015 20:54:23, Wolf4 сказал(-а):

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

Для глобальных переменных флаг Use Global в условии

http://www.creationkit.com/Category:Conditions

 

Для скриптовых в условии функция GetVMQuestVariable.

Опубликовано
23.10.2015 12:21:26, Bald сказал(-а):

 

22.10.2015 17:52:18, werr92 сказал(-а):

Спойлер

auto state WAITING

Event OnRead()
     Game.GetPlayer().AddPerk(Сюда я поставил свой перк)

     GoToState("DONE")
endEvent

endstate

 

state DONE

;

endstate

В игре не чего не произошло, что я делаю не  так? 

 

Ну во-первых, скрипт надо повесить локально на объект (книгу). Во-вторых, написать и скомпилировать код. Объявив при этом проперти Perk001. В-третьих, задать потом значение этому проперти. И сохранить плагин.

вот скриншоты.  

 

Спойлер

Scriptname PredmetDel extends ObjectReference
quest Property questname Auto

Event OnQuestStage('questname', 100)
If QuestStage => 100
EndIf
EndEvent
Event RemoveItem(Actor akActor)
If akActor == Game.GetPlayer()
  akActor.RemoveItem(Predmet)
EndIf
EndEvent

 

29.10.2015 17:39:51, Al Sin сказал(-а):
Понимаю, что синтаксис в чем то наивен - но если в итоге результат возможен, - прошу разъяснить ошибки.

Синтаксис не то чтобы наивен, он неправилен. Event OnQuestStage, Event RemoveItem – ну вот откуда ты это взял-то? Нет попросту таких ивентов. Не существует в папирусе.

А также, даже если забить на то, что весь код состоит из двух не существующих в природе ивентов, то все равно внутри первого, который у тебя зовется Event OnQuestStage, какая-то ахинея. 

 

Стадия (не квеста, а просто какая-то переменная не объявленная при этом, которая еще и называется СтадияКвеста зачем-то)

следовательно (не равно, не больше, не больше либо равно, а именно следовательно – элемент мат. логики, который нигде кроме учебников математики не встречается, и игра подобный символ не знает).

 

Переводя на русский, там написано: 

если необъявленная переменная следовательно сто, тогда ничего не делай. И иначе тоже ничего не делай. Никак ничего не делай, короче) Ну и смысл это было писать. Причем с точки зрения логики, это звучит так же нелепо, как с точки зрения русского языка.

 

Мораль. Проблема не только в синтаксисе, но и в осознании того, что нужно сделать. Ерунда какая-то.

  • Нравится 1
Опубликовано
02.11.2015 20:54:23, Wolf4 сказал(-а):

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

В скрипте я могу поставить. А где УСЛОВИЯ в диалогах?

И как прописывать переменную в диалоговом окне?

У меня стоит NameCount.value = 1

И NameCount.value +=1 тоже не срабатывает.

 

не очень понятно, шо таке "квестовая переменная". Пример приведи, если можно. Глобальная же переменная это отдельный объект, который создается (как НПС, статика или любой другой объект). Найти можно в Miscellaneous -> Global :

 

Спойлер

LX23ABK.png.webp.png

 

Как использовать. на проперти глобалки (проперти должно быть типа GlobalVariable) можно вызывать команды GetValue(), SetValue(XX). Коротенький пример с офф вики:

GlobalVariable Property GameHour  auto

float myhour = GameHour.GetValue()
GameHour.SetValue(10)

 

Пример использования в диалогах:

Спойлер

KMrD6ES.png.webp.png

 

Обрати внимание, что в поле Conditions диалога условие выглядит как GetGlobalValue, а не как в папирусе GetValue().

  • Нравится 1
Опубликовано (изменено)
03.11.2015 06:47:46, zilav сказал(-а):

Для глобальных переменных флаг Use Global в условии

http://www.creationkit.com/Category:Conditions

 

Для скриптовых в условии функция GetVMQuestVariable.

В условии для скриптовых это понятно. А где прописать нужно переменную, чтобы она появилась в условии? я об этом пишу)

Глобальную переменную создал, как уже ранее говорил - но... Не знаю как точно и правильно сменить её в диаловых окошках BEGIN и END

У меня прописано "Count.Value + 1

Ещё не ясно, что дает функция += 1

Также если прописать "Count + 1" пишет, что нужна переменная "int"

Вот и куда всё это вставлять? ))

На примере рассматривал квест "FreeformRiften22"

 

03.11.2015 09:02:51, werr92 сказал(-а):

не очень понятно, шо таке "квестовая переменная". Пример приведи, если можно. Глобальная же переменная это отдельный объект, который создается (как НПС, статика или любой другой объект). Найти можно в Miscellaneous -> Global :

 

Спойлер

 


 


KMrD6ES.png.webp.png

 

Обрати внимание, что в поле Conditions диалога условие выглядит как GetGlobalValue, а не как в папирусе GetValue().

 

Приветствую.

Ты мне и здесь помогаешь. Большая благодарность :)

С созданием глобальной переменной я уже разобрался вчера.

Да, действительно в условии Conditions вставлено GetGlobalValue

У этих Беседчиков на Creation Kit всё запутано и криво сделано)) В отличии от ТЕС4 :) Зато есть сцены.

 

Так вот... Квестовая переменная - я имею в виду GetQuestVariable - поле во ВСЕХ дефолтных квестах остается пустым.

В ТЕС4 было всё просто. Там в скрипт квеста вставлялась переменная и она была включена в сам квест.

Так понятнее разъясняю?

 

Спойлер

PS: у тебя во фрагменте Папируса есть строка "FakeArmomrDial.SetValue(1) - это и есть смена значения глобальной переменной? Если да - то пойдёт ли "SetValue(+1) ?

 
Изменено пользователем Wolf4
Опубликовано

Ещё такой малюсенький вопрос объявился.

 

Как заставить НПС взять в руку факел? Хоррор квест делаю)

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

Приветствую! Народ, снова прошу вашей помощи! Заметил у себя в игре такой неприятный баг - перестал работать котелок для приготовления пищи (для всех сохранений у всех персонажей). Может дело в скриптах? Прям не знаю, что делать, весь инет перерыл - инфы ноль :sad:

Мои приключения в Скайриме :)

 

Жил без страха и умер без страха...

Спойлер

h_1450748337_1085835_7adad8a08b.jpg

  • 2 месяца спустя...
Опубликовано
03.02.2016 10:49:30, AlienSoul сказал(-а):

Мое мнение, что стандартного простенького окошечка вполне хватает. И всегда хватало и будет всегда хватать. В крайнем случае "блокнот", чтобы быстро заменить что-нибудь или найти.

Опубликовано
03.02.2016 10:55:38, Dimonoider сказал(-а):

Мое мнение, что стандартного простенького окошечка вполне хватает. И всегда хватало и будет всегда хватать. В крайнем случае "блокнот", чтобы быстро заменить что-нибудь или найти.

да! с ним как по мне удобнее работать, ведь там он покажет тебе правильные скрипты! вот к примеру забыл ты поставить () а в оригинале не покажешь! приходится искать ошибку! а так бах и вуаля!

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

Здравствуйте, подскажите как можно создать цепочку эффектов в заклинании или зелье, например, выпиваешь зелье и тебе сначала регенит здоровье минуту, потом ману минуту, потом выносливость минуту. заранее благодарен

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

Здравствуйте всем , извеняюсь если повторяюсь мб такой вопрос был 
кто может пояснить принцип работы данного скрипта

Scriptname HavenBagTeleport extends activemagiceffect  

ObjectReference Property Marking  Auto  
ObjectReference Property HavenBagMarker  Auto  
Cell Property HavenBag  Auto  
objectReference property BagItem auto
{Point explicity to the unique, placed reference of the mask in the world}  

event OnEffectStart ( Actor Target, Actor Caster )
if (Caster.GetParentCell() != HavenBag)
Marking.MoveTo (Caster)
Caster.MoveTo (HavenBagMarker)
Endif
EndEvent

EVENT onEffectFinish ( Actor Target, Actor Caster )
if (Caster.GetParentCell() == HavenBag)

Caster.Moveto (Marking)
			if caster.getItemCount(BagItem) < 1
			; safety catch - if the player dropped the mask in the sanctuary, add it to inventory so it doesn't get lost.
			caster.addItem(BagItem)
	endif
endif
EndEvent
  • 4 недели спустя...
Опубликовано

При выборе стандартного скрипта ActivateLinkedChestDummyScript, СК выдал такую ошибку:Сценарий имел ошибки при погрузке, он не будет добавлен к объекту. Подскажите, пожалуйста, как это исправить? Если я перегружу СК - решит ли это проблему?  И не уничтожится ли мой esp файл при этом?Или нужно переустанавливать сам Скайрим?Я новичок в этом деле, прошу не судить меня строго)))

Опубликовано
03.02.2016 10:55:38, Dimonoider сказал(-а):
Мое мнение, что стандартного простенького окошечка вполне хватает

ну если ты программист и уже имеешь опыт написания кода(скриптов или просто правки строк) то может и да, а для новичков или просто тех, кто не помнит все функции это must have.

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

Здравствуйте.

Я абсолютный ламер в скайримовских скриптах, посему хотел бы узнать имя скрипта и значение которое надо поменять чтобы компаньон ждал меня в указанном месте не ванильные 3 дня, а от 30 дней и вплоть до второго пришествия Акатоша. UFO и AFT не предлагать- они калечат функции других модов, и мне не нужна армия фолловеров, достаточно одного, просто чтобы он не покидал место где брошен)

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

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

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

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

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

Войти

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

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