Собираем рабочие скрипты здесь, большие и малые, легкие и сложные (Новичкам всё трудно). К скрипту прилагаем описание работы. Скрипты оформлять доступно, можно с построчными комментариями. На один пост - один скрипт (Позже, когда тема разрастется, будет сделана навигация по теме с быстрым переходом к постам)
Если скрипт не Ваш (был написан для Вас когда-то в прошлом), указывайте пожалуйста автора.
P.S. Если скрипт не рабочий, Вы пишите об этом здесь. (Только вы должны удостовериться, что скрипт действительно не работает). Далее приводим его в рабочее состояние. В теме соблюдаем чистоту.
P.P.S Оптимизация кода - важный элемент. Если Вы можете оптимизировать работу скрипта, сделайте это и выложите здесь. Исходный скрипт будет обновлен.
#1
Отправлено
- Domastir D'Morte, Gorv, werr и 4 другим это нравится
#2
Отправлено
Скрипт для контейнера, принимающего определенный тип вещей. Кейворды типов вещей формировать в 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
- verflught это нравится
#3
Отправлено
Скрипт для элемента брони\оружия. Добавляет способность\заклинание игроку при экипировке, удаляет при снятии.
;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
- Ronnie Magnum, Painterman, verflught и еще 1 это нравится
#4
Отправлено
Скрипт для получения игроком некоторых ресурсов при активации. Максимальное количество ресурсов задается в виде параметра. Скрипт восстанавливает ресурсы через определенное количество часов.
Переменные:
- 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
#5
Отправлено
Простейший скрипт добавления предмета игроку.
; extends ObjectReference Miscobject property MoyPredmet auto {объявление переменной типа MiscObject MoyPredmet. Данная переменная устанавливается в окне редактора, на конкретной копии объекта или на базовом объекте, кнопка Properties} Event OnActivate (ObjectReference akActionRef) {Обработка события Activate, где akActionRef - актер, активирующий данный объект} game.getplayer().additem(MoyPredmet, 1) {Добавление предмета MoyPredmet в инвентарь игроку в кол-ве одна штука} endevent
Автор - Bartolomeo
- verflught это нравится
#6
Отправлено
Скрипт для контейнера, в который нельзя ничего положить, но можно брать.
; 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
- verflught это нравится
#7
Отправлено
Простейший скрипт блокировки двери\контейнера
; extends ObjectReference Event OnInit() BlockActivation() EndEvent Event OnActivate (ObjectReference akActionRef) Debug.MessageBox("Закрыто") endEvent
Автор - Umbakano Jr
#8
Отправлено
Скрипт для проверки игрока по расе, для совершения каких-то действий. В примере 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
- verflught и миротворец35 нравится это
#9
Отправлено
Простейший скрипт для переброски предметов из одного сундука в другой.
false - собственность не менять
true - и квестовые предметы тоже
Event OnActivate(ObjectReference akActionRef) akChest.RemoveAllItems(akChestTarget, false, true) EndEvent
Автор - AleksTirex
- verflught это нравится
#10
Отправлено
После прочтения книги Гг добавляется перк.
; extends ObjectReference Perk Property Ваш перк Auto event onRead() Game.GetPlayer().AddPerk(Ваш перк) endEvent
- -Miro- и mr Jyggalag нравится это
#11
Отправлено
После прочтения книги Гг добавляется перк.
; extends ObjectReference Perk Property Ваш перк Auto event onRead() Game.GetPlayer().AddPerk(Ваш перк) endEvent
Есть скрипт на увеличение количества добываемой руды с жилы? А также увеличение скорости добычи, но это не обязательно. Спасибо.
- Aryl Ksen это нравится
#13
Отправлено
Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу.
"Следуй за мной" можно подсмотреть в ванилле, а про одёжку... не скажу точно, но вроде игра сама как-то определяет, что носит спутник. Броню - по рейтингу защиты, оружие - по дамагу.
- Nibiro13 это нравится
————————————
don't forget your falls
————————————
#14
Отправлено
FollowMe - как сказал Зато, есть в КС. Снарягу спутника определяет ИИ - на каждый свободный слот берет лучшее по циферкам. Скрипты на кастомный гардероб можно подсмотреть в любом топовом компаньонском моде на Нексусе - там два десятка вариантов на все случаи жизни.Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу.
На количество здесь - http://www.nexusmods...im/mods/54127/?Есть скрипт на увеличение количества добываемой руды с жилы? А также увеличение скорости добычи, но это не обязательно. Спасибо.
На скорость не встречал. Только форсированное перемещение содержимого в инвентарь с одного удара либо вообще без запуска анимации.
Сообщение отредактировал Autum Traveller: 19 февраля 2017 - 06:53
#15
Отправлено
Нужен скрипт на забирание предмета из инвентаря ГГ и выдачу других. Основа скрипта как трасмутация руды, т.е. есть х-объект, то выдаем у-объект, если есть у-объект выдаем z. Так же важно, чтобы скрипт мог забирать и выдавать несколько предметов. Делаю мод и хочу привязать его к активатору/магии/двери.
#16
Отправлено
"Следуй за мной" можно подсмотреть в ванилле, а про одёжку... не скажу точно, но вроде игра сама как-то определяет, что носит спутник. Броню - по рейтингу защиты, оружие - по дамагу.
FollowMe - как сказал Зато, есть в КС. Снарягу спутника определяет ИИ - на каждый свободный слот берет лучшее по циферкам. Скрипты на кастомный гардероб можно подсмотреть в любом топовом компаньонском моде на Нексусе - там два десятка вариантов на все случаи жизни
Так в том то и дело что не идёт зараза. Там в скрипте прописано (DialogueFollower Script) мол как ресурс используется. А посмотрел в модах на компанов, там вообще другие скрипты свои причём..вобщем благодарю. буду разбираться.
#17
Отправлено
Простейший скрипт блокировки двери\контейнера
; extends ObjectReference Event OnInit() BlockActivation() EndEvent Event OnActivate (ObjectReference akActionRef) Debug.MessageBox("Закрыто") endEventАвтор - Umbakano Jr
Подскажите а статус скрипта Hidden должен быть при прописи? Это вообще для Ская скрипт? или для Обливиона? Просто на папирус неочень похож
Сообщение отредактировал Nibiro13: 29 июня 2017 - 18:25
Темы с аналогичным тегами papyrus, collection, скрипты, готовые решения, моддинг
Моддинг →
Моддинг Oblivion →
Скрипт Для СнаряженияАвтор БесездаБойчик, 07 сен 2022 скрипты, скрипт |
|
|||
Моддинг →
Моддинг Skyrim →
Заказ на изменение домаАвтор Антенна связи с космосом, 20 апр 2022 моддинг, скайрим и 3 еще... |
|
|||
Моддинг →
Моддинг Fallout →
Мастерская Fallout 4 →
Не могу найти файл TESV_Papyrus_Flags.flgАвтор Bombero_77, 27 мар 2022 papyrus, compiler |
|
|||
Моддинг →
Моддинг Skyrim →
Попытка создания квеста. Требуется помощь...Автор Гадюка Демона, 23 фев 2021 скайрим, помощь и 3 еще... |
|
|||
Моддинг →
Моддинг Skyrim →
Скрипты внезапно начали тупить...Автор Zenturo, 29 окт 2020 skyrim, skyrim le, скрипты |
|
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 скрытых