Перейти к содержимому


Фотография

Каталог готовых скриптов

papyrus collection скрипты готовые решения моддинг

  • Авторизуйтесь для ответа в теме

#1 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Собираем рабочие скрипты здесь, большие и малые, легкие и сложные (Новичкам всё трудно). К скрипту прилагаем описание работы. Скрипты оформлять доступно, можно с построчными комментариями. На один пост - один скрипт (Позже, когда тема разрастется, будет сделана навигация по теме с быстрым переходом к постам)

Если скрипт не Ваш (был написан для Вас когда-то в прошлом), указывайте пожалуйста автора.






P.S. Если скрипт не рабочий, Вы пишите об этом здесь. (Только вы должны удостовериться, что скрипт действительно не работает). Далее приводим его в рабочее состояние. В теме соблюдаем чистоту.

P.P.S Оптимизация кода - важный элемент. Если Вы можете оптимизировать работу скрипта, сделайте это и выложите здесь. Исходный скрипт будет обновлен.




  • Авторизуйтесь для ответа в теме
Сообщений в теме: 50

#2 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Скрипт для контейнера, принимающего определенный тип вещей. Кейворды типов вещей формировать в 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



#3 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Скрипт для элемента брони\оружия. Добавляет способность\заклинание игроку при экипировке, удаляет при снятии. 
 

;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

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Скрипт для получения игроком некоторых ресурсов при активации. Максимальное количество ресурсов задается в виде параметра. Скрипт восстанавливает ресурсы через определенное количество часов.
Переменные:

  • 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 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Простейший скрипт добавления предмета игроку.
 

; extends ObjectReference

Miscobject property MoyPredmet auto
{объявление переменной типа MiscObject MoyPredmet.
Данная переменная устанавливается в окне редактора, на конкретной копии объекта
или на базовом объекте, кнопка Properties}
Event OnActivate (ObjectReference akActionRef)
{Обработка события Activate, где akActionRef - актер, активирующий данный объект}
game.getplayer().additem(MoyPredmet, 1)
{Добавление предмета MoyPredmet в инвентарь игроку в кол-ве одна штука}
endevent

Автор - Bartolomeo



#6 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Скрипт для контейнера, в который нельзя ничего положить, но можно брать.
 

; 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



#7 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Простейший скрипт блокировки двери\контейнера

; extends ObjectReference
Event OnInit()
BlockActivation()
EndEvent
Event OnActivate (ObjectReference akActionRef)
Debug.MessageBox("Закрыто")
endEvent

Автор - Umbakano Jr



#8 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Скрипт для проверки игрока по расе, для совершения каких-то действий. В примере 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



#9 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Простейший скрипт для переброски предметов из одного сундука в другой.

 

false - собственность не менять
true - и квестовые предметы тоже

Event OnActivate(ObjectReference akActionRef)
  akChest.RemoveAllItems(akChestTarget, false, true)
EndEvent

Автор  - AleksTirex



#10 Ссылка на это сообщение Bald

Bald
  • Скиталец
  • 31 сообщений

Отправлено

После прочтения книги Гг добавляется перк.

; extends ObjectReference 

Perk Property Ваш перк  Auto 
event onRead()
Game.GetPlayer().AddPerk(Ваш перк)
endEvent


#11 Ссылка на это сообщение Nacht Sterben

Nacht Sterben
  • Новенький
  • 3 сообщений
  •  

Отправлено

 

После прочтения книги Гг добавляется перк.

; extends ObjectReference 

Perk Property Ваш перк  Auto 
event onRead()
Game.GetPlayer().AddPerk(Ваш перк)
endEvent

Есть скрипт на увеличение количества добываемой руды с жилы? А также увеличение скорости добычи, но это не обязательно. Спасибо.



#12 Ссылка на это сообщение Nibiro13

Nibiro13
  • Аватар пользователя Nibiro13
  • Автор
  • 270 сообщений
  •    

Отправлено

Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу.


"Судья и Палач"

#13 Ссылка на это сообщение Zato

Zato
  • Аватар пользователя Zato
  • Новенький
  • 3 сообщений

Отправлено

Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу.

"Следуй за мной" можно подсмотреть в ванилле, а про одёжку... не скажу точно, но вроде игра сама как-то определяет, что носит спутник. Броню - по рейтингу защиты, оружие - по дамагу.


————————————

don't forget your falls

————————————


#14 Ссылка на это сообщение Autum Traveller

Autum Traveller
  • Скиталец
  • 34 сообщений

Отправлено

Бойцы а знаете скрипт на смену аутфита спутника и на Следуй за мной?..уже 3 месяца парюсь никак натйи не могу.

FollowMe - как сказал Зато, есть в КС. Снарягу спутника определяет ИИ - на каждый свободный слот берет лучшее по циферкам. Скрипты на кастомный гардероб можно подсмотреть в любом топовом компаньонском моде на Нексусе - там два десятка вариантов на все случаи жизни.

Есть скрипт на увеличение количества добываемой руды с жилы? А также увеличение скорости добычи, но это не обязательно. Спасибо.

На количество здесь - http://www.nexusmods...im/mods/54127/?
На скорость не встречал. Только форсированное перемещение содержимого в инвентарь с одного удара либо вообще без запуска анимации.

Сообщение отредактировал Autum Traveller: 19 февраля 2017 - 06:53


#15 Ссылка на это сообщение Nacht Sterben

Nacht Sterben
  • Новенький
  • 3 сообщений
  •  

Отправлено

Нужен скрипт на забирание предмета из инвентаря ГГ и выдачу других. Основа скрипта как трасмутация руды, т.е. есть х-объект, то выдаем у-объект, если есть у-объект выдаем z. Так же важно, чтобы скрипт мог забирать и выдавать несколько предметов. Делаю мод и хочу привязать его к активатору/магии/двери.



#16 Ссылка на это сообщение Nibiro13

Nibiro13
  • Аватар пользователя Nibiro13
  • Автор
  • 270 сообщений
  •    

Отправлено

"Следуй за мной" можно подсмотреть в ванилле, а про одёжку... не скажу точно, но вроде игра сама как-то определяет, что носит спутник. Броню - по рейтингу защиты, оружие - по дамагу.

 

FollowMe - как сказал Зато, есть в КС. Снарягу спутника определяет ИИ - на каждый свободный слот берет лучшее по циферкам. Скрипты на кастомный гардероб можно подсмотреть в любом топовом компаньонском моде на Нексусе - там два десятка вариантов на все случаи жизни

Так  в том то и дело что не идёт зараза. Там в скрипте прописано (DialogueFollower Script) мол как ресурс используется. А посмотрел в модах на компанов, там вообще другие скрипты свои причём..вобщем благодарю. буду разбираться.


"Судья и Палач"

#17 Ссылка на это сообщение Nibiro13

Nibiro13
  • Аватар пользователя Nibiro13
  • Автор
  • 270 сообщений
  •    

Отправлено

Простейший скрипт блокировки двери\контейнера

; extends ObjectReference
Event OnInit()
BlockActivation()
EndEvent
Event OnActivate (ObjectReference akActionRef)
Debug.MessageBox("Закрыто")
endEvent

Автор - Umbakano Jr

Подскажите а статус скрипта Hidden должен быть при прописи? Это вообще для Ская скрипт? или для Обливиона? Просто на папирус неочень похож


Сообщение отредактировал Nibiro13: 29 июня 2017 - 18:25

"Судья и Палач"

#18 Ссылка на это сообщение Potatoider

Potatoider
  • Знаменитый оратор


  • 4 350 сообщений
  •    

Отправлено

Подскажите а статус скрипта Hidden должен быть при прописи? Это вообще для Ская скрипт? или для Обливиона? Просто на папирус неочень похож

Нет, тут всё для скайрима. Скрипт вешается на сам контейнер



#19 Ссылка на это сообщение Nibiro13

Nibiro13
  • Аватар пользователя Nibiro13
  • Автор
  • 270 сообщений
  •    

Отправлено

Нет, тут всё для скайрима. Скрипт вешается на сам контейнер

Ну я на дверь хочу поставить. Благодарю!


"Судья и Палач"

#20 Ссылка на это сообщение Nibiro13

Nibiro13
  • Аватар пользователя Nibiro13
  • Автор
  • 270 сообщений
  •    

Отправлено

Товарищи! Подскажите пожалуйста, как в Ките изменить рус язык на англ? чтобы все русские слова стали английскими. Очень нужно. Я менял язык в ини файле игры добавлял sConsole=ENGLISH , но он не меняется.


"Судья и Палач"





Темы с аналогичным тегами papyrus, collection, скрипты, готовые решения, моддинг

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых