Модератор форума: Kris†a™  
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)

Вопросы по скриптам Papyrus
sansuli  Offline  Сообщение №1 написано: 31 августа 2012, 13:29 | Отредактировано: Multigone - 23 апреля 2020, 14:24


The Red Sun


193
Уроки по скриптованию на языке Papyrus
Прежде чем задать вопрос просмотрите вышеуказанные уроки.
ok


Тема регламентирована.


• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней.
• Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней.
• При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС.
• При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "
+" полезного сообщения.

Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
BigGreenDamo  Offline  Сообщение №151 написано: 12 февраля 2013, 03:17



7
Цитата sansuli

BigGreenDamo, надо зарегистрироватся на Нексусе и нажать на Dawnload



я там пытался регестрироватся но чето не проходит (чето с почтой тупит)
а нет сылочки на скачку без регестрации а то там муть полная с их регестрацией

sansuli  Offline  Сообщение №152 написано: 12 февраля 2013, 05:19


The Red Sun


193
BigGreenDamo, вот перезалил ссылку на Яндекс.Диск

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
BigGreenDamo  Offline  Сообщение №153 написано: 13 февраля 2013, 05:45 | Отредактировано: Kris†a™ - 16 февраля 2013, 10:22



7
спс скачал

Добавлено (13.02.2013, 09:45)
---------------------------------------------
такой вопрос скачал мод Third Era Attributes for Skyrim: (возвращает атрибуты силу ловкость выносливость и т д)
там 3 файла esp + папка скрипт в которой скрипты котрые в формате pex как я понял они скомпелированы уже) и папка сорсе исходники  формат psc
пример я хочу изменить значение которое записано в скрипте
то есть мне нужно взять файл формате pex декомпилировать патом изменить код скрипта и заново скомпелировать ?
или можно взять исходник формат psc изменить код а патом скомпелировать ?

и еще вопросик NotePad++ может компелировать или нет?

sansuli  Offline  Сообщение №154 написано: 13 февраля 2013, 10:27 | Отредактировано: sansuli - 13 февраля 2013, 10:28


The Red Sun


193
BigGreenDamo,
Цитата BigGreenDamo

NotePad++ может компелировать или нет?

теоретически может, там надо его настраивать, ищи в нете, я тоже это сделаю, если найду как это делать то запишу это в шапку темы.
Просто возьми и измени формат PSC, и при компиляции Компилятор сам автоматически создаст PEX или заменит если уже есть.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
BigGreenDamo  Offline  Сообщение №155 написано: 13 февраля 2013, 13:58 | Отредактировано: Kris†a™ - 16 февраля 2013, 10:24



7
ок
а если в Microsoft Visual Studio скомпилить? в свое время изучал С++ (по книгам)

sansuli  Offline  Сообщение №156 написано: 16 февраля 2013, 09:39


The Red Sun


193
BigGreenDamo, не знаю, при установке Creation Kit в папке с игрой появляется папка Papyrus Compile, и содержимое его как то надо подключить к NotePad++, вот я не знаю как.

Добавлено (16.02.2013, 13:39)
---------------------------------------------

Цитата sansuli

не знаю, при установке Creation Kit в папке с игрой появляется папка Papyrus Compile, и содержимое его как то надо подключить к NotePad++, вот я не знаю как.



Нашел способ компиляции скриптов Papyrus с помощью NotePad++. Смотрим в шапке темы.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Arkan000  Offline  Сообщение №157 написано: 20 февраля 2013, 16:14



14
Цитата sansuli

Нашел способ компиляции скриптов Papyrus с помощью NotePad++. Смотрим в шапке темы.

Способ работает, спасибо! good
А не в курсе, есть ли какая более полная литература по Papyrus, а то в инете далее "Hello world", ничего нет. 

P.S. Полная в смысле с описанием функций, событий и т.д.

sansuli  Offline  Сообщение №158 написано: 21 февраля 2013, 12:12


The Red Sun


193
Arkan000, в шапке темы ссылка На Papyrus базовая информация, объясняет на пальцах

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Arkan000  Offline  Сообщение №159 написано: 23 февраля 2013, 12:59



14
Цитата sansuli

в шапке темы ссылка На Papyrus базовая информация, объясняет на пальцах

Спасибо, я смотрел. Но имелось ввиду типа как в книге " Базовый курс скриптинга TES 4 Oblivion", просто в tiarum.com пока всего нет, много функций не описано, только названия.

Semivivo  Offline  Сообщение №160 написано: 24 февраля 2013, 18:27



6
Подскажите пожалуйста, можно ли реализовать скрипт, увеличивающий здоровье и ману игрока при экипировании определенного оружия?

PaukSama  Offline  Сообщение №161 написано: 2 марта 2013, 17:05


Прячущий свое сердце


Semivivo, пришел на ум шлем из драгонборн который при экипировке дает заклинание. Можно взять скрипт с него а заклинание свое приделать.

Отними у меня апельсин - и я тебя убью
Съешь мой апельсин - и я тебя убью
Подари мне апельсин - и... я тебя убью
Мне не нужен никто, лишь мой апельсин
А тот кто не пойман - не ассасин!
Snakesalamandra  Offline  Сообщение №162 написано: 5 марта 2013, 15:28


СУЗИ


295
Цитата Semivivo

Подскажите пожалуйста, можно ли реализовать скрипт, увеличивающий здоровье и ману игрока при экипировании определенного оружия?


Можно но я незнаю как попробуй добавить зачарку на оружие может так полчтся и без скрипта.

Добавлено (05.03.2013, 19:28)
---------------------------------------------
Подскажите пожалуйста как сделат спелл на преврашение в например сприггана или нуу незнаю нетча! 
Чтобы на клавиши аттаки были такие атаки как у непися например я нажимаю ЛКМ и нетч(преврященный ГГ) атакует как нетч НПС. 
Как это сделать? 
Я знаю что это скрипт но ведь есть скрипт на превращение в вервольфа, как его изменить грамотно? 

Пожалуйста подскажите буду очень благодарен. 
Просто очень хочу сделать толковые заклининия превращения!




Играю в Mass Effect 3, пишите в ЛС поиграем вместе!
Insomniac  Offline  Сообщение №163 написано: 5 марта 2013, 22:05 | Отредактировано: Insomniac - 5 марта 2013, 22:09



70
есть у кого нить есть болванка скрипта на проигрывание звукового эффекта при использовании определенного спела?

у меняя заклинание Незаметности (персонаж становится полупрозрачным), которое срабатывает когда персонаж крадется (IsSneaking == 1), и когда в меню Magik Effect ставишь для него определенный звуковой эффект, то он просто напросто не работает((

ЗЫ: пытаюсь запилить в скурим стелс как World of Warcraft

Иsкатель  Offline  Сообщение №164 написано: 6 марта 2013, 02:54



71
1)Как сделать, чтобы когда ГГ
одевал шлем, драугры
перестовали атаковать его и
начнали его защищать?

2)Как сделать, чтобы когда ГГ
одевал шлем, у него пропадала
вся магия и помальньку убывал
запас сил?

sansuli  Offline  Сообщение №165 написано: 6 марта 2013, 08:55 | Отредактировано: sansuli - 7 марта 2013, 07:30


The Red Sun


193
Цитата Иsкатель

2)Как сделать, чтобы когда ГГ
одевал шлем, у него пропадала
вся магия и помальньку убывал
запас сил?

ДЛя этого лучше пользоватся скрытым зачарованием, или создать заклинание, а потом вешать заклинание при экипировке вот таким скриптом:
Spell Property AddedSpell Auto

Event OnEquipped(Actor akActor)
if (!akActor.HasSpell(AddedSpell))
akActor.AddSpell(AddedSpell)
endif
EndEvent

Event OnUnEquipped(Actor akActor)
if (akActor.HasSpell(AddedSpell))
akActor.RemoveSpell(AddedSpell)
endif
EndEvent
Скрипт дает заклинание при экипировке и удаляет при снятии предмета.

Я пару месяцев назад не имел представления как эти скрипты строятся, немножко упорства это исправило, сейчас я немного знаю Papyrus, и изучаю Lua и C++. Если так посмотреть то все языки схожи друг с другом.

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Иsкатель  Offline  Сообщение №166 написано: 6 марта 2013, 10:39 | Отредактировано: Иsкатель - 6 марта 2013, 11:03



71
Как сделать чтобы когда шлем одевает игрок то
1)Как сделать, чтобы когда ГГ одевал шлем, драугры
перестовали атаковать его и
начнали его защищать?

2)Как сделать, чтобы когда ГГ
одевал шлем, у него пропадала
вся магия и помальньку убывал
запас сил?
а если шлем одевает кто-нибудь другой, то он умирает?
И кстати со 2 вопросом я делал так, создал новое зачарование с высасованием магии и запаса сил и повешал его на шлем, в принципе получилось то, что нужно, но с 1 (большим для меня) минусом на игроке синие свечение и искры, и поэтому можно создать собственный Magic Effect поглощающий всю магию, и хотябы 1 единицу запаса сил?

Vren  Offline  Сообщение №167 написано: 6 марта 2013, 17:29



205
Помогите пожалуйста, со скриптами у меня вообще плохенько.
Нужен скрипт, который бы выполнял следующее:
Скажем висит доска на стене. При нажатии "E" на эту доску на нее вешаеться определенный предмет, скажем золотой слиток, в определенном положении. При повторном нажатии, он возвращается в инвентарь.
Пробовал расковырять стенд для кувшина из "Dawnguard" и стойку с оружием, но честно говоря ничего там в скриптах совсем не понял.
Если кому не трудно, можете составить днный скрипт?

Иsкатель  Offline  Сообщение №168 написано: 6 марта 2013, 19:10 | Отредактировано: Иsкатель - 6 марта 2013, 19:11



71
Код
Scriptname LOTDScriptMagicEffectDamageValue extends activemagiceffect    

Float Mag
Float Stam

Event OnEffectStart (Actor akTarget, Actor akCaster)
    if akCaster == Game.GetPlayer()
       int Mag = Game.GetPlayer().GetAV("Magicka")
       int Stam = Game.GetPlayer().GetAV("Stamina")
       akCaster.SetAV("Magicka",Mag / 2)
       akCaster.SetAV("Stamina",Stam / 2)
    endif
endEvent

Event OnEffectFinish (Actor akTarget, Actor akCaster)
    if akCaster == Game.GetPlayer()
       int Mag = Game.GetPlayer().GetAV("Magicka")
       int Stam = Game.GetPlayer().GetAV("Stamina")
       akCaster.SetAV("Magicka",Mag * 2)
       akCaster.SetAV("Stamina",Stam * 2)
    endif
endEvent


Выдает ошибку при компиляции, к сожилению я закрыл кит, и пошел спать=(, и не запомнил точно какая ошибка, помню, что он связана с этими переменными Float Mag, Float Stam. Может у кого-нибудь было что-то подобное, скажите, что делать?

Snakesalamandra  Offline  Сообщение №169 написано: 6 марта 2013, 21:12


СУЗИ


295
Цитата Иsкатель

И кстати со 2 вопросом я делал так, создал новое зачарование с высасованием магии и запаса сил и повешал его на шлем, в принципе получилось то, что нужно, но с 1 (большим для меня) минусом на игроке синие свечение и искры, и поэтому можно создать собственный Magic Effect поглощающий всю магию, и хотябы 1 единицу запаса сил?


Не понял?!
Создай 2 маг эфекта и одному сделай поглошение магии а другому запаса сил, у магии выстави magnitude на 5000 а у запаса сил на 1 и будут тебе счастье!

Добавлено (07.03.2013, 01:12)
---------------------------------------------
Народ подскажите пожалуйста как  грамотно изменить скрипт преврашения в вервольфа на преваршение в ну тролля  а атака пусть будут прежней нужно просто сменить скин.




Играю в Mass Effect 3, пишите в ЛС поиграем вместе!
sansuli  Offline  Сообщение №170 написано: 7 марта 2013, 07:31 | Отредактировано: sansuli - 7 марта 2013, 07:38


The Red Sun


193
Цитата Иsкатель

Выдает ошибку при компиляции, к сожилению я закрыл кит, и пошел спать=(, и не запомнил точно какая ошибка, помню, что он связана с этими переменными Float Mag, Float Stam. Может у кого-нибудь было что-то подобное, скажите, что делать?


Если сверху Float то и вместо Int пиши Float, сори я там с ошибкой написал.
Чтобы убило НПС, надо ввести условие If ElseIf Else EndIf
If akActor == !Game.GetPlayer()
akActor.Kill()
Ну как то так, вроде должно работать не уверен.

Vren, не знаю честно

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Иsкатель  Offline  Сообщение №171 написано: 7 марта 2013, 08:07



71
sansuli, я вот это If akActor == !Game.GetPlayer() изменил на If akActor !=Game.GetPlayer() так же правельно?
Цитата Snakesalamandra

Если сверху Float то и вместо Int пиши Float, сори я там с ошибкой написал.

не помогло, вот скрипт
Код
Scriptname LOTDScriptMagicEffectControlDraugr extends activemagiceffect

int Mag
int Stam

Event OnEffectStart (Actor akTarget, Actor akCaster)
      if akCaster == Game.GetPlayer()
         int Mag = Game.GetPlayer().GetAV("Magicka")
         int Stam = Game.GetPlayer().GetAV("Stamina")
         akCaster.SetAV("Magicka",Mag / 2)
         akCaster.SetAV("Stamina",Stam / 2)
      endif
endEvent

Event OnEffectFinish (Actor akTarget, Actor akCaster)
      if akCaster == Game.GetPlayer()
         int Mag = Game.GetPlayer().GetAV("Magicka")
         int Stam = Game.GetPlayer().GetAV("Stamina")
         akCaster.SetAV("Magicka",Mag * 2)
         akCaster.SetAV("Stamina",Stam * 2)
      endif
endEvent

вот токая ошибка при компиляции: function variable Mag already defined in the containing script :(

Красный шрифт запрещён для пользователей.

Maat

sansuli  Offline  Сообщение №172 написано: 8 марта 2013, 06:07 | Отредактировано: sansuli - 8 марта 2013, 06:08


The Red Sun


193
Иsкатель, Попробуй так

Scriptname LOTDScriptMagicEffectControlDraugr extends activemagiceffect
import Game
float Mag
float Stam
Event OnEffectStart (Actor akTarget, Actor akCaster)
float Mag = Game.GetPlayer().GetBaseActorValue("Magicka")
float Stam = Game.GetPlayer().GetBaseActorValue("Stamina")
GetPlayer().SetAV("Magicka", Mag / 2)
GetPlayer().SetAV("Stamina", Stam / 2)
endEvent

Event OnEffectFinish (Actor akTarget, Actor akCaster)
float Mag = Game.GetPlayer().GetBaseActorValue("Magicka")
float Stam = Game.GetPlayer().GetBaseActorValue("Stamina")
GetPlayer().SetAV("Magicka", Mag * 2)
GetPlayer().SetAV("Stamina", Stam * 2)
endEvent

Красное солнце
Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Insomniac  Offline  Сообщение №173 написано: 10 марта 2013, 08:53 | Отредактировано: Insomniac - 9 марта 2013, 12:29



70
sansuli,  благодарю)
Закиньте пример в шапку темы. Наверняка кому нить пригодится.

Добавлено (10.03.2013, 12:53)
---------------------------------------------
Подскажите пожалуйста как написать скрипт, что бы при использовании боевого спела (например огненный шар) на игрока вешался определенный маг эффект или спелл.

Или после использования определенного спела игрок не мог его использовать повторно в течении N сек (например, как туманная форма лорда вампира)


Snakesalamandra  Offline  Сообщение №174 написано: 11 марта 2013, 08:07


СУЗИ


295
Цитата Insomniac

Подскажите пожалуйста как написать скрипт, что бы при использовании боевого спела (например огненный шар) на игрока вешался определенный маг эффект или спелл. Или после использования определенного спела игрок не мог его использовать повторно в течении N сек (например, как туманная форма лорда вампира)


Можно посмотреть какой скрипт на туманной форме лорда вамнира.



Играю в Mass Effect 3, пишите в ЛС поиграем вместе!
Vren  Offline  Сообщение №175 написано: 17 марта 2013, 13:16



205
Помогите со скриптом. Не могу найти как такой осуществить.

Нужно чтобы при активации предмета в инвентаре проигрывался аудиофайл.

PaukSama  Offline  Сообщение №176 написано: 17 марта 2013, 13:25


Прячущий свое сердце


Vren, так при активации предметов в инвентаре всегда какой нибудт звук проигрывается. На еду звук проглатывания, на оружие звук экипировки. Они разве не привязываются к предмету?

Отними у меня апельсин - и я тебя убью
Съешь мой апельсин - и я тебя убью
Подари мне апельсин - и... я тебя убью
Мне не нужен никто, лишь мой апельсин
А тот кто не пойман - не ассасин!
Vren  Offline  Сообщение №177 написано: 17 марта 2013, 13:41



205
Мне надо создать своего рода аудиодневник, чтобы активировать в инвентаре предмет, и началось проигрывание записи

Иsкатель  Offline  Сообщение №178 написано: 19 марта 2013, 03:58 | Отредактировано: Иsкатель - 19 марта 2013, 04:42



71
Scriptname LOTDScriptMagicEffectControlDraugr extends activemagiceffect
import Game
float Mag
float Stam
Event OnEffectStart (Actor akTarget, Actor akCaster)
float Mag = Game.GetPlayer().GetBaseActorValue("Magicka")
float Stam = Game.GetPlayer().GetBaseActorValue("Stamina")
GetPlayer().SetAV("Magicka", Mag / 2)
GetPlayer().SetAV("Stamina", Stam / 2)
endEvent

Event OnEffectFinish (Actor akTarget, Actor akCaster)
float Mag = Game.GetPlayer().GetBaseActorValue("Magicka")
float Stam = Game.GetPlayer().GetBaseActorValue("Stamina")
GetPlayer().SetAV("Magicka", Mag * 2)
GetPlayer().SetAV("Stamina", Stam * 2)
endEvent

sansuli, спасибо=)

Как сделать чтобы какогда гг одевает шлем, у всех драугров удалялись все фракции и добавлялась другая?

Insomniac  Offline  Сообщение №179 написано: 21 марта 2013, 15:14 | Отредактировано: Insomniac - 21 марта 2013, 15:16



70
Vren,
вот болванка, которую любезно предоставил sansuli.
Цитата sansuli

Scriptname Kirinscript extends ActiveMagicEffect

import utility
import Debug

sound property boltSD auto

Event OnEffectStart(Actor Target, Actor Caster)
boltSD.play(Caster)
EndEvent



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

Код
Scriptname testscript extends ObjectReference    

import utility    
import Debug    

sound property boltSD auto    

Event OnRead(Actor Target, Actor Caster)    
boltSD.play(Caster)    
EndEvent

вместо boltSD имя своего звукового эффекта
если компилятор начнет бухтеть, пробник так:
Event OnRead(название книги)

nikki►  Offline  Сообщение №180 написано: 22 марта 2013, 16:53



73
Всем привет! Ребят помогите кто знает!

1) Вопрос : У меня есть новое заклинание! Как к нему привязать скрипт превращения в злокрыса!
2) Вопрос : Как изменить сам скрипт превращения в злокрыса допустим в (кошку или медведя)!

Заранее спасибо!

Добавлено (22.03.2013, 20:53)
---------------------------------------------
Разобрался сам сорри за флуд!


Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)
Поиск:





Ответ на жалобу смотрите в разделе жалоб