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

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

Опубликовано

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

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






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

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

  • Нравится 7
Опубликовано

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

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

;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
Опубликовано

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

  • 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
Опубликовано

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

; extends ObjectReference

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

Автор - Bartolomeo

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

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

; 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
Опубликовано

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

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

 

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

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

Автор  - AleksTirex

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

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

; extends ObjectReference 

Perk Property Ваш перк  Auto 
event onRead()
Game.GetPlayer().AddPerk(Ваш перк)
endEvent
  • Нравится 2
  • 1 год спустя...
Опубликовано
07.11.2015 14:51:25, Bald сказал(-а):

 

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

; extends ObjectReference 

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

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

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

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

"Судья и Палач"
Опубликовано
18.02.2017 21:11:43, Nibiro13 сказал(-а):

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

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

  • Нравится 1

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

don't forget your falls

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

Опубликовано (изменено)
18.02.2017 21:11:43, Nibiro13 сказал(-а):

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

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

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

На количество здесь - http://www.nexusmods.com/skyrim/mods/54127/?
На скорость не встречал. Только форсированное перемещение содержимого в инвентарь с одного удара либо вообще без запуска анимации. Изменено пользователем Autum Traveller
  • 1 месяц спустя...
Опубликовано

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

  • 2 месяца спустя...
Опубликовано
18.02.2017 22:25:36, Zato сказал(-а):

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

 

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

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

"Судья и Палач"
Опубликовано (изменено)
03.10.2015 11:07:53, Dimonoider сказал(-а):

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

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

Автор - Umbakano Jr

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

Изменено пользователем Nibiro13
"Судья и Палач"
Опубликовано
29.06.2017 17:24:09, Nibiro13 сказал(-а):

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

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

  • Нравится 1
Опубликовано
29.06.2017 18:14:12, Dimonoider сказал(-а):

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

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

"Судья и Палач"
Опубликовано

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

"Судья и Палач"
  • 9 месяцев спустя...
Опубликовано

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

Опубликовано
14.04.2018 13:38:28, Камиль сказал(-а):

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


Тебе нужен не скрипт, а перк, что будет делить на ноль входящий урон (entry point), при условии, что текущий уровень здоровья 50 ед.
Опубликовано
14.04.2018 19:31:14, werr сказал(-а):

Тебе нужен не скрипт, а перк, что будет делить на ноль входящий урон (entry point), при условии, что текущий уровень здоровья 50 ед.

 

Разобрался как сделать перк с защитой от урона от атак и от заклинаний (Mod incoming Damage, Mod incoming Spell Magnitude)/ А как убрать урон от падения и от утопления? т.е. не связанный с атаками.

  • Нравится 1
Опубликовано
15.04.2018 10:22:42, Камиль сказал(-а):

Разобрался как сделать перк с защитой от урона от атак и от заклинаний (Mod incoming Damage, Mod incoming Spell Magnitude)/ А как убрать урон от падения и от утопления? т.е. не связанный с атаками.

Не скажу так сходу, надо думать.
Опубликовано
От падения так же - в перках должен быть modify falling damage.
От утопления - сделать спелл-абилити водного дыхания, который будет "включаться" (через кондишны) когда у персонажа хп нижу определенного порога.
Выдавать этот спелл тем же перком.

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

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

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

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

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

Войти

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

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