Potatoider Опубликовано 1 октября, 2015 Опубликовано 1 октября, 2015 Собираем рабочие скрипты здесь, большие и малые, легкие и сложные (Новичкам всё трудно). К скрипту прилагаем описание работы. Скрипты оформлять доступно, можно с построчными комментариями. На один пост - один скрипт (Позже, когда тема разрастется, будет сделана навигация по теме с быстрым переходом к постам) Если скрипт не Ваш (был написан для Вас когда-то в прошлом), указывайте пожалуйста автора. P.S. Если скрипт не рабочий, Вы пишите об этом здесь. (Только вы должны удостовериться, что скрипт действительно не работает). Далее приводим его в рабочее состояние. В теме соблюдаем чистоту. P.P.S Оптимизация кода - важный элемент. Если Вы можете оптимизировать работу скрипта, сделайте это и выложите здесь. Исходный скрипт будет обновлен. 7
Potatoider Опубликовано 1 октября, 2015 Автор Опубликовано 1 октября, 2015 Скрипт для контейнера, принимающего определенный тип вещей. Кейворды типов вещей формировать в FormList'ы. К примеру Formlist с кейвордом LightArmor. Или Potions. Или кейворды только даэдрических вещей. Все на ваше усмотрение. ; extends ObjectReference FormList Property ItemsType01 Auto Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) If akSourceContainer == Game.GetPlayer() int i = ItemsType01.GetSize() While i > 0 i -= 1 if akBaseItem.HasKeyword(ItemsType01.GetAt(i) as Keyword) Return endif EndWhile RemoveItem(akBaseItem, aiItemCount, True, akSourceContainer) Debug.Trace("Invalid Item") Endif EndEvent Автор - Umbakano Jr 1
Potatoider Опубликовано 1 октября, 2015 Автор Опубликовано 1 октября, 2015 Скрипт для элемента брони\оружия. Добавляет способность\заклинание игроку при экипировке, удаляет при снятии. ;extends ObjectReference Spell addedSpell Auto; Добавляем эффект при одевании предмета игроком Event OnEquipped(Actor akActor) If akActor == Game.GetPlayer() akActor.AddSpell(addedSpell, false) EndIf EndEvent; Убираем эффект при снятии предмета игроком Event OnUnequipped(Actor akActor) If akActor == Game.GetPlayer() akActor.RemoveSpell(addedSpell) EndIf EndEvent Автор - YourBunnyWrote 4
Potatoider Опубликовано 2 октября, 2015 Автор Опубликовано 2 октября, 2015 Скрипт для получения игроком некоторых ресурсов при активации. Максимальное количество ресурсов задается в виде параметра. Скрипт восстанавливает ресурсы через определенное количество часов. Переменные: idleExit - анимация, которую проигрывает игрок (Например IdlePickup_ground) resource - объект, который добавляется игроку в инвентарь (к примеру, бутылка воды) count - кол-во "ресурса" в активаторе myresourceCount - кол-во ресурсов, которое выдается за один подход dayly - флаг вкл/вкл multiRes - кол-во ресурсов, которое активатор восстаналивает за один период multHour - длина одного периода восстановления в часах При активации выдает сообщение формы (String01+Число-Полученных-Ресурсов+String02+Кол-во-оставшихся ресурсов) Например для колодца: String01="Вы получили ", String02=" бутылок воды. Осталось в колодце:". Итоговое сообщение: "Вы получили 5 бутылок воды. Осталось в колодце: 15" Если ресурсов в активаторе недостаточно, выводит предупреждение Warning. Например, для колодца Warning="В колодце недостаточно воды, подождите, пока она появится вновь". ; extends ObjectReference idle property idleExit auto miscobject property resource auto int property count = 10 auto int property myresourceCount = 1 auto bool property dayly = true auto int property multiRes = 1 auto int property multHour =1 auto String property String01 auto String property String02 auto String property Warning auto int count01 int hoursImport Utility Import Mathevent onload() Hours = floor(GetCurrentGameTime()*24) count01=count endevent Event OnActivate(ObjectReference akActionRef) BlockActivation(true) if (hours)+multHour <= (floor(GetCurrentGameTime()*24)) && (Count01<count) count01=count01+multiRes*(floor(GetCurrentGameTime()*24)-hours) hours=floor(GetCurrentGameTime()*24) endif ;debug.Messagebox(count01+" "+hours+" "+(floor(GetCurrentGameTime())*24)) if count01>0 if count01>count count01=count endif dayly=true if (akActionRef==game.getPLayer()) && dayly && (count01>=myResourceCount) game.getplayer().PlayIdle(IdleExit) wait(2) game.getPLayer().additem(Resource, myResourceCount) count01 = count01 - myResourcecount debug.messagebox(String01+" "+myResourceCount+" "+String02+count01) endif elseif (count01<=0)||(count01<=myResourceCount) dayly=false debug.messagebox(Warning) endif BlockActivation(false) endevent Автор - Bartolomeo 2
Potatoider Опубликовано 2 октября, 2015 Автор Опубликовано 2 октября, 2015 Простейший скрипт добавления предмета игроку. ; extends ObjectReference Miscobject property MoyPredmet auto {объявление переменной типа MiscObject MoyPredmet. Данная переменная устанавливается в окне редактора, на конкретной копии объекта или на базовом объекте, кнопка Properties} Event OnActivate (ObjectReference akActionRef) {Обработка события Activate, где akActionRef - актер, активирующий данный объект} game.getplayer().additem(MoyPredmet, 1) {Добавление предмета MoyPredmet в инвентарь игроку в кол-ве одна штука} endevent Автор - Bartolomeo 1
Potatoider Опубликовано 3 октября, 2015 Автор Опубликовано 3 октября, 2015 Скрипт для контейнера, в который нельзя ничего положить, но можно брать. ; extends ObjectReference Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer) if !akSourceContainer ; здесь для ситуации, когда выбросили предмет в мир elseif akSourceContainer == Game.GetPlayer() ; здесь игрок добавляет в контейнер, поэтому, этот предмет удаляем и добавляем его обратно игроку self.RemoveItem(akBaseItem, aiItemCount) Game.GetPlayer().AddItem(akBaseItem, aiItemCount, true) else ; здесь для ситуации, когда игрок получает от другого контейнера endIf endEvent Автор - Umbakano Jr 1
Potatoider Опубликовано 3 октября, 2015 Автор Опубликовано 3 октября, 2015 Простейший скрипт блокировки двери\контейнера ; extends ObjectReference Event OnInit() BlockActivation() EndEvent Event OnActivate (ObjectReference akActionRef) Debug.MessageBox("Закрыто") endEvent Автор - Umbakano Jr 2
Potatoider Опубликовано 3 октября, 2015 Автор Опубликовано 3 октября, 2015 Скрипт для проверки игрока по расе, для совершения каких-то действий. В примере 4 расы. Проверка при входе в триггер, при выходе общее действие рассчитанное на любую игровую расу. Скрипт вешается на триггер. ; extends ObjectReference Race Property NordRace Auto Race Property ArgonianRace Auto Race Property BretonRace Auto Race Property HighElfRace Auto Event OnTriggerEnter(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() If Game.GetPlayer().GetRace() == NordRace ; действие ElseIf Game.GetPlayer().GetRace() == ArgonianRace ; действие ElseIf Game.GetPlayer().GetRace() == BretonRace ; действие ElseIf Game.GetPlayer().GetRace() == HighElfRace ; действие EndIf EndIf EndEvent Event OnTriggerLeave(ObjectReference akActionRef) If akActionRef == Game.GetPlayer() ; действие EndIf EndEvent Автор - Umbakano Jr 2
Potatoider Опубликовано 6 октября, 2015 Автор Опубликовано 6 октября, 2015 Простейший скрипт для переброски предметов из одного сундука в другой. false - собственность не менять true - и квестовые предметы тоже Event OnActivate(ObjectReference akActionRef) akChest.RemoveAllItems(akChestTarget, false, true) EndEvent Автор - AleksTirex 1
Bald Опубликовано 7 ноября, 2015 Опубликовано 7 ноября, 2015 После прочтения книги Гг добавляется перк. ; extends ObjectReference Perk Property Ваш перк Auto event onRead() Game.GetPlayer().AddPerk(Ваш перк) endEvent 2
Nacht Sterben Опубликовано 17 февраля, 2017 Опубликовано 17 февраля, 2017 07.11.2015 14:51:25, Bald сказал(-а): После прочтения книги Гг добавляется перк. ; extends ObjectReference Perk Property Ваш перк Auto event onRead() Game.GetPlayer().AddPerk(Ваш перк) endEvent Есть скрипт на увеличение количества добываемой руды с жилы? А также увеличение скорости добычи, но это не обязательно. Спасибо. 1
Nibiro13 Опубликовано 18 февраля, 2017 Опубликовано 18 февраля, 2017 Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу. "Судья и Палач"
Zato Опубликовано 18 февраля, 2017 Опубликовано 18 февраля, 2017 18.02.2017 21:11:43, Nibiro13 сказал(-а): Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу. "Следуй за мной" можно подсмотреть в ванилле, а про одёжку... не скажу точно, но вроде игра сама как-то определяет, что носит спутник. Броню - по рейтингу защиты, оружие - по дамагу. 1 ————————————don't forget your falls————————————
Autum Traveller Опубликовано 19 февраля, 2017 Опубликовано 19 февраля, 2017 (изменено) 18.02.2017 21:11:43, Nibiro13 сказал(-а):Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу.FollowMe - как сказал Зато, есть в КС. Снарягу спутника определяет ИИ - на каждый свободный слот берет лучшее по циферкам. Скрипты на кастомный гардероб можно подсмотреть в любом топовом компаньонском моде на Нексусе - там два десятка вариантов на все случаи жизни.17.02.2017 13:47:37, Nacht Sterben сказал(-а):Есть скрипт на увеличение количества добываемой руды с жилы? А также увеличение скорости добычи, но это не обязательно. Спасибо.На количество здесь - http://www.nexusmods.com/skyrim/mods/54127/?На скорость не встречал. Только форсированное перемещение содержимого в инвентарь с одного удара либо вообще без запуска анимации. Изменено 19 февраля, 2017 пользователем Autum Traveller
Nacht Sterben Опубликовано 4 апреля, 2017 Опубликовано 4 апреля, 2017 Нужен скрипт на забирание предмета из инвентаря ГГ и выдачу других. Основа скрипта как трасмутация руды, т.е. есть х-объект, то выдаем у-объект, если есть у-объект выдаем z. Так же важно, чтобы скрипт мог забирать и выдавать несколько предметов. Делаю мод и хочу привязать его к активатору/магии/двери.
Nibiro13 Опубликовано 29 июня, 2017 Опубликовано 29 июня, 2017 18.02.2017 22:25:36, Zato сказал(-а): "Следуй за мной" можно подсмотреть в ванилле, а про одёжку... не скажу точно, но вроде игра сама как-то определяет, что носит спутник. Броню - по рейтингу защиты, оружие - по дамагу. 19.02.2017 05:52:45, Autum Traveller сказал(-а):FollowMe - как сказал Зато, есть в КС. Снарягу спутника определяет ИИ - на каждый свободный слот берет лучшее по циферкам. Скрипты на кастомный гардероб можно подсмотреть в любом топовом компаньонском моде на Нексусе - там два десятка вариантов на все случаи жизни Так в том то и дело что не идёт зараза. Там в скрипте прописано (DialogueFollower Script) мол как ресурс используется. А посмотрел в модах на компанов, там вообще другие скрипты свои причём..вобщем благодарю. буду разбираться. "Судья и Палач"
Nibiro13 Опубликовано 29 июня, 2017 Опубликовано 29 июня, 2017 (изменено) 03.10.2015 11:07:53, Dimonoider сказал(-а): Простейший скрипт блокировки двери\контейнера ; extends ObjectReference Event OnInit() BlockActivation() EndEvent Event OnActivate (ObjectReference akActionRef) Debug.MessageBox("Закрыто") endEvent Автор - Umbakano Jr Подскажите а статус скрипта Hidden должен быть при прописи? Это вообще для Ская скрипт? или для Обливиона? Просто на папирус неочень похож Изменено 29 июня, 2017 пользователем Nibiro13 "Судья и Палач"
Potatoider Опубликовано 29 июня, 2017 Автор Опубликовано 29 июня, 2017 29.06.2017 17:24:09, Nibiro13 сказал(-а): Подскажите а статус скрипта Hidden должен быть при прописи? Это вообще для Ская скрипт? или для Обливиона? Просто на папирус неочень похож Нет, тут всё для скайрима. Скрипт вешается на сам контейнер 1
Nibiro13 Опубликовано 29 июня, 2017 Опубликовано 29 июня, 2017 29.06.2017 18:14:12, Dimonoider сказал(-а): Нет, тут всё для скайрима. Скрипт вешается на сам контейнер Ну я на дверь хочу поставить. Благодарю! "Судья и Палач"
Nibiro13 Опубликовано 4 июля, 2017 Опубликовано 4 июля, 2017 Товарищи! Подскажите пожалуйста, как в Ките изменить рус язык на англ? чтобы все русские слова стали английскими. Очень нужно. Я менял язык в ини файле игры добавлял sConsole=ENGLISH , но он не меняется. "Судья и Палач"
Камиль Опубликовано 14 апреля, 2018 Опубликовано 14 апреля, 2018 Нужен скрипт на невозможность снижения уровня здоровья ниже определенной отметки. т.е. если здоровье достигло например 50-и единиц, то потеря здоровья останавливается даже если полученный урон гораздо больше. Как пример при падении с любой высоты что бы оставалось определенное количество жизни.
werr Опубликовано 14 апреля, 2018 Опубликовано 14 апреля, 2018 14.04.2018 13:38:28, Камиль сказал(-а):Нужен скрипт на невозможность снижения уровня здоровья ниже определенной отметки. т.е. если здоровье достигло например 50-и единиц, то потеря здоровья останавливается даже если полученный урон гораздо больше. Как пример при падении с любой высоты что бы оставалось определенное количество жизни. Тебе нужен не скрипт, а перк, что будет делить на ноль входящий урон (entry point), при условии, что текущий уровень здоровья 50 ед. A Random Dude's Story
Камиль Опубликовано 15 апреля, 2018 Опубликовано 15 апреля, 2018 14.04.2018 19:31:14, werr сказал(-а): Тебе нужен не скрипт, а перк, что будет делить на ноль входящий урон (entry point), при условии, что текущий уровень здоровья 50 ед. Разобрался как сделать перк с защитой от урона от атак и от заклинаний (Mod incoming Damage, Mod incoming Spell Magnitude)/ А как убрать урон от падения и от утопления? т.е. не связанный с атаками. 1
werr Опубликовано 15 апреля, 2018 Опубликовано 15 апреля, 2018 15.04.2018 10:22:42, Камиль сказал(-а):Разобрался как сделать перк с защитой от урона от атак и от заклинаний (Mod incoming Damage, Mod incoming Spell Magnitude)/ А как убрать урон от падения и от утопления? т.е. не связанный с атаками.Не скажу так сходу, надо думать. A Random Dude's Story
Azazellz Опубликовано 15 апреля, 2018 Опубликовано 15 апреля, 2018 От падения так же - в перках должен быть modify falling damage.От утопления - сделать спелл-абилити водного дыхания, который будет "включаться" (через кондишны) когда у персонажа хп нижу определенного порога.Выдавать этот спелл тем же перком.
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти