Azazellz Опубликовано 4 октября, 2018 Опубликовано 4 октября, 2018 04.10.2018 19:46:09, stanislavd сказал(-а):не получается... не хочет он видеть смерть нпс(( Что-то мне подсказывает, что он просто данные у тебя не сохраняет. То бишь каждый раз, как скрипт загружается - он берет исходные данные. Попробуй инфу о смерти пауков в GlobalVariable соответствующей командой писать, и оттуда же ее собирать.
CISCO.:i:..:i:. Опубликовано 18 октября, 2018 Опубликовано 18 октября, 2018 (изменено) Доброго времени суток. Пишу скрипт - столкнулся с банальным незнанием - точнее отсутствием практики создания квестов с моей стороны. Дело в том что мне нужно сделать так что бы при прохождении ГГ триггера происходило появление объекта - но только в том случае если игрок состоит в гильдии воров. Решил привязать всё это к квесту - но так и не нашел этого самого квеста. СкриптScriptname _0000_HMD_TEST11111111111111111111111 extends ObjectReference quest property Ques_Name auto ObjectReference property Object_1 auto sound property My_sound auto function OnTriggerEnter(ObjectReference akActionRef) if akActionRef == game.GetPlayer() as ObjectReference self.QuestItems() endIf endFunction function QuestItems() if Ques_Name.IsCompleted() && Object_1.IsDisabled() Object_1.enable() My_sound.Play(game.GetPlayer() as ObjectReference) debug.notification("Портал разблокирован.") utility.Wait(1 as Float) endIf endFunction function OnCellLoad() debug.notification("Добро пожаловать!") endFunction Прошу подскажите мне идентификаторы этого квеста ну вот к примеру квест боэтии когда ты взял доспехи с трупа считается завершенным DA02 Изменено 18 октября, 2018 пользователем CISCO.:i:..:i:.
Azazellz Опубликовано 18 октября, 2018 Опубликовано 18 октября, 2018 (изменено) 18.10.2018 13:39:22, CISCO.:i:..:i:. сказал(-а):Прошу подскажите мне идентификаторы этого квеста ну вот к примеру квест боэтии когда ты взял доспехи с трупа считается завершенным DA02 У гильдии воров с TG в названии наверное будет, или что-то похожее. Идешь на вики, смотришь линейку квестов. Идешь в СК, ищещь квест по названию. А от названия уже и до ИДшника недалеко. И почему у тебя опять function вместо Event? Функции - это, условно говоря, куски кода, которые можно вызывать через название. Эвенты - это события в игре. Что-то у меня есть сомнение, что триггер с таким вот скриптом вообще сработает. Первая и последняя функции должны быть эвентами, по идее. Изменено 18 октября, 2018 пользователем Azazellz
CISCO.:i:..:i:. Опубликовано 18 октября, 2018 Опубликовано 18 октября, 2018 18.10.2018 14:05:28, Azazellz сказал(-а):Первая и последняя функции должны быть эвентами, по идее. Спасибо учту - как всё выясню отпишусь. 18.10.2018 14:05:28, Azazellz сказал(-а): Идешь на вики, смотришь линейку квестов. Идешь в СК, ищещь квест по названию. А от названия уже и до ИДшника недалеко. А вот это напоминает выражение - всё гениальное просто.
werr Опубликовано 19 октября, 2018 Опубликовано 19 октября, 2018 18.10.2018 13:39:22, CISCO.:i:..:i:. сказал(-а): Спойлер Scriptname XXscript extends ObjectReference Actor property PlayerREF auto ;player s reference Quest property TG01 auto ;quest id Sound property SFXtoPlay auto ;sound to play ObjectReference property xMarker01REF auto ;marker to enable Bool property DoOnce = true auto ;true by default Event OnTriggerEnter(ObjectReference akActionRef) if akActionRef == PlayerREF && TG01.GetStageDone(200) xMarker01REF.Enable() SFXtoPlay.Play(PlayerREF) if DoOnce Disable() Delete() endif endif EndEvent 1. Советую тебе почитать, что такое функции и ивенты, и как это связано. Целый учебник про папирус уже давно есть в сети (ссылка). 2. Олсо, если ты вызываешь функцию, описанную с самом же скрипте, то не обязательно просить скрипт обращаться к самому себе, он и так это поймет. QuestItems() вместо self.QuestItems() 3. Также необязательно приводить типы (зачем???) к ObjectReference: if akActionRef == game.GetPlayer() as ObjectReference и здесь My_sound.Play(game.GetPlayer() as ObjectReference Игра и так способна воспринять актера как референс в мире. Примерно как и здесь utility.Wait(1 as Float) Чем ты руководствуешься, когда ставишь подобное? Зачем? Вообще всегда задавай себе вопрос "Зачем?" — это поможет заставить себя думать. В программировании должна логика действий прослеживаться. А в таком виде эти приписки больше напоминают ритуальные заклятья. Я к тому, что во-первых, в функции Wait() аргумент и так является типа Float; а во-вторых, тип Int и без дополнительных телодвижений приводится системой к Float. Utility.Wait(1.0) или Utility.Wait(1) тоже будет верно. Однако, в том виде, как это используется у тебя, команда Wait() бесполезна, поскольку после нее ничего не происходит. A Random Dude's Story
CISCO.:i:..:i:. Опубликовано 20 октября, 2018 Опубликовано 20 октября, 2018 19.10.2018 13:23:44, werr сказал(-а):1. Советую тебе почитать, что такое функции и ивенты, и как это связано. Целый учебник про папирус уже давно есть в сети (ссылка). 2. Олсо, если ты вызываешь функцию, описанную с самом же скрипте, то не обязательно просить скрипт обращаться к самому себе, он и так это поймет. Спасибо огромное - очень подробно пояснили - за ссылку отдельно спасибо. Хорошо что многие не проходят мимо со словами - ещё один новичок парит тут мозги не всякими глупостями - а пытаются разъяснить этому бедолаге как нужно сделать и с чего начать.
BornToNight Опубликовано 7 ноября, 2018 Опубликовано 7 ноября, 2018 (изменено) Приветствую всех. Новичку сложно найти из горы функций нужную. Надеюсь поможете хоть с чем-то. Название функции/пример или просто направьте меня в нужное русло. Функции: 1. Телепорт персонажа в рандомную точку на карте (если это не возможно, то хотя бы в рандомный город) 2. Оставить персонажу 1 хп (не общее количество, а просто 1 из 100, например) 3. Сменить погоду и время суток 4. Создать взрывы рядом с персонажем (чтобы они охватывали среднюю область около персонажа) 5. Ускорить или замедлить персонажа на время (например, на 1 минуту) 6. Наложить баф или дебаф на время 7. Убрать возможность управление персонажем на время или сделать инверсию мышки/управления 8. Добавить уровень преступности 9. Сломать (убрать прочность) экипированного оружия и брони Изменено 7 ноября, 2018 пользователем BornToNight
Azazellz Опубликовано 7 ноября, 2018 Опубликовано 7 ноября, 2018 (изменено) 1. https://www.creationkit.com/index.php?title=RandomInt_-_Utility потом https://www.creationkit.com/index.php?title=CenterOnCell_-_Debug или https://www.creationkit.com/index.php?title=MoveTo_-_ObjectReference 2. https://www.creationkit.com/index.php?title=GetActorValue_-_Actor потом https://www.creationkit.com/index.php?title=DamageActorValue_-_Actor 3. Время https://www.creationkit.com/index.php?title=SetValueInt_-_GlobalVariable. Погода https://www.creationkit.com/index.php?title=SetActive_-_Weather 4. https://www.creationkit.com/index.php?title=PlaceAtMe_(Papyrus) или https://www.creationkit.com/index.php?title=Cast_-_Spell 5. Скрипт не нужен. Используй ванильные магические эффекты. Накладывай через https://www.creationkit.com/index.php?title=Cast_-_Spell 6. Тоже самое. https://www.creationkit.com/index.php?title=Cast_-_Spell 7. https://www.creationkit.com/index.php?title=DisablePlayerControls_-_Game и https://www.creationkit.com/index.php?title=EnablePlayerControls_-_Game 8. https://www.creationkit.com/index.php?title=IncrementStat_-_Game и https://www.creationkit.com/index.php?title=QueryStat_-_Game 9. Нужен СКСЕ. https://www.creationkit.com/index.php?title=WornObject_Script И вообще, вот тебе страница, изучай. https://www.creationkit.com/index.php?title=Category:Script_Objects Изменено 7 ноября, 2018 пользователем Azazellz 1
BornToNight Опубликовано 7 ноября, 2018 Опубликовано 7 ноября, 2018 07.11.2018 09:53:37, Azazellz сказал(-а): Спасибо огромное!
BornToNight Опубликовано 7 ноября, 2018 Опубликовано 7 ноября, 2018 (изменено) Не могу понять почему срабатывают только NUM1, NUM2 и NUM3. Скрипт предназначен для того, чтобы при нажатии определённой кнопки вызывалась функция. Всё идентично, но срабатывает только три кнопки. Скрипт Scriptname script extends Quest MiscObject property Gold001 auto MiscObject Property golda Auto ;other properties float fTimeForExecution ;other variables ;------------STATES----------------- ;Auto STATE Initial Event OnInIt() RegisterKeyboard() GoToState("KeyInputState") EndEvent ;ENDSTATE STATE KeyInputState Event OnKeyDown(Int iKey) if iKey == 79 ;NUM1 () MacrosFunction01() elseif iKey == 80 ;NUM2 () MacrosFunction02() elseif iKey == 81 ;NUM3 () MacrosFunction03() elseif iKey == 75 ;NUM4 () MacrosFunction04() elseif iKey == 76 ;NUM5 () MacrosFunction05() elseif iKey == 77 ;NUM6 () MacrosFunction06() elseif iKey == 71 ;NUM7 () MacrosFunction07() elseif iKey == 72 ;NUM8 (n) MacrosFunction08() endif GoToState("BusyRunning") EndEvent ENDSTATE STATE BusyRunning Event OnBeginState() Utility.Wait(fTimeForExecution) GoToState("KeyInputState") EndEvent ENDSTATE ;------------FUNCTIONS----------------- Function RegisterKeyboard() RegisterForKey(71) RegisterForKey(72) RegisterForKey(75) RegisterForKey(76) RegisterForKey(77) RegisterForKey(79) RegisterForKey(80) RegisterForKey(81) endfunction Function MacrosFunction01() Game.GetPlayer().PlaceAtMe(Game.GetForm(0x000753ce),1) endfunction Function MacrosFunction02() Game.GetPlayer().AddItem(golda, 100) endfunction Function MacrosFunction03() Game.GetPlayer().PlaceAtMe(Game.GetForm(0x0002123f),1) endfunction Function MacrosFunction04() Game.GetPlayer().PlaceAtMe(Game.GetForm(0x00023484),1) endfunction Function MacrosFunction05() Game.GetPlayer().PlaceAtMe(Game.GetForm(0x000481a0),8) endfunction etc... Изменено 7 ноября, 2018 пользователем BornToNight
werr Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 07.11.2018 12:23:32, BornToNight сказал(-а): Не могу понять почему срабатывают только NUM1, NUM2 и NUM3. Написано-то нормально. Попробуй вместо неработающих NUM-ов поставить что-нибудь с основной клавиатуры (G,H,Y,U и т.п.). И посмотри, что будет. Возможно (я когда-то краем глаза читал), не все кнопки можно забиндить. Если же все и так работать не будет, то имеет смысл убедиться в правильности указанных FORM. Я бы на время тестирования еще туда debug.notification(....) какой-нибудь вставил. На случай если в FORM ошибка, и PlaceAtMe() возвращает NONE, но при этом сама функция-макрос срабатывает. Видно будет. 1 A Random Dude's Story
BornToNight Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 (изменено) 08.11.2018 08:52:31, werr сказал(-а): Написано-то нормально. Попробуй вместо неработающих NUM-ов поставить что-нибудь с основной клавиатуры (G,H,Y,U и т.п.). И посмотри, что будет. Возможно (я когда-то краем глаза читал), не все кнопки можно забиндить. Если же все и так работать не будет, то имеет смысл убедиться в правильности указанных FORM. Я бы на время тестирования еще туда debug.notification(....) какой-нибудь вставил. На случай если в FORM ошибка, и PlaceAtMe() возвращает NONE, но при этом сама функция-макрос срабатывает. Видно будет. Написано нормально, потому что это ваш код :D. Вообще, я уже много что проверил. Проверял через debug.notification(), всё стопорится именно на проверке ikey == 71. Ибо все функции я проверил на NUM1,2,3 и они работают, дело не в них. Также, пытался забиндить на другую кнопку (U), тоже не получилось. Вставлял "Debug.notification(ikey)" в "Event OnKeyDown(Int iKey)" и выводились только те номера кнопок, которые работают (т.е. NUM1,2,3). Щас попробую ещё другие кнопки побиндить. UPD: Попробовал F1 и J - не работает Изменено 8 ноября, 2018 пользователем BornToNight
Azazellz Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 Вообще, в том же Позиционере все нумы работют. Но там они не напрямую заданы, их можно перебиндить. Попробуй не напрямую их прописывать, а через int проперти. Может, поможет.
BornToNight Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 08.11.2018 11:19:50, Azazellz сказал(-а): Вообще, в том же Позиционере все нумы работют. Но там они не напрямую заданы, их можно перебиндить. Попробуй не напрямую их прописывать, а через int проперти. Может, поможет. Не-а. Беда :(. Есть ещё идеи?
BornToNight Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 Короче, создал новый квест, новый скрипт и всё стало работать. Причину так я и не понял. Всем спасибо, кто пытался помочь с "проблемой". Как говорится, аномалия кодинга Kappa
Azazellz Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 (изменено) 08.11.2018 11:51:30, BornToNight сказал(-а): Короче, создал новый квест, новый скрипт и всё стало работать. Причину так я и не понял. Всем спасибо, кто пытался помочь с "проблемой". Как говорится, аномалия кодинга Kappa Cкорее уж кто-то просто не до конца понимает, как persistent-скрипты в Скае работают =) Скрипты такого типа тестировать надо всегда на чисто сейве. Ибо они прописываются в сейвы. И все изменения, что ты в таких скриптах делаешь, на текущий сейв влияния не оказывают. Надо либо сделать еще один инстанс с другим скриптом - либо удалить из сейва инстанс текущий (через сейв-эдитор или путем сохранения-удаления мода-сохранения-очистки сейва). Вот скрипты, прикрепленные к магическим эффектам, которые не постоянно на игроке висят - можно править и без чистых сейвов. Изменено 8 ноября, 2018 пользователем Azazellz
BornToNight Опубликовано 8 ноября, 2018 Опубликовано 8 ноября, 2018 08.11.2018 12:06:13, Azazellz сказал(-а): Cкорее уж кто-то просто не до конца понимает, как persistent-скрипты в Скае работают =) Скрипты такого типа тестировать надо всегда на чисто сейве. Ибо они прописываются в сейвы. И все изменения, что ты в таких скриптах делаешь, на текущий сейв влияния не оказывают. Надо либо сделать еще один инстанс с другим скриптом - либо удалить из сейва инстанс текущий (через сейв-эдитор или путем сохранения-удаления мода-сохранения-очистки сейва). Вот скрипты, прикрепленные к магическим эффектам, которые не постоянно на игроке висят - можно править и без чистых сейвов. Спасибо, буду знать. Для меня это было нелогично, т.к. скрипт изменяешь - в игре меняется механика. Но то, что такое может происходить - это для меня новость.
Sociolog Опубликовано 18 ноября, 2018 Опубликовано 18 ноября, 2018 Хожу с Сераной, изменил ей внешность но есть проблема с ее анимациями. В разговоре она ведет себя как американский негр – реппер. Переминается с ноги на ногуб делает специфические движения руками и т.д. Как убрать/сменить эти анимации на обычные lдля женщин НПС? Где они находятся? И еще. Можно ли как то убрать радостную улыбку с ее физиономии?
Siovkara Опубликовано 30 декабря, 2018 Опубликовано 30 декабря, 2018 Доброго времени суток! Товарищи, только-только начал заниматься скриптами, есть цель сотворить книжку, которая при чтении будет выкидывать игрока на определенную локацию. Книжка есть, локация тоже. А вот скрипт на книжке не работает. Может кто поможет нубу?>< Заранее благодарствие Вот оно: scriptName a1bktp extends ObjectReference objectreference property aaaameltdown auto Actor Player function OnRead() utility.Wait(1.50000) game.FadeOutGame(false, true, 2.00000, 1.00000) Player.MoveTo(aaaameltdown, 0.000000, 0.000000, 0.000000, true) game.FastTravel(aaaameltdown) endFunction
Azazellz Опубликовано 30 декабря, 2018 Опубликовано 30 декабря, 2018 Вместо функции - ивент. https://www.creationkit.com/index.php?title=OnRead_-_ObjectReference Фасттревел не нужен, если ты MoveTo сделал. Еще, помнится, был где-то код, который принудительно закрывает открытые меню... Но вот что-то я его не помню. И вообще. У тебя же есть игра. Есть ДЛЦ. Вскрой скрипт для черных книг из Драгонборна, посмотри как он устроен - всего и делов.
Siovkara Опубликовано 30 декабря, 2018 Опубликовано 30 декабря, 2018 30.12.2018 10:35:21, Azazellz сказал(-а): Вместо функции - ивент. https://www.creationkit.com/index.php?title=OnRead_-_ObjectReference Фасттревел не нужен, если ты MoveTo сделал. Еще, помнится, был где-то код, который принудительно закрывает открытые меню... Но вот что-то я его не помню. И вообще. У тебя же есть игра. Есть ДЛЦ. Вскрой скрипт для черных книг из Драгонборна, посмотри как он устроен - всего и делов. Большое спасибо! Действительно, стоило начать с очевидного, но как-то не сразу вспомнил про черные книги Буду учить все дальше Спасибо еще раз
CISCO.:i:..:i:. Опубликовано 15 февраля, 2019 Опубликовано 15 февраля, 2019 У меня вопрос почему скрипт не работает? Делаю дом в нём будет несколько телепортов но они не должны быть видны пока не будут выполнены определённые квесты по сюжету игры. Сам скрипт вешаю на Хмаркер - скрипт скомпилировался - но не работает(! То есть я хочу что бы при выполненном квесте при заходе на локацию появлялись нужные мне объекты (телепорты) и появлялось окно с оповещением. Скриптquest property Quest_Name auto message property myMessage auto ObjectReference property Object_Enable auto ObjectReference property Object_Disable auto GlobalVariable property GlobalInt_LoadOnce auto Event OnCellLoad() if Quest_Name.IsCompleted() && GlobalInt_LoadOnce.GetValueInt()==0 Object_Enable.enable() Object_Disable.disable() myMessage.Show(0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000) GlobalInt_LoadOnce.SetValueInt(1) endIf endEvent
werr Опубликовано 16 февраля, 2019 Опубликовано 16 февраля, 2019 15.02.2019 22:17:56, CISCO.:i:..:i:. сказал(-а):У меня вопросСпойлерauto STATE Initial Event OnCellAttach() if Quest_Name.IsCompleted() Object_Enable.enable() Object_Disable.disable() myMessage.Show() GoToState("DONE") endif EndEvent ENDSTATE STATE DONE Event OnBeginState() Delete() EndEvent ENDSTATE Гораздо уместнее использовать OnCellAttach() вместо OnCellLoad(). Вдобавок, убедись, что этот квест вообще помечается игрой как Completed, возможно разумнее проверять по GetStageDone(). Заполнение properties проверь. A Random Dude's Story
Azazellz Опубликовано 16 февраля, 2019 Опубликовано 16 февраля, 2019 Я вообще сомневаюсь, что маркер ивент OnCellLoad получает. Имхо, куда нажнее это вот "включение телепортов" в сам квест встроить.
mr Jyggalag Опубликовано 16 февраля, 2019 Опубликовано 16 февраля, 2019 16.02.2019 15:52:00, Azazellz сказал(-а):Я вообще сомневаюсь, что маркер ивент OnCellLoad получает. Имхо, куда нажнее это вот "включение телепортов" в сам квест встроить.Там помимо включения телепортов ещё же месседж показывается.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти