AnvilBay Forum

Мастерская TES => Обсуждение программ => Программы для работы со скриптами => Тема начата: Kris†a™ от 10 Августа 2010, 12:33

Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 10 Августа 2010, 12:33
Уж извините за создание нового топика... не нашла подобного. Если такой есть - просто перенесите туда вопросы.

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

Можно ли при помощи скриптов, реализовать смену внешности и смену статов персонажа (в зависимости от времени суток)?

Т/е - в дневное время (с 6:00 и до 21:00) это обычный/симпатичный женский персонаж. Которому можно сменить шмотки и играть как обычным персонажем. А с 21:00 и до 6:00 утра - это Суккуба. У ней меняется текстура тела, одежда, появляются рожки (крыльев не будет, поскольку для них нет анимации)... и игрок, в это время не может ничего сделать с внешностью персонажа... даж переодеть не может.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Молчаливый Бе от 10 Августа 2010, 15:53
Цитировать
Можно ли при помощи скриптов, реализовать смену внешности и смену статов персонажа (в зависимости от времени суток)?
c OBSE должно быть возможно. Точнее, с OBSE+NifScript
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 10 Августа 2010, 16:29
возможно, сто процентов) как пример, раса тифлинг - первое превращение там зависит от боя) ну а со временем это, наверн, полегче) надо спросить мастеров скриптов) ну и, разумеется, нужно ОБСЕ
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 11 Августа 2010, 14:41
Ну... до того, что это каким-то образом можно реализовать - я и сама додумалась.
Жаль, что нет людей которые в этом могли-бы помочь. По ходу дела, саму идею придется отложить в "долгий ящик".
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Александра от 11 Августа 2010, 17:55
Кристина тут нужно ещё глаза у суккубы как в Клейморе, обычные уже не подойдут.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 11 Августа 2010, 23:20
ну во первых, я нашел русский учебник скриптов (http://wiki.rumor.ru/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:Oblivion_Scripting_for_Modmakers_(OSFM)), во вторых, все функции ОБСЕ тут (http://www.obse.silverlock.org/obse_command_doc.html), как я понял. нада там порыться...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 11 Августа 2010, 23:41
Цитата: Александра
Кристина тут нужно ещё глаза у суккубы как в Клейморе, обычные уже не подойдут.
К примеру: на создание таких глаз я потратила 15 мин.

(http://i062.radikal.ru/1007/3c/09d23ea0f290t.jpg) (http://radikal.ru/F/i062.radikal.ru/1007/3c/09d23ea0f290.jpg.html)

Я к тому, что создание любых глаз - дело десятое и не представляет из себя проблемы.

А вот скрипты... вот это реальная проблема. И я совершенно не планирую заниматься их изучением из-за создания одного мода.
Скорей всего выпущу мод в виде модерского ресурса... а там уже кто захочет - пусть сам создает расу.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Александра от 11 Августа 2010, 23:52
Думаю может из какого-нибудь сборника взять часть для создания суккуба, а часть Кристина сделает. Как на это смотришь, Кристина?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 12 Августа 2010, 00:19
Цитата: Александра
Думаю может из какого-нибудь сборника взять часть для создания суккуба, а часть Кристина сделает. Как на это смотришь, Кристина?
А что у них брать? Мне кроме скриптов - ничего не надо. Все сама создам...
В принципе, мне нужен только помощник который создаст *.esp файл. И все.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 12 Августа 2010, 01:44
эх... мне и самому захотелось суккубу-ГГ... может функции ОБСЕ перелопатить... авось чего и найдется...

чорд, а глазки как понравились... можешь текстуру выложить?)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Александра от 12 Августа 2010, 08:13
Цитата: Kris†a™
А что у них брать? Мне кроме скриптов - ничего не надо. Все сама создам...
В принципе, мне нужен только помощник который создаст *.esp файл. И все.

На глаза сегодня дам ссылочку, на сам архив с ними.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 12 Августа 2010, 08:58
Цитата: Александра
На глаза сегодня дам ссылочку, на сам архив с ними.
Спасибо... но мне не нужны глаза. А только готовые скрипты.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Александра от 12 Августа 2010, 11:17
В архиве самые лучшие зубки, рожки и глаза на данный момент, что были сделаны для суккубов. если сможешь лучше сделать, буду очень рада.

вот ссылочка: http://narod.ru/disk/23655278000/Data.rar.html (http://narod.ru/disk/23655278000/Data.rar.html)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 12 Августа 2010, 12:46
кстати, вспомнил. в МОЕ есть плаг на лича. так вот, там есть закл, чтобы стать обычным человеком, еси ты лич. то бишь, стал личом, постоянно выглядишь так, использовал закл - на два часа стал обычным человеком. вот и в расе можно сделать так - ГГ всегда выглядит как суккуба, а произнесла закл, стала выглядить как человек) но на пару часов) суккуба вне закона, но обаяние у нее повышенное, к ним лучше относятся, ибо люди несмышленные) а со стражником поговорит - вы арестованы за охмурение, гг))
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 12 Августа 2010, 12:56
Цитата: Обалдуй
кстати, вспомнил. в МОЕ есть плаг на лича. так вот, там есть закл, чтобы стать обычным человеком, еси ты лич. то бишь, стал личом, постоянно выглядишь так, использовал закл - на два часа стал обычным человеком. вот и в расе можно сделать так - ГГ всегда выглядит как суккуба, а произнесла закл, стала выглядить как человек) но на пару часов) суккуба вне закона, но обаяние у нее повышенное, к ним лучше относятся, ибо люди несмышленные) а со стражником поговорит - вы арестованы за охмурение, гг))
создашь *.esp файл? Я все остальное...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 12 Августа 2010, 13:33
Цитата: Kris†a™
создашь *.esp файл? Я все остальное...
хм, полажу в еспшнике личей, соображу что делать, мнится мне)

мдя, наткнулся на первые проблемы. во первых, лич устроен вот как - он постоянно носит определенное шмотье, и поверх него ниче нельзя одеть, а при касте спелла, дающего человеческий облик он их снимает.  так что надо дать суккубе постоянную одежду. хотя не, придумал - все аттрибуты суккубы - рожки, крылышки, хвостик - надо сделать на один слот хвоста,что существенно все облегчает - при касте спелла все эти внешние данные просто скрываются какой нибудь единственной невидимой шмоткой, занимающей слот хвоста. воть)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 12 Августа 2010, 14:20
Цитата: Обалдуй
хм, полажу в еспшнике личей, соображу что делать, мнится мне)

мдя, наткнулся на первые проблемы. во первых, лич устроен вот как - он постоянно носит определенное шмотье, и поверх него ниче нельзя одеть, а при касте спелла, дающего человеческий облик он их снимает.  так что надо дать суккубе постоянную одежду. хотя не, придумал - все аттрибуты суккубы - рожки, крылышки, хвостик - надо сделать на один слот хвоста,что существенно все облегчает - при касте спелла все эти внешние данные просто скрываются какой нибудь единственной невидимой шмоткой, занимающей слот хвоста. воть)
Это именно то что надо.
Я и хочу создать расу сукубы, и чтобы когда персонаж в обличи сукубы, нельзя было изменить его внешность и нельзя переодеть.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 12 Августа 2010, 14:38
аа, тада ясно. пошел дальше разбираться в скриптах МОЕ
внешний лик суккубы надо запихать в доспехи - комплект, занимающий слоты всех доспехов) кроме слотов колец, амулетов)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Александра от 12 Августа 2010, 21:51
Цитата: Обалдуй
аа, тада ясно. пошел дальше разбираться в скриптах МОЕ
внешний лик суккубы надо запихать в доспехи - комплект, занимающий слоты всех доспехов) кроме слотов колец, амулетов)

Не надо, встречала в одном плагине добавляющий демоническую расу, заклинание добавляется позволяющее любой расе превратиться в демона и наоборот.

Если надо могу ссылку предоставить.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 12 Августа 2010, 23:32
Цитата: Александра
Не надо, встречала в одном плагине добавляющий демоническую расу, заклинание добавляется позволяющее любой расе превратиться в демона и наоборот.

Если надо могу ссылку предоставить.
Так не подходит... надо на оборот.
Чтобы игрок при выборе расы уже знал что выбирает. А заклинание ему нужно только для того, чтоб превратится в обычного человека (и оно кратковременно ... например - пару часов).
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 19 Августа 2010, 18:05
такс... кто знает, как запретить определенный закл/эффект? в моем случае - вызов доспехов. повесить его на одежку надо)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Рызоп от 19 Августа 2010, 18:59
http://cs.elderscrolls.com/constwiki/index.php/EquipItem (http://cs.elderscrolls.com/constwiki/index.php/EquipItem)

player.EquipItem идодежды 1


Единица в конце отвечает за то, что вещь будет невозможно снять вручную (Даже вроде призыв брони не должен ее снять, но точно не уверен - нужно проверять самому) . Только скриптом, ака UnEquipItem или при удалении RemoveItem
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 19 Августа 2010, 20:51
про это я знаю... просто в МОЕ плаге насчет личей этот скрипт используется (я в принципе с мое и скатываю), а автор там написал мол де призывать броню можно. так что вопрос не закрыт

кстати, забыл: как привязать скрипт к определнной расе? чтобы был скрипт, проверяющий расу, и если раса та самая, то выполняется такой-то скрипт...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Рызоп от 20 Августа 2010, 04:40
Добавить к расе абилку, на абилку вешать скрипт.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 20 Августа 2010, 12:04
Цитата: Граф Разоридзе
Добавить к расе абилку, на абилку вешать скрипт.
спс)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: montgom от 21 Августа 2010, 12:12
"'Александра'
Не надо, встречала в одном плагине добавляющий демоническую расу, заклинание добавляется позволяющее любой расе превратиться в демона и наоборот."

Я сейчас какраз пробую разобраться как это прицепить к конкретной расе, но пока времени не достает...
дай ссылку на всякий случай

"Граф Разоридзе
Добавить к расе абилку, на абилку вешать скрипт."

а вот с этого момента можно поподробнее...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Александра от 22 Августа 2010, 19:15
Цитата: montgom
"'Александра'
Не надо, встречала в одном плагине добавляющий демоническую расу, заклинание добавляется позволяющее любой расе превратиться в демона и наоборот."

Я сейчас какраз пробую разобраться как это прицепить к конкретной расе, но пока времени не достает...
дай ссылку на всякий случай

http://www.tesnexus.com/downloads/file.php?id=32913 (http://www.tesnexus.com/downloads/file.php?id=32913)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Кровожад от 22 Августа 2010, 19:50
ммм, насколько я знаю если реализовывать второй облик через неснимаемую одежду, решить проблему с призыванием доспехов не удастся. чаще всего вызванный доспех будет одеваться вместо неснимаемой одежды. я пробовал подобным образои реализовать оборотней - фигня получается
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: NAVYgator от 29 Августа 2010, 15:07
Krict-e: А какой принцип перехода в суккуба тебя интересует: смена рассы (т.е. глобальное изменение параметров игрока) или спелловое превращение (временное изменение имиджа и набора спеллов)? От этого зависит "скриптовая" часть твоей идеи...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 01 Сентября 2010, 14:27
Цитата: NAVYgator
Krict-e: А какой принцип перехода в суккуба тебя интересует: смена рассы (т.е. глобальное изменение параметров игрока) или спелловое превращение (временное изменение имиджа и набора спеллов)? От этого зависит "скриптовая" часть твоей идеи...
насчет смены расы - однозначно никак. в смысле, будет агромадная проблема опыта, да и не только. словом, эта работа такая трудоемкая, что этим врядли ктото вообще займется. этот вопрос многими решается именно спелами, примеров оч много. кстати, сообразил, как впихнуть запрет на призыв доспехов - в форме суккубы у ГГ будет абилка молчанья, и наделить суккубу заклами (с имуннитетом к молчанью), в зависимости от лвла. только у меня вот именно что проблема с самим скриптом, чего то неправильно делаю... кто нить может написать просто работающий скрипт на призыв неснимаемой брони? а то я чего то недопонимаю...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: rsv от 27 Сентября 2010, 12:18
Сменить расы в рамках текущей версии OBSE технически невозможно без выхода в расовое меню. Если делать суккуба как монстра есть один минус - гипсовое лицо, то что сделали в 3d редакторе стеклянные глаза и никакой мимики, хотя для ГГ это не критично. Вот в принципе набросок такого варианта. Тут вместо суккуба кривой меш ксивилая, но можно сменить на кого угодно. Смена личин происходит в 6 и в 21.00 со взрывами и спецэффектами, в образе монстра одёжку надеть не получится. Все статы вешаются на Enchant SuccubiENCH. Если нужны спецзаклы можно воткнуть/удалить в скрипте SuccubiBlock (Addspell/removespell).
http://depositfiles.com/files/se4takeqv (http://depositfiles.com/files/se4takeqv)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: SLOWPARD от 27 Сентября 2010, 17:10
Цитата: rsv
Сменить расы в рамках текущей версии OBSE технически невозможно без выхода в расовое меню.

http://wryemusings.com/Wrye%20Morph.html (http://wryemusings.com/Wrye%20Morph.html)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: rsv от 27 Сентября 2010, 21:05
GEPARD
Я говорил о голом OBSE. Не могу себя назвать знатоком Pluggy применяемом в зооморфе.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: SLOWPARD от 28 Сентября 2010, 15:06
Pluggy там используется только для хранения информации\имен NPC.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: rsv от 29 Сентября 2010, 14:25
Отвечу цитатой из описания морфа.
It's a very cool approach involving a complicated interchange between OBSE, Breeze's own OBSE extension and Wrye Bash.

В самом же OBSE 0018 ты не найдёшь команд наподобии ChangeRace или ModModelPath для actors.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 01 Октября 2010, 13:57
Цитата: rsv
Сменить расы в рамках текущей версии OBSE технически невозможно без выхода в расовое меню. Если делать суккуба как монстра есть один минус - гипсовое лицо, то что сделали в 3d редакторе стеклянные глаза и никакой мимики, хотя для ГГ это не критично. Вот в принципе набросок такого варианта. Тут вместо суккуба кривой меш ксивилая, но можно сменить на кого угодно. Смена личин происходит в 6 и в 21.00 со взрывами и спецэффектами, в образе монстра одёжку надеть не получится. Все статы вешаются на Enchant SuccubiENCH. Если нужны спецзаклы можно воткнуть/удалить в скрипте SuccubiBlock (Addspell/removespell).
http://depositfiles.com/files/se4takeqv (http://depositfiles.com/files/se4takeqv)
одежка и не нужна. разве что кольца. хм. пошел тестить
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 01 Октября 2010, 14:52
Цитата: Обалдуй
одежка и не нужна. разве что кольца. хм. пошел тестить
хм... еще не отказался от этой идеи?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 01 Октября 2010, 15:47
Цитата: Kris†a™
хм... еще не отказался от этой идеи?
неа. хочу суккубу сделать)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Heinfizer от 01 Октября 2010, 22:56
Криста, я написал есп файл, где с помощью спелла призываются неснимаемые сапоги. можете посмотреть его детали или проверить в игре( добавил заклинание для лесных эльфов):Файл (http://ifolder.ru/19568070)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: BerK от 02 Октября 2010, 17:27
Извените, что пришёл сюда с оффтопом, но всё таки исправте ошибку в названии "ОбсУждение..."  
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kris†a™ от 03 Октября 2010, 13:44
Цитата: Igorsuper
Криста, я написал есп файл, где с помощью спелла призываются неснимаемые сапоги. можете посмотреть его детали или проверить в игре( добавил заклинание для лесных эльфов):Файл (http://ifolder.ru/19568070)
Это лучше глянуть Обалдую ... я к сожалению не разбираюсь в скриптах :(
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vito от 03 Октября 2010, 14:42
Цитата: Igorsuper
Криста, я написал есп файл, где с помощью спелла призываются неснимаемые сапоги. можете посмотреть его детали или проверить в игре( добавил заклинание для лесных эльфов):Файл (http://ifolder.ru/19568070)


Смысл оставлять в скриптах message если функция не используется? А зачем столько проверок? Скрипт на призыв странно сделан. Смысл призывать вещь в инвентарь а потом одевать ее, если она идет спеллом? Не проще призывать их сразу на актера?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Heinfizer от 03 Октября 2010, 16:52
Цитата: Vito
Смысл оставлять в скриптах message если функция не используется?
Message нужна, чтобы не было надписи "Предмет - добавленно", "Предмет - удалено". Знаю, что такая же функция есть в OBSE, но всё - же мне больше нравится использовать message
[hide]
     Переименуйте уже название темы, "обсждение" глаза режет [/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Shinshila от 07 Октября 2010, 21:36
Помогите пожайлусто со скриптом, в частности нужна информация о том, может ли скрипт накладывать скриптовые же магические эффекты или нет. То есть нужно что бы при активации скажем предмета, на игрока накладывались скриптовые (не путать с магическими) эффекты. Или заклинание это единственный способ в игре, позволяющий активировать сразу несколько скриптовых эффектов на выбранную цель ?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Demolir от 20 Октября 2010, 12:42
А почему бы нет, просто в скрипте укажи тип скрипта Object, основной блок будет начинаться с Begin onactivate (можно, при желании, добавить player, т.е. что бы скрипт работал только на игрока). В самом скрипте пропиши, какие эффекты добавятся игроку при активации. Вопрос в том, хочешь ли ты что бы эффект был одинарный или многократный (срабатывал при каждой активации)...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: leogod от 24 Октября 2010, 13:58
Нужна помощь!

Если в скрипте есть функия "enable", то скрит не хочет сохранятся!
 
На обьекте поставлено дисабле и рефенз. И его реф айди"01TomdstoneREF"

Часть скрипта: 01TomdstoneREF.enable
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Рызоп от 24 Октября 2010, 17:37
Если использовать цифры в начале названия референса, то скрипт не сохраняется.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: leogod от 28 Октября 2010, 18:38
Спасибо! Как буду дома проверю и отпишу.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Skronor от 08 Декабря 2010, 14:21
Насчет анимированных крыльев - есть крылья из мода Abbys Demon. Они вполне себе анимированы, раса даже летать может, крылья дрыгаются, махаются. Однако баги с такими крыльями неизбежны.
ЗЫ - проект заброшен? ='(
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 11 Декабря 2010, 22:38
как сделать проверку уровня, то есть если уровень, например, от 0 до 5, то добавляется такой то спелл, если уровень от 5 до 10 добавляется такой то?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 11 Декабря 2010, 23:49
Цитата: Обалдуй
как сделать проверку уровня, то есть если уровень, например, от 0 до 5, то добавляется такой то спелл, если уровень от 5 до 10 добавляется такой то?



set level to player.GetLevel

GetActorMinLevel - returns the minimum level of the actor if the PC Level Offset flag is set
(minLevel:int) reference.GetActorMinLevel actor:ref
(minLevel:int) reference.GetMinLevel actor:ref

GetActorMaxLevel - returns the maximum level of the actor if the PC Level Offset flag is set
(maxLevel:int) reference.GetActorMaxLevel actor:ref
(maxLevel:int) reference.GetMaxLevel actor:ref
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: SLOWPARD от 12 Декабря 2010, 13:42
Цитата: UNREAL
GetActorMinLevel - returns the minimum level of the actor if the PC Level Offset flag is set
(minLevel:int) reference.GetActorMinLevel actor:ref
(minLevel:int) reference.GetMinLevel actor:ref

GetActorMaxLevel - returns the maximum level of the actor if the PC Level Offset flag is set
(maxLevel:int) reference.GetActorMaxLevel actor:ref
(maxLevel:int) reference.GetMaxLevel actor:ref

Это причем тут?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 12 Декабря 2010, 18:36
Цитата: GEPARD
Это причем тут?
вот и мне интересно... О.о
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: IgorLutiy от 12 Декабря 2010, 19:03
Цитировать
как сделать проверку уровня, то есть если уровень, например, от 0 до 5, то добавляется такой то спелл, если уровень от 5 до 10 добавляется такой то?

scn Level
begin GameMode
if player.GetLevel > 0 && player.GetLevel <= 5
Player.Addspell SpellID
endif
if player.GetLevel > 5 && player.GetLevel <= 10
Player.Addspell SpellID2
endif
end
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 12 Декабря 2010, 19:06
IgorLutiy, спс. и еще вопрос: "&&" - глюк или так и надо?)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: IgorLutiy от 12 Декабря 2010, 19:16
"&&" - значит "и"
То есть
if player.GetLevel > 0 && player.GetLevel <= 5 - значит:
если уровень игрока больше 0 и меньше или равно 5, то есть должны выполнятся оба условия, чтобы следующая строка выполнялась
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 13 Декабря 2010, 17:25
как сделать кулдаун после закла? то бишь после произнесения заклинания игрок не мог его использовать некоторое время
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Visman от 14 Декабря 2010, 06:55
Самое простое в этом закле на себя творить безмолвие.
Другой вариант: после произнесения удалять его через квестовый скрипт, а через положенное время возвращать назад.
Еще вариант (через OBSE): после произнесения, выставлять заклинанию потребность в мане в 100000, а через положенное время возвращать назад.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: РЕДМЕНЪ от 15 Декабря 2010, 23:29

Наверное первый вариант не очень подойдёт, безмолвие пресечёт всякие попытки сотворить любое другое заклинание, как я понял это нежелательно, требуется запрет всего лишь на только что произнесённое заклинание.
Второй и третий варианты наверное хороши.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 15 Декабря 2010, 23:32
можно про третий вариант подробнее?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: РЕДМЕНЪ от 16 Декабря 2010, 00:12
Цитата: Оле-Лукойе
можно про третий вариант подробнее?
После кастования некоего неважно-какого-заклинания ему на повторное использование автоматически ставится количество маны, многократно превышающее возможности ГГ, как результат - скастовать заклинание второй раз не получится. Через определённое время (условно 1-2-3 мин) параметры возвращаются к исходным, также автоматически.
Подробнее не можно, бо скрипты писать не умею.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 16 Декабря 2010, 01:17
Цитата: GEPARD
GetActorMinLevel

Это причем тут?

ВОПРОС БЫЛ-цитата:

как сделать проверку уровня, то есть если уровень, например, от 0 до 5, то добавляется такой то спелл, если уровень от 5 до 10 добавляется такой то?

Кому? Игроку? , Неписю? - об ничего не сказано, задавайте вопрос детально.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Redguard TJ от 16 Декабря 2010, 01:18
Небольшое исправление названия темы.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: NAVYgator от 16 Декабря 2010, 10:36
Кто-нибудь знает как можно прервать выполнение блока
Begin ScriptEffectUpdate
для перехода (по условию, раньше обычного завершения этого блока) к выполнению скрипта в блоке
Begin ScriptEffectFinish
?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 16 Декабря 2010, 14:02
Цитировать
Небольшое исправление названия темы.
тиджи, это такой юмор или ты реально опечатался?
Цитировать
После кастования некоего неважно-какого-заклинания ему на повторное использование автоматически ставится количество маны, многократно превышающее возможности ГГ, как результат - скастовать заклинание второй раз не получится. Через определённое время (условно 1-2-3 мин) параметры возвращаются к исходным, также автоматически.
Подробнее не можно, бо скрипты писать не умею.
ну я имел ввиду "подробнее" в виде скрипта, как такое выполняется я прекрасно понимаю)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 16 Декабря 2010, 17:29
Цитата: NAVYgator
Кто-нибудь знает как можно прервать выполнение блока
Begin ScriptEffectUpdate
для перехода (по условию, раньше обычного завершения этого блока) к выполнению скрипта в блоке
Begin ScriptEffectFinish
?

ref.dispel spell (развеять)
как вариант передать функции все переменные в блоке Begin ScriptEffectFinish
scn FuncE (объект)
begin function {p1,p2,...pn}где переменные могут быть рефами или другими переменными, которые задействованы в блоке Begin ScriptEffectFinish
end

Если надо именно прерывание, а потом продолжение, то тут масса вариантов, например по таймеру

float timer

Begin ScriptEffectUpdate
let timer+=getsecondspassed
if timer<какое то условие или просто число, зависящее от времени
(исполнение того что надо)

else
call FuncE p1,p2,..pn-(то что надо выполнить в блоке Begin ScriptEffectFinish)
ref.dispel spell(полностью развеять)
endif
end


или

short GlobalValue(задается в глобальных переменных в КС)
--------------------------------
Begin ScriptEffectUpdate

if GlobalValue!=значение
(исполнение того что надо)

else
call FuncE p1,p2,..pn(то что надо выполнить в блоке Begin ScriptEffectFinish)
ref.dispel spell(полностью развеять если равно)
endif
end
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: NAVYgator от 16 Декабря 2010, 18:19
Цитата: UNREAL
ref.dispel spell (развеять)
как вариант передать функции все переменные в блоке Begin ScriptEffectFinish
scn FuncE (объект)
begin function {p1,p2,...pn}где переменные могут быть рефами или другими переменными, которые задействованы в блоке Begin ScriptEffectFinish
end
.....
Мне нужно именно прекращение цикла выполнения блока ScriptEffectUpdate: как бы время действия эффекта (длит. = 12 сек.) закончилось на 4-й секунде (вместо 12-й) и нормально начал выполняться блок ScriptEffectFinish. Как бы имитация динамического изменения начальной длительности эффекта во время его действия.

А обязательно ли наличие в скриптовом эффекте блока ScriptEffectFinish? Можно ли его не включать в скрипт эффекта? Если - да, можно не включать, то это решит мою проблему
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 16 Декабря 2010, 18:59
Цитата: NAVYgator
А обязательно ли наличие в скриптовом эффекте блока ScriptEffectFinish? Можно ли его не включать в скрипт эффекта? Если - да, можно не включать, то это решит мою проблему


Не обязательно.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Redguard TJ от 16 Декабря 2010, 20:50
Цитата: Оле-Лукойе
тиджи, это такой юмор или ты реально опечатался?
Только вчера исправлял ету опечатку.
SHI~
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 17 Декабря 2010, 18:57
объясните сие плиз
SetShowQuestItems
эта функция вроде прячет квестовые предметы, но как она выполняется? прячутся ВСЕ квестовые предметы или только те, что есть в моде? если первое, то подскажите как реализовать второе плиз)
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Visman от 17 Декабря 2010, 19:20
Цитата: Оле-Лукойе
объясните сие плиз
SetShowQuestItems
эта функция вроде прячет квестовые предметы, но как она выполняется? прячутся ВСЕ квестовые предметы или только те, что есть в моде? если первое, то подскажите как реализовать второе плиз)
Галку Playable убери в свойствах нужных предметах и все дела.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 17 Декабря 2010, 19:20
Цитата: Visman
Галку Playable убери в свойствах нужных предметах и все дела.
так шмотье одевается насильным образом каждую ночь.... впрочем, ша проверю

проверил) спасибо))
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 26 Декабря 2010, 15:43
|| - что значит эта команда? полный вид условия:
if ((( Time >=  0 && Time < 4 ) || ( Time >= 21 ) || ( Player.IsSpellTarget aaaSuccubusSpell == 1 ) ) && ( Player.IsSpellTarget aaaSuccubusToHuman == 0 ) )
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Redguard TJ от 26 Декабря 2010, 16:23
Цитата: Оле-Лукойе
|| - что значит эта команда? полный вид условия:
Это, по-моему, "или".
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 27 Декабря 2010, 16:31
ModAV2
что значит эта команда? в OSFM 1.2 упомянута версия без двойки ток...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 27 Декабря 2010, 16:49
2ОЛ
пример:
ModActorValue2 Fatigue -1000 (те модифицировать значением
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: NAVYgator от 27 Декабря 2010, 17:33
Цитата: Оле-Лукойе
ModAV2
что значит эта команда? в OSFM 1.2 упомянута версия без двойки ток...
из текста OBSE:"... ModAV2 - изменяет указанную в виде параметра (StatName) характеристику вызывающего актера (ActorID) или персонажа игрока (Player) на заданное значение, не превышающее максимально возможного по стату."
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Visman от 27 Декабря 2010, 19:50
Главное отличие OBSE ф-ии ModAV2 это то, что вносимые ею изменения могут быть аннулированы заклинаниями, зельями или естественным путем.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: antrax от 14 Января 2011, 17:15
Добавил персонажу спелл на вызов крыльев и способность летать, причем если крылья не надеты, то перс летать не может. Все это работает, как и задумано. Но есть одна проблемка. Скрипт, добавляющий крылья и абилку к полетам, должен также осматривать слот хвоста и, если там что-то было надето, то возвращать обратно, когда крылья снимаются. Однако, предмет, который был на слоте хвоста до того, как оделись крылья, обратно НЕ надевается, когда спелл снимает крылья. Вопрос в том, чтобы заставить скрипт одевать обратно на слот хвоста то, что было на нем до крыльев.
Вот, собственно, сам скрипт:
[hide]
   
SCN aaaWingsBodyScript

ref DemonEquippedTail             ;сохраняет все, что надето на слот хвоста
short EquippedSlotsStored         ;сохраняет один раз надетое снаряжение

BEGIN ScriptEffectStart

set DemonEquippedTail to 0
set EquippedSlotsStored to 0

;Добавляет/убирает крылья демона, способность летать и то, что было надето на слот хвоста
   If (Player.GetItemCount aaaDemonWingsTail == 0)
      If (Player.GetItemCount aaaDemonWingsTail == 0)
      ;Сохраняет то, что надето на слот хвоста
         set DemonEquippedTail to GetEquippedObject 15    ;слот хвоста
         set EquippedSlotsStored to 1
         Player.AddItem aaaDemonWingsTail 1      ;добавляет крылья в инвентарь
         Player.EquipItem aaaDemonWingsTail      ;надевает крылья
      EndIf
      Player.AddSpell aaaDemonFlight            ;добавляет способность летать
   Else
      If (Player.GetItemCount aaaDemonWingsTail == 1)
      ;Возвращает то, что было снято перед тем, как были надеты крылья
         Player.UnEquipItem aaaDemonWingsTail         ;снимает крылья
         Player.RemoveItem aaaDemonWingsTail 1      ;удаляет крылья из инвентаря
            If EquippedSlotsStored == 1
               If DemonEquippedTail != 0
                  Player.EquipItem DemonEquippedTail    ;одевает слот хвоста
               EndIf
            EndIf
            set EquippedSlotsStored to 0
            set DemonEquippedTail to 0
      EndIf
      Player.RemoveSpell aaaDemonFlight      ;удаляет способность летать
   EndIf
   
END
[/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 14 Января 2011, 17:59
Цитата: antrax
Добавил персонажу спелл на вызов крыльев и способность летать, причем если крылья не надеты, то перс летать не может. Все это работает, как и задумано. Но есть одна проблемка. Скрипт, добавляющий крылья и абилку к полетам, должен также осматривать слот хвоста и, если там что-то было надето, то возвращать обратно, когда крылья снимаются. Однако, предмет, который был на слоте хвоста до того, как оделись крылья, обратно НЕ надевается, когда спелл снимает крылья. Вопрос в том, чтобы заставить скрипт одевать обратно на слот хвоста то, что было на нем до крыльев.
Вот, собственно, сам скрипт:
[hide]
   
SCN aaaWingsBodyScript

ref DemonEquippedTail             ;сохраняет все, что надето на слот хвоста
short EquippedSlotsStored         ;сохраняет один раз надетое снаряжение

BEGIN ScriptEffectStart

set DemonEquippedTail to 0
set EquippedSlotsStored to 0

;Добавляет/убирает крылья демона, способность летать и то, что было надето на слот хвоста
   If (Player.GetItemCount aaaDemonWingsTail == 0)
      If (Player.GetItemCount aaaDemonWingsTail == 0)
      ;Сохраняет то, что надето на слот хвоста
         set DemonEquippedTail to GetEquippedObject 15    ;слот хвоста
         set EquippedSlotsStored to 1
         Player.AddItem aaaDemonWingsTail 1      ;добавляет крылья в инвентарь
         Player.EquipItem aaaDemonWingsTail      ;надевает крылья
      EndIf
      Player.AddSpell aaaDemonFlight            ;добавляет способность летать
   Else
      If (Player.GetItemCount aaaDemonWingsTail == 1)
      ;Возвращает то, что было снято перед тем, как были надеты крылья
         Player.UnEquipItem aaaDemonWingsTail         ;снимает крылья
         Player.RemoveItem aaaDemonWingsTail 1      ;удаляет крылья из инвентаря
            If EquippedSlotsStored == 1
               If DemonEquippedTail != 0
                  Player.EquipItem DemonEquippedTail    ;одевает слот хвоста
               EndIf
            EndIf
            set EquippedSlotsStored to 0
            set DemonEquippedTail to 0
      EndIf
      Player.RemoveSpell aaaDemonFlight      ;удаляет способность летать
   EndIf
   
END
[/hide]

Вот пример на полное раздевание перса , скрипт работает как абилити (в течении некот времени:
Нетрудно  далее в массиве оставить то, что Вам нужно, хоть один хвост

[hide]
    Equipment Slot IDs*
  0: head
  1: hair
  2: upper body
  3: lower body
  4: hand
  5: foot
  6: right ring
  7: left ring
  8: amulet
  9: weapon
10: back weapon
11: side weapon
12: quiver
13: shield
14: torch
15: tail
16: weapon
17: ammo
18: lower and upper body
19: lower and upper and foot
20: lower, upper, hand and foot
21: lower, upper, and hand
22: upper and hand



scn aadkzzFFFsp

ref se
ref temp

array_var nude
int nidx
int ntotal
short ic

BEGIN ScriptEffectStart
let ntotal:=ar_size nude
if ntotal<0
let nude:=ar_construct array
endif
if ntotal>0
let nude:=ar_null
endif



set temp to se.GetEquippedObject 2
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 3
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 4
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 5
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 9
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 10
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 11
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 12
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 13
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 15
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 16
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 17
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 18
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 19
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 20
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 21
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 22
if temp
let nude[ar_size nude]:=temp
endif

set temp to se.GetEquippedObject 1
if temp
let nude[ar_size nude]:=temp
endif

let ntotal:=ar_size nude
if ntotal>0
set nidx to 0
   while(nidx<ntotal)
   let temp:=nude[nidx]

   se.unequipitemns temp  =========полное раздевание(или то чего Вам надо.см.выше что вносится в массив
   set nidx to nidx+1
   loop
endif

END

begin scripteffectupdate
if =============================какое-то условие(таймер например - полное одевание


if ntotal>0
set nidx to 0
   while(nidx<ntotal)
   let temp:=nude[nidx]
        set ic to player.getitemcount temp
        if ic>0
   se.equipitemns temp
        endif
   set nidx to nidx+1
   loop
let nude:=ar_null
endif
se.removespellns aadkzzNude

endif================================

end  [/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: antrax от 14 Января 2011, 18:18
Это не совсем то что нужно.
Спелл должен одевать крылья, добавлять способность летать и проверять, нет было ли чего надето на слоте хвоста и если было надето, то возвращать обратно. Остальные слоты затрагиваться не должны.  Скастовал спелл повторно - крылья сняты, способность к полетам удалена, возвращено все, что было на слоте хвоста. Работает по типу тоггл. Так он делает все, кроме возвращения первоначальной экипировки слота хвоста. Без указания времени, т.е. пока спелл не будет скастован вновь.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 14 Января 2011, 18:35
Цитата: antrax
Это не совсем то что нужно.
Спелл должен одевать крылья, добавлять способность летать и проверять, нет было ли чего надето на слоте хвоста и если было надето, то возвращать обратно. Остальные слоты затрагиваться не должны.  Скастовал спелл повторно - крылья сняты, способность к полетам удалена, возвращено все, что было на слоте хвоста. Работает по типу тоггл. Так он делает все, кроме возвращения первоначальной экипировки слота хвоста. Без указания времени, т.е. пока спелл не будет скастован вновь.

Дак это понятно, здесь я просто показал как можно снимать-одевать(запоминая этот референс,
можно добавл предмет-контроллер,
если он один-надеть крылья, два-снять-удалить контроллеры
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: antrax от 14 Января 2011, 20:01
Скрипт одевает крылья, добавляет абилку и пр. - все делает, только не ресторит то что было раньше на хвосте надето. Не пойму просто - или он тупо не может запомнить что там было,  или не хочет потом одевать. Одевание/запоминание сделано на примере вот этого скрипта из Asharas Sirens & Tritons v.3.0:
[hide]
   
Тут запоминание, снимание, надевание работает четко:
[attachment=4519:AsharasS...ilScript.txt]
[/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 14 Января 2011, 20:06
Чтобы придать времен референсам спелла персист надо задать их в квестовые референсы-тогда они всегда будут в памяти облы...
Короче кинь есп, если что...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: antrax от 14 Января 2011, 20:12
Не нужно, чтобы они постоянно в памяти висели. Одного esp будет мало - нужны еще модели и текстуры, все целиком весит 109Мб в запакованом виде + мод авторский.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 14 Января 2011, 22:36
Короче вот написал эту финтифлюшку:


1.игрок сначала имеет плащ

плащ и крылья в слоте хвоста, проверка слота хвоста каждые три секунды

(http://i.pixs.ru/thumbs/9/8/7/1jpg_5443483_1521987.jpg) (http://pixs.ru/showimage/1jpg_5443483_1521987.jpg)


2.Кастуем крылья
(http://i.pixs.ru/thumbs/9/9/8/2jpg_5563036_1521998.jpg) (http://pixs.ru/showimage/2jpg_5563036_1521998.jpg)


3.Крылья снимаются-удаляются, плащ одевается
(http://i.pixs.ru/thumbs/0/0/0/3jpg_3964687_1522000.jpg) (http://pixs.ru/showimage/3jpg_3964687_1522000.jpg)

вся штука заняла 25 минут

естественно юез мешей и текстур (скрипт Аффтарский т.е. мой )
http://rghost.ru/3942021 (http://rghost.ru/3942021)
Как еще объяснить я не знаю...если все работает как коллайдер...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: DerMetaplasmus от 13 Февраля 2011, 08:13
Здравствуйте, так как я вообще не разбираюсь в скриптах, прошу о помощи.
   Хотелось бы добавить перца в игру, посредством отчистки инвентаря (подобно как при квесте Сангвина) при активации например "артефакта" (ложного контейнера в руинах) с последующей телепортацией до самого Лейавина без вещей. Этакий подарок Шеогората, для мазохиста.  
   Какие команды должны стоять в скрипте, как указывать на контейнер куда перемещаются предметы (или удаляются вообще)?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: SLOWPARD от 13 Февраля 2011, 09:24
scn ScriptName;название скрипта

begin OnActivate player
player.removeallitems container; вместо container - ссылка на контейнер, куда будут переноситься предметы, квестовые все равно останутся в инвентаре
player.moveto marker; вместо marker - ссылка на маркер, обозначающий место, куда будет телепортироваться игрок

End
Все это вешается на артефакт-активатор.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: DerMetaplasmus от 13 Февраля 2011, 10:04
Набрал пока только для удаления:

[hide]
    scn ScriptName 111SkriptFORDungeon

begin OnActivate player
player.removeallitems 111DASanguineChest

End


Но при попытке сохранения вылезла ошибка:

Script 'ScriptName', line 4:
Invalid object reference '111DASanguineChest' for parameter Container (optional).
Compiled script not saved!
[/hide]

Любой контейнер ставлю, одна и та же ошибка.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Рызоп от 13 Февраля 2011, 11:53
в refid убери циферки в самом начале. Замени например на "aaa"
Также в свойстве сундука поставь галку на "референс обжект"
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Kido Hari от 13 Февраля 2011, 12:33
Цитата: DerMetaplasmus
Любой контейнер ставлю, одна и та же ошибка.
Нужно ставить не ID контейнера, а его reference. Размещаешь Контейнер в локации, открываешь двойным щелчком его свойства и вписываешь имя reference. И уже ЭТО имя используешь для скриптов.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: DerMetaplasmus от 13 Февраля 2011, 12:44
СПАСИБО! GEPARD, Рызор, Kido Hari, всё заработало!
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Снайпер-Ас от 16 Февраля 2011, 14:19
Кто знает, какие скрипты нужно использовать, чтобы было такое: человек заражается болезнью, через некоторое время вместо человека появляется зомби.

Еще было бы неплохо узнать, какие именно скрипты отвечают за появление неписей (например, того же зомби) в определенном месте.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Теинаава первый от 25 Февраля 2011, 20:58
Возник такой вопрос: я редактирую DeadlyReflex5, чтобы совсем отменить критический удар, так-как автор не предусмотрел этого. Запускаю английский конструктор с obse, но скрипт всё равно не сохраняется. Ошибки в скрипте быть не может, потому что я там ничего не меняю а только 100 на 0.
Выдаёт такую ошибку: Invalid Begin/End block structure on line 121.
Подскажите, кто знает, а то очень охота с Deadly играть, но только без мяса.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 25 Февраля 2011, 21:53
Цитата: Teinaava
Возник такой вопрос: я редактирую DeadlyReflex5, чтобы совсем отменить критический удар, так-как автор не предусмотрел этого. Запускаю английский конструктор с obse, но скрипт всё равно не сохраняется. Ошибки в скрипте быть не может, потому что я там ничего не меняю а только 100 на 0.
Выдаёт такую ошибку: Invalid Begin/End block structure on line 121.
Подскажите, кто знает, а то очень охота с Deadly играть, но только без мяса.

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

и если оставить, то будет ругаться, я не знаю почему.(Например в оригин Нехриме такого мусора дофига, и с ОБСЕ он не компилируется)
;end
;endif

Также как вариат избегайте нуля, так как может где нибудь на него будут делить
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Теинаава первый от 26 Февраля 2011, 00:10
Цитата: UNREAL
Попробуйте посмотреть, что там за блок, может надо добавить endif
Также как вариат избегайте нуля, так как может где нибудь на него будут делить
Да пробовал не на 0 а на 1, но дело в том, что не хочет сохранять его вообще, даже если ничего не менять. Например я просто ставлю точку где-нибудь скраю, и сразу же эту точку удаляю, и всё, скрипт уже не сохраняется, хотя он не изменён абсолютно а выдаёт ошибку, как я написал выше. В общем, я уже давно пытался это исправить, но это у меня так и не получилось, хотя ребята, куда я обращался, у себя этот скрипт нормально отредактировали. Теперь я снова решил попытаться исправить это, но сам не могу понять в чём дело, это ведь не ошибка а какой-то мне непонятный блок. В общем, спасибо, что ответили. Хотя, на всякий случай я залил esp и esm на народ. Файл весит всего несколько килобайт:
http://narod.ru/disk/6367064001/Новая%20папка.rar.html (http://narod.ru/disk/6367064001/Новая%20папка.rar.html)

Скрипт называется scn skycaptainsCustomKeySelector
Если вдруг кто-нибудь поможет, я буду очень благодарен, но я не настаиваю)) Нужно всего лишь сбросить настройки критического удара на 0. Просто очень бы хотелось играть с новыми возможностями, но ток без жестокостей

[hide]
    scn skycaptainsCustomKeySelector

float fquestdelaytime

short messageBoxCustomKeys
short Custombutton
short messageBoxBash
short button


Begin gamemode

if(messageBoxCustomKeys == 0)
    if(getquestrunning SkycaptainsSb)
        stopquest skycaptainsSb
    endif
    set messageBoxCustomKeys to 1    
    set button to -100
    set fquestdelaytime to 0.1
endif

if(messageboxCustomKeys == 1)
                  
                if(messageBoxBash == 0)
                    set messageboxbash to 1
                      messagebox "Выбирите одну не занятую клавишу для "Удар щитом/Удар рукояткой щита". Переназначить клавиши вы сможете в настройках. Закройте это окно, после чего нажмите на выбранную вами клавишу. Клавиши мышки на данный момент не поддерживаются."

                elseif(messageboxbash == 1)
                    set button to getkeypress 0
                    if(button != 65535)
                        set skycaptainssb.bashkey to button
                        set button to -100
                        set messageboxbash to 2
                    endif
    
                elseif(messageBoxBash == 2)
                    set messageboxbash to 3
                    messagebox "Теперь выбирите клавишу для "Кувырок/Уклонение". Опять же - одну не занятую клавишу. Переназначить клавиши вы сможете в настройках. Закройте это окно, после чего нажмите на выбранную вами клавишу. "
                
                elseif(messageBoxBash == 3)

                    set button to getkeypress 0
                    if(button != 65535)
                        
            
                        set skycaptainssb.flipkey to button
                        set button to -100
                        set messageboxbash to 4
                    endif


                elseif(messageBoxBash == 4)
                    set messageboxbash to 5
                    messagebox "Выбирите клавишу для инициализации верхового боя. ВНИМАНИЕ!!! Верховой бой отключен в этой версии плагина. Просто назначте какую нибудь не занятую клавишу. "
                ;messagebox "And now, select a key for mounting a horse with your weapon out. This is NOT a combat key. You will need to press it only to get into Horse Combat Mode, just before mounting. NOTE: you can reset all keys by activating the Deadly Reflex Reset -named hourglass in your inventory, it will bring up these messages again."
                
                elseif(messageBoxBash == 5)

                    set button to getkeypress 0
                    if(button != 65535)
                        
            
                        set skycaptainssb.horsecombatkey to button
                        set button to -100
                        set messageboxbash to 6
                    endif







                elseif(messageboxbash == 6)
                    messagebox "И последнее - выбирите модификатор шанса срабатывания критического удара. Рекомендуемое значение для поддержания баланса - 30. После выбора не нажимайте никаких клавиш до появления уведомления о том, что все выполнено успешно. Варианты:" "10 процентов" "15 процентов" "20 процентов" "25 процентов" "30 процентов" "35 процентов" "40 процентов" "50 процентов" "100 процентов"
                        
                        set messageboxbash to 7

                elseif(messageboxbash == 7)
                        set button to getbuttonpressed
                        if(button > -1)
                            if(button == 0)
                                set skycaptainssb.criticalchance to 10
                            elseif(button == 1)
                                set skycaptainssb.criticalchance to 15
                            elseif(button == 2)
                                set skycaptainssb.criticalchance to 20
                            elseif(button == 3)
                                set skycaptainssb.criticalchance to 25
                            elseif(button == 4)
                                set skycaptainssb.criticalchance to 30
                            elseif(button == 5)
                                set skycaptainssb.criticalchance to 35
                            elseif(button == 6)
                                set skycaptainssb.criticalchance to 40
                            elseif(button == 7)
                                set skycaptainssb.criticalchance to 50
                            elseif(button == 8)
                                set skycaptainssb.criticalchance to 100
                            endif

                            
                            
                            set messageboxbash to 8
                        endif
                
                
                elseif(messageboxbash == 8)
                            set messageboxbash to 0
                            set messageboxcustomkeys to 0
                            if(getquestrunning skycaptainsSb == 0)
                                startquest skycaptainsSb
                            endif
                            set skycaptainssb.done to 1
                            set skycaptainsActivators.done to 0
                            stopquest Skycaptainskeycustomisingquest
                            return
                    endif

                endif
endif

end
[/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 26 Февраля 2011, 00:41
У меня такая же фигня с 121, попробуй удалить последний endif,
Честно говоря не люблю структуру ельзеиф, с ней сплошной гемор,
(возможно автор использовал какой-то плюг для редактора)
Сам не пробывал так как, не исп ДР из-за того , что он виснет иногда,
и как то странно влияет на иконки спеллов, мне кажется там ошибки,
пусть автор сам исправляет.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Теинаава первый от 26 Февраля 2011, 02:45
Цитата: UNREAL
У меня такая же фигня с 121, попробуй удалить последний endif,
Честно говоря не люблю структуру ельзеиф, с ней сплошной гемор,
(возможно автор использовал какой-то плюг для редактора)
Сам не пробывал так как, не исп ДР из-за того , что он виснет иногда,
и как то странно влияет на иконки спеллов, мне кажется там ошибки,
пусть автор сам исправляет.
UNREAL
Спасибо тебе огромное! Ты просто не представляешь, как я рад! Да, нужно было всего лишь удалить последний endif Кто бы мог подумать!  Теперь и игра уже совсем другая стала, и уже точно никакие Скайримы мне не нужны. Главное, что мой персонаж будет жив, а то ведь критический удар можно было и от врага получить, и из-за этого я не играл с этим модом а только его тестил. У меня он не зависает, всё нормально, но иконки да, пропадают, поэтому я использую плагин "Заклинание приключенца", в котором добавлены новые иконки. Они-то и отображаются в инвентаре. Также я удалил новые неуклюжие анимации прыжков. В остальном, это шикарный мод! Нет мода, где nps используют кувырки и приседания, а ведь это ещё не всё, на что богат этот мод! В общем ...спасибо
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Теинаава первый от 21 Марта 2011, 17:13
Цитата: UNREAL
Сам не пробывал так как, не исп ДР из-за того , что он виснет иногда,
и как то странно влияет на иконки спеллов, мне кажется там ошибки,
пусть автор сам исправляет.
Я нашел эту ошибку! Меня тоже ужасно раздражало то, что иконок не было. Я поставил скрипт-икон-реплейсер, но всё равно иконки отображались через раз. Сейчас я нашел и скачал старую версию Deadly 4 и обнаружил, что в Deadly 5 одного файла не хватает. Этот файл должен находиться по пути: textures/menus/icons/DeadlyReflexData/ Файл называется DeadlyReflex_Icon_Replacer. Этого файла нет в пятой версии, его просто забыли! Я сейчас закинул его по этому пути и иконки сразу появились. Возможно, это кто-нибудь найдёт полезным для себя.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 21 Марта 2011, 18:21
Цитата: Teinaava
Я нашел эту ошибку! Меня тоже ужасно раздражало то, что иконок не было. Я поставил скрипт-икон-реплейсер, но всё равно иконки отображались через раз. Сейчас я нашел и скачал старую версию Deadly 4 и обнаружил, что в Deadly 5 одного файла не хватает. Этот файл должен находиться по пути: textures/menus/icons/DeadlyReflexData/ Файл называется DeadlyReflex_Icon_Replacer. Этого файла нет в пятой версии, его просто забыли! Я сейчас закинул его по этому пути и иконки сразу появились. Возможно, это кто-нибудь найдёт полезным для себя.
Молодец! Дотошный Вы наш...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vint от 05 Июня 2011, 20:24
Как заставить кастовать нпс спелы на ГГ через диалоговое окно?
Что нужно написать в Result Script? допустим Idнепися.(1)Cast Idспелла Idнепися(2) на себя он кастует, но если поставить вместо Idнепися(2) IdГГ, то он не кидает заклинание, в чем проблема? не подскажите?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 05 Июня 2011, 21:13
В компиль результ пишешь:
[hide]
    nepisREF.cast player IDspell
====================
или дать предмет неписю, со скриптом, по окончании диалога
;OBSE
scn aaCast
ref me
float t
int meC

begin gamemode
let t+=getsecondspassed
if t>1
let t:=0
    set me to getcontainer
    if (me!=0||me!=-1)
    let meC:=me.getinsamecell Player
      if meC==1
      me.cast player IDspell
      removeme
      endif
    else
    return
    endif
endif
end [/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: ТемныйКот от 05 Июня 2011, 21:15
На вскидку: В самом заклинании (эффект заклинания) область воздействия "на себя", измени "на цель".
(http://s009.radikal.ru/i308/1106/16/5288ec739d32t.jpg) (http://radikal.ru/F/s009.radikal.ru/i308/1106/16/5288ec739d32.jpg.html)

Больше ничего сказать не могу, так как не знаю как выглядит скрипт.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vint от 05 Июня 2011, 21:20
Первый вариант не верный, так как там где player должен стоять IDспелла, а с обсе мне не подходит ) но все равно спасибо за помощь )
Темный Кот этот вариант тоже не верный ) а скрипт написан сверху, ну по крайне мере его форма
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: ТемныйКот от 05 Июня 2011, 21:24
Vint, а обязательно в диалоге это кастование запускать? Может если этот диалог в квесте прописать кастование в скрипте квеста? Тоесть в скрипте пишем - по достижении такой то стадии квеста НПС кастует на игрока заклинание.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 05 Июня 2011, 21:24
А дык тебе во время диалога!

ну так давай предмет без обсе, но с меню моде номером диалога.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vint от 05 Июня 2011, 21:26
Ну не, смотрите диалог закрывается благодаря галочке на Goodbye и должен скастовать на игрока. На себя то перс кастует так....
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: ТемныйКот от 05 Июня 2011, 21:30
Вот, нашел на НПС (непонял зачемЭ то IDспелла в кавычках, попробуй)
KimMaleRef.Cast "0000KimPlayerHeal01" Player
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vint от 05 Июня 2011, 21:40
Тоже не катит...а что там написано в Сonditions ?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: ТемныйКот от 05 Июня 2011, 21:50
Цитата: Vint
Тоже не катит...а что там написано в Сonditions ?
Да тут сам черт ногу сломит - это НПС из главного квеста Нерима. Счас покавыряю, вроде я видел где то что то похожее.
***
Но может проще всетаки в скрипт квеста записать это кастование?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vint от 05 Июня 2011, 21:57
Через диалог намного проще и удобней )) да и не хочу я через скрипт )
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: ТемныйКот от 06 Июня 2011, 21:15
В общем я тут спросил на другом форуме, и вот что ответили:
[hide]
    ТемныйКот пишет:
ВОПРОС: можно сделать(прописать именно в окне диалога), чтобы НПС по завершению диалога (установлена галочка "закончить") кастовал заклинание на игрока?
Вот это KimMaleRef.Cast "0000KimPlayerHeal01" Player не работает.

Visman пишет:
В самом диалоге это писать нельзя.
Нужно разместить эту команду либо в скрипте НПС, либо в каком-либо квестовом скрипте

...
Begin GameMode
...
if (FlagPulayniay == 1)
  KimMaleRef.Cast "0000KimPlayerHeal01" Player
  Set FlagPulayniay to 0
endif
...
End

FlagPulayniay - глобальная переменная, по умолчанию = 0.
В диалоге ставишь команду Set FlagPulayniay to 1
[/hide]

В общем видимо в диалогах нельзя. Все равно надо через скрипт это делать.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Vint от 06 Июня 2011, 21:28
ну попробую так)) спасибо за помощь )
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Allor от 29 Июня 2011, 22:15
Делаю плаг на саммон стрел, соответственно, написал такой скрипт для заклинания:

[hide]
    scn AllorSummonArrow

short count

begin scripteffectstart

player.additem AsummonableArrow 25
player.equipitem AsummonableArrow

end

begin scripteffectfinish

set count to player.getitemcount ASummonableArrow
player.removeitem AsummonableArrow count

end
[/hide]

Все работает, кроме equipitem. Причем экипировать вручную тоже не получается, выдается мессага - "Это стрела предназначена для определенного задания" - как со Стрелой Высвобождения. Чего делать, как побороть? На эксперимент поменял айдишник на даэдрические стрелы. Призвалось-экипировалось, но экипировало только одну стрелу. Как экипировать все?

Вопрос снимается, проблема решена.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Inteligent от 06 Августа 2011, 23:19
Хочу соорудить простой мод, но в скриптах я полный ноль. Мне нужно, что бы кто-то сделал маленький скриптик.
Скрипт должен быть привязан к одежде и отслеживать её состояние (надета/снята), если вещь надета - скрипт запускает непрерывное воспроизведение определённого звукового файла, если снята - останавливает.
Если кто-то сделает такой скрипт (а так же немного разъяснит как привязать его к объекту) - буду очень благодарен.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Madness от 09 Августа 2011, 17:23
Цитата: Inteligent
Хочу соорудить простой мод, но в скриптах я полный ноль. Мне нужно, что бы кто-то сделал маленький скриптик.
Скрипт должен быть привязан к одежде и отслеживать её состояние (надета/снята), если вещь надета - скрипт запускает непрерывное воспроизведение определённого звукового файла, если снята - останавливает.
Если кто-то сделает такой скрипт (а так же немного разъяснит как привязать его к объекту) - буду очень благодарен.
Begin OnEquip - это как говориццо "отслеживать её состояние (надета/снята) "
StreamMusic -"скрипт запускает непрерывное воспроизведение определённого звукового файла, если снята - останавливает."
Сам скрипт должен выглядеть примерно так:
scn lalala ; название скрипта
Begin OnEquip ; условие выполнения
StreamMusic [путь] ; за место [путь] должен быть указан путь(очевидно). т.е. примерно такой -"Data/Music/Special/lalala.mp3", но это зависит от нахождения файла и названия(без кавычек)
end ; конец

как привязать читай здесь - http://wiki.rumor.ru/index.php?title=Obliv...My_First_Script (http://wiki.rumor.ru/index.php?title=Oblivion:Scripting_Tutorial:_My_First_Script)
Вот и все, вроде бы должно работать, только саунд будет проигрываться до конца
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 10 Августа 2011, 00:26

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

Inteligent - пиши конкретней на ГС чего ты хочешь.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Inteligent от 10 Августа 2011, 00:51
Madness
Спасибо, вроде как получилось. Хотя кавычки в указании пути к файлу оказались обязательными.
Ну и все таки хотелось бы найти способ непрерывного воспроизведения звука.

UNREAL
То, что я обсуждаю тут никак не связано с тем, о чем я писал на ГС.

А про всякие рефы я, к сожалению, не силён (принципы работы кое-как понимаю, но особенности скриптового языка так и не уяснил).
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 10 Августа 2011, 01:32
надо смотреть менюмоды, и ставить их в скрипт, так как из них меняется музыка и из-за локаций,

т.е ты сможешь сделать ее старт сначала, при динамической смены музыки , управляемой движком
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Alliria от 15 Сентября 2011, 16:22
В наличии CSE 5.1 и следующий скрипт.
[hide]
    scn SheoSheogorathsordersScript


Ref WhoAmI
short flag
short button


Begin ScriptEffectStart

if  ( GetPlayerinSEWorld == 1 )
    Set WhoAmI to GetSelf
    set flag to 1

    if (GetIsRace GoldenSaint == 1) || (GetIsRace DarkSeducer == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Следуй за мной крадучись.","Жди здесь.", "Покинь меня."
    elseif
        return
    endif

        
    if (GetIsID SEHerdir == 1) || (GetIsID SEAnyaHerrick == 1) || (GetIsID SEKithlan == 1) || (GetIsID SEGundlar == 1) || (GetIsID SEWideEye == 1) || (GetIsID SE14Healer1 == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."

    elseif (GetIsID SE14Dancer1 == 1)
          Messagebox "Чем могу служить, господин?","Следуй за мной.", "Жди здесь.", "Станцуй.", "Покинь меня."
    endif

elseif
    Message "Это заклинание не работает за пределами Дрожащих Островов."
endif

End




begin gamemode

set button to getbuttonpressed

if (GetIsRace GoldenSaint == 1) || (GetIsRace DarkSeducer == 1)
    if button > -1
        if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp

        elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCSneakFollowPlayer
                WhoAmI.evp

        elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp

        elseif button == 3
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
      
        elseif button == 4
            return

        endif
    
    elseif
        return
    endif

elseif
    return
endif




if (GetIsID SEHerdir == 1) || (GetIsID SEAnyaHerrick == 1) || (GetIsID SEKithlan == 1) || (GetIsID SEGundlar == 1) || (GetIsID SEWideEye == 1) ||  (GetIsID SE14Healer1 == 1)
    if button > -1
        if button == 0
            WhoAmI.AddScriptPackage SheoNPCFollowPlayer
            WhoAmI.evp

        elseif button == 1
            WhoAmI.AddScriptPackage SheoNPCStayHere
            WhoAmI.evp

        elseif button == 2
            WhoAmI.RemoveScriptPackage
            WhoAmI.evp

        elseif button == 3
            return

        endif
    elseif
        return
    endif


elseif (GetIsID SE14Dancer1 == 1)
    if button > -1
        if button == 0
            WhoAmI.AddScriptPackage SheoNPCFollowPlayer
            WhoAmI.evp

        elseif button == 1
            WhoAmI.AddScriptPackage SheoNPCStayHere
            WhoAmI.evp

        elseif button == 2
            WhoAmI.AddScriptPackage SheoNPCDancer
            WhoAmI.evp

        elseif button == 3
            WhoAmI.RemoveScriptPackage
            WhoAmI.evp

        elseif button == 4
            return

        endif
    
    elseif
        return
    endif

elseif
    return
endif

End




Begin ScriptEffectFinish

if  ( GetPlayerinSEWorld == 1 )

endif

End
;<CSEBlock>
;<CSECaretPos> 660 </CSECaretPos>
;<CSEMessageEditor> This is an uncompiled script. Expect weird behavior during runtime execution </CSEMessageEditor>
;</CSEBlock>
[/hide]
Вопрос: почему оно не компиллируется?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: SLOWPARD от 15 Сентября 2011, 19:03
Цитировать
Вопрос: почему оно не компиллируется?
Поподробнее.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Alliria от 16 Сентября 2011, 02:59
Что подробнее?)
Жму "сохранить и скомпиллировать" или "рекомпиллировать все активные скрипты" - эффекта 0. При переходе к другому скрипту или выходе из редактора предлагает сохранить - жду "да" - эффекта 0. При сохранении плагина выдает ошибку компилляции. (там в конце скрипта есть комментарий CSE). Wtf?
Вообще, скрипт изначально не мой, я его переписала. Оригинал тоже не компиллировался, но там были ошибки в синтаксисе.
Вот оригинал:
[hide]
scn SheoSheogorathsordersScript

short doOnce
Ref WhoAmI
short flag
short button
short chooseone

Begin ScriptEffectStart

if  ( GetPlayerinSEWorld == 1 )
    Set WhoAmI to GetSelf
    set flag to 1

if (GetIsRace GoldenSaint == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Следуй за мной крадучись.","Жди здесь.", "Покинь меня."
endif

if (GetIsRace DarkSeducer == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Следуй за мной крадучись.","Жди здесь.", "Покинь меня." 
endif

if (GetIsID SEHerdir == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
endif


 if (GetIsID SEAnyaHerrick == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
endif


 if (GetIsID SEKithlan == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
endif


if (GetIsID SEGundlar == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
endif


if (GetIsID SEWideEye == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
endif

if (GetIsID SE14Healer1 == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
endif


 if (GetIsID SE14Dancer1 == 1)
          Messagebox "Чем могу служить, господин?","Следуй за мной.", "Жди здесь.", "Станцуй.", "Покинь меня."
endif


if  ( GetPlayerinSEWorld == 0 )
Message "Это заклинание не работает за пределами Дрожащих Островов."
endif
End

begin gamemode
set button to getbuttonpressed

if (GetIsRace GoldenSaint == 1)       
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCSneakFollowPlayer
                WhoAmI.evp
    elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 3
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 4
    endif
    endif
   endif
endif

if (GetIsRace DarkSeducer == 1)
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCSneakFollowPlayer
                WhoAmI.evp
    elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 3
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 4
    endif
    endif
   endif
      endif





if (GetIsID SEHerdir == 1)
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 3
    endif
    endif
   endif
    endif
     




if (GetIsID SEAnyaHerrick == 1)

   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 3
    endif
    endif
   endif
      endif
     
     



 if (GetIsID SEKithlan == 1)
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 3
    endif
    endif
   endif
      endif

     


if (GetIsID SEGundlar == 1)
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 3
    endif
    endif
   endif
      endif
     
     



 if (GetIsID SEWideEye == 1)
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 3
    endif
    endif
   endif
      endif
     

     



 if (GetIsID SE14Healer1 == 1)
   if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 3
    endif
    endif
   endif
      endif
     

     



 if (GetIsID SE14Dancer1 == 1)
      if button > -1
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp
    elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCDancer
                WhoAmI.evp
    elseif button == 3
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
        elseif button == 4
    endif
    endif
    endif
      endif
endif
end




Begin ScriptEffectFinish

if  ( GetPlayerinSEWorld == 1 )

endif
End
[/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: UNREAL от 16 Сентября 2011, 10:24
Я не вникал сам скрипт, но могу сказать по скриптам например Нехрима или оригинального Обливиона,
там где идет много условий по elseif(например) почти всегда скрипт не компилировался,
т.к. все они не были рассчитаны на использованик ОБСЕ
(если попытаться скомпилировать ориг скрипты облы с обсе произойдет тоже самое -будут ошибки)

тогда надо просто расставить все недостающие endif и все, в изменяемом скрипте


Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Alliria от 16 Сентября 2011, 16:47
UNREAL, в том-то и дело, что я расставила все недостающие завершения условий. В итоговой версии (двумя постами выше) условий раза в 2-3 меньше, чем в оригинале, и тем не менее... Абыдна, скрипт-то простенький.
Но все равно большое спасибо за ответ, не знала насчет проблем с обсе.) Во всяком случае, скрипт поведения существ из ООО с кучей elseif у меня компиллился нормально.

З.ы. А вообще, авторам надо за такие скрипты руки отрывать.  
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 17 Сентября 2011, 16:00
Цитата: Alliria
В наличии CSE 5.1 и следующий скрипт.
[hide]
     scn SheoSheogorathsordersScript


Ref WhoAmI
short flag
short button


Begin ScriptEffectStart

if  ( GetPlayerinSEWorld == 1 )
    Set WhoAmI to GetSelf
    set flag to 1

    if (GetIsRace GoldenSaint == 1) || (GetIsRace DarkSeducer == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Следуй за мной крадучись.","Жди здесь.", "Покинь меня."
    elseif
        return
    endif

        
    if (GetIsID SEHerdir == 1) || (GetIsID SEAnyaHerrick == 1) || (GetIsID SEKithlan == 1) || (GetIsID SEGundlar == 1) || (GetIsID SEWideEye == 1) || (GetIsID SE14Healer1 == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."

    elseif (GetIsID SE14Dancer1 == 1)
          Messagebox "Чем могу служить, господин?","Следуй за мной.", "Жди здесь.", "Станцуй.", "Покинь меня."
    endif

elseif
    Message "Это заклинание не работает за пределами Дрожащих Островов."
endif

End




begin gamemode

set button to getbuttonpressed

if (GetIsRace GoldenSaint == 1) || (GetIsRace DarkSeducer == 1)
    if button > -1
        if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
                WhoAmI.evp

        elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCSneakFollowPlayer
                WhoAmI.evp

        elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCStayHere
                WhoAmI.evp

        elseif button == 3
                WhoAmI.RemoveScriptPackage
                WhoAmI.evp
      
        elseif button == 4
            return

        endif
    
    elseif
        return
    endif

elseif
    return
endif




if (GetIsID SEHerdir == 1) || (GetIsID SEAnyaHerrick == 1) || (GetIsID SEKithlan == 1) || (GetIsID SEGundlar == 1) || (GetIsID SEWideEye == 1) ||  (GetIsID SE14Healer1 == 1)
    if button > -1
        if button == 0
            WhoAmI.AddScriptPackage SheoNPCFollowPlayer
            WhoAmI.evp

        elseif button == 1
            WhoAmI.AddScriptPackage SheoNPCStayHere
            WhoAmI.evp

        elseif button == 2
            WhoAmI.RemoveScriptPackage
            WhoAmI.evp

        elseif button == 3
            return

        endif
    elseif
        return
    endif


elseif (GetIsID SE14Dancer1 == 1)
    if button > -1
        if button == 0
            WhoAmI.AddScriptPackage SheoNPCFollowPlayer
            WhoAmI.evp

        elseif button == 1
            WhoAmI.AddScriptPackage SheoNPCStayHere
            WhoAmI.evp

        elseif button == 2
            WhoAmI.AddScriptPackage SheoNPCDancer
            WhoAmI.evp

        elseif button == 3
            WhoAmI.RemoveScriptPackage
            WhoAmI.evp

        elseif button == 4
            return

        endif
    
    elseif
        return
    endif

elseif
    return
endif

End




Begin ScriptEffectFinish

if  ( GetPlayerinSEWorld == 1 )

endif

End
;<CSEBlock>
;<CSECaretPos> 660 </CSECaretPos>
;<CSEMessageEditor> This is an uncompiled script. Expect weird behavior during runtime execution </CSEMessageEditor>
;</CSEBlock>
[/hide]
Вопрос: почему оно не компиллируется?
Попробуй этот скрипт:
[hide]
    scn SheoSheogorathsordersScript

Ref WhoAmI
short flag
short button

Begin ScriptEffectStart

if  ( GetPlayerinSEWorld == 1 )
    Set WhoAmI to GetSelf

if (WhoAmI.GetIsRace GoldenSaint == 1) || (WhoAmI.GetIsRace DarkSeducer == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Следуй за мной крадучись.","Жди здесь.", "Покинь меня."
          set flag to 1
endif

if (WhoAmI.GetIsID SEHerdir == 1) || (WhoAmI.GetIsID SEAnyaHerrick == 1) || (WhoAmI.GetIsID SEKithlan == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
          set flag to 2
endif

if (WhoAmI.GetIsID SEGundlar == 1) || (WhoAmI.GetIsID SEWideEye == 1) || (WhoAmI.GetIsID SE14Healer1 == 1)
          Messagebox "Чем могу служить, господин?" ,"Следуй за мной.","Жди здесь.", "Покинь меня."
          set flag to 2
endif

 if (WhoAmI.GetIsID SE14Dancer1 == 1)
          Messagebox "Чем могу служить, господин?","Следуй за мной.", "Жди здесь.", "Станцуй.", "Покинь меня."
          set flag to 3
endif

else
Message "Это заклинание не работает за пределами Дрожащих Островов."
endif

End

begin ScriptEffectUpdate
set button to getbuttonpressed

if flag > 0
   if button == -1
      return
   endif

  if flag == 1    
     if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
     elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCSneakFollowPlayer
     elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCStayHere
     elseif button == 3
                If WhoAmI.getiscurrentPackage SheoNPCFollowPlayer || WhoAmI.getiscurrentPackage SheoNPCSneakFollowPlayer || WhoAmI.getiscurrentPackage SheoNPCStayHere
                   WhoAmI.RemoveScriptPackage
                endif
                WhoAmI.evp
     endif
     set flag to 0
  
  elseif flag == 2
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
    elseif button == 2
                If WhoAmI.getiscurrentPackage SheoNPCFollowPlayer || WhoAmI.getiscurrentPackage SheoNPCStayHere
                   WhoAmI.RemoveScriptPackage
                endif
                WhoAmI.evp
    endif
    set flag to 0

  elseif flag == 3
    if button == 0
                WhoAmI.AddScriptPackage SheoNPCFollowPlayer
    elseif button == 1
                WhoAmI.AddScriptPackage SheoNPCStayHere
    elseif button == 2
                WhoAmI.AddScriptPackage SheoNPCDancer
    elseif button == 3
                If WhoAmI.getiscurrentPackage SheoNPCFollowPlayer || WhoAmI.getiscurrentPackage SheoNPCDancer || WhoAmI.getiscurrentPackage SheoNPCStayHere
                   WhoAmI.RemoveScriptPackage
                endif
                WhoAmI.evp
    endif
    set flag to 0
  endif
endif    
    
if flag == 0
   WhoAmI.removeSpell SheoSheogorathsorders; ID заклинания
endif

end

Begin ScriptEffectFinish

End
[/hide]
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Alliria от 18 Сентября 2011, 07:32
AleksTirex, спасибо! Все сохранилось.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: wowan tagil от 29 Октября 2011, 09:39
всем привет.народ нужна помощь!!!!!.создал себе в кс свой форт где можно награбленое хранить. в середине форта поставил магический стол ну типа круг.вопрос можно ли сделать так чтобы когда мой перс становился на стол у него восстонавливались жизни.скрипты писать не умую по этому че полегче пишите.зарание спасибо .
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 30 Июля 2012, 14:07
вроде бы уже получал ответ на свой вопрос, но что-то не могу найти =\ как выдать расу за другую? то есть, чтобы при начале игры раса высших имперцев распознавалась как просто имперцы.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Horinf от 08 Августа 2012, 12:04
Еще вопрос по скриптам.
Нужна функция, проверяющая состояние здоровья цели - полное или нет, каков максимальный уровень, какой процент от максимального уровня составляет текущее хп. По кс-вики искал на фразы health, modactorvalue, не преуспел.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Рызоп от 08 Августа 2012, 12:48
Еще вопрос по скриптам.
Нужна функция, проверяющая состояние здоровья цели - полное или нет, каков максимальный уровень, какой процент от максимального уровня составляет текущее хп. По кс-вики искал на фразы health, modactorvalue, не преуспел.
http://cs.elderscrolls.com/index.php/GetBaseActorValue - возвращает базовое значение указанной характеристики. Нам нужно "GetBaseActorValue Health"
Собственно получаем базовое значение и текущее (при помощи обычного "getav") в скрипте. А процент от максимального уровня здоровья дальше не составит труда.

Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Horinf от 08 Августа 2012, 12:58
 Это базовое. А максимальное - это базовое плюс всякие модификаторы, я неправ?
 getav = getactorvalue? Спасибо.
 Нужно, чтобы заклинание вызывало один эффект, если здоровье цели больше 50%, и другой - если меньше.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Рызоп от 08 Августа 2012, 15:49
Если учитывать модификаторы - то тут вроде без обсе не обойтись
http://cs.elderscrolls.com/index.php/GetAVMod
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 08 Августа 2012, 16:28
Если учитывать модификаторы - то тут вроде без обсе не обойтись
Если принципиально не хочется применять OBSE, то можно и без него обойтись. Можно попробовать так:
[hide]
ref newRef

set newRef to actorRef.CreateFullActorCopy
newRef.saa 0
newRef.ResetHealth
if actorRef.getAV Health / newRef.getAV Health > 0.5
   ; делаем, если здоровье > 50%
else
   ; делаем, если здоровье < 50%
endif
newRef.DeleteFullActorCopy

Здесь у actorRef проверяется полное здоровье со всеми имеющимися модификаторами (зачарование, болезни и т.д.).
[/hide]

//применение тегов a.king61
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Horinf от 08 Августа 2012, 16:38
Спасибо за помощь. Сделал так. Применил перемещающийся активатор для каста спелла на цель.
[hide]
scn Spell

short fullhp
short currenthp
short reaping

ref target

begin ScriptEffectStart
  set target to getself
  set reaping to 0
  set fullhp to target.getbaseactorvalue health
  set currenthp to target.getactorvalue health
     if currenthp/fullhp >= 0.51
        set reaping to 1
     else
        set reaping to 2
     endif
     
end

begin ScriptEffectUpdate
  set target to getself
     If reaping == 1
        player.cast spellname1 target ; weakness spell
        player.additem essenceoflife
        set reaping to 0
     elseif reaping == 2
        player.cast spellname2 target ; damage spell
        player.additem essenceofagony
        set reaping to 0
     else
        return
     endif
     
end

begin ScriptEffectFinish

end
[/hide]

//применение тегов a.king61
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 09 Августа 2012, 03:54
такс. кто подскажет, как создавать копии какого нибудь объекта и в последствии отмерять время жизни этого объекта? хочу с велкиндскими (или как они называются?) камнями похимичить. надо создать одиночную уникальную копию предмета и по прошествии времени преобразовать в стандартный.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 09 Августа 2012, 15:29
Цитировать
Применил перемещающийся активатор для каста спелла на цель.
А почему в скрипте идёт привязка к игроку (player.cast ...)? Если данный эффект рассчитан только на игрока, то это можно нужно прописать в скрипте, например: if getself == player
Иначе, если этот спелл попадёт в другого актёра, а вот урон будет нанесён игроку, непорядок.
Переменные fullhp и currenthp должны быть float.
Этот скрипт можно упростить:
[hide]
scn Spell

ref target

begin ScriptEffectStart
     set target to getself
     if getactorvalue health / getbaseactorvalue health > 0.5
        player.cast spellname1 target ; weakness spell
        player.additem essenceoflife
     else
        player.cast spellname2 target ; damage spell
        player.additem essenceofagony
     endif
end

begin ScriptEffectUpdate

end

begin ScriptEffectFinish

end
[/hide]
Но вот с target и player надо разобраться, т.е. на кого может воздействовать данное заклинание. Если на любого актёра, то вместо player надо подставить target.

//применение тегов a.king61
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Horinf от 09 Августа 2012, 17:35
AlexTirex, там нужно, чтобы на цель читалось заклинание в соответствии с его здоровьем. С player.cast  там не прокатило, сделал невидимый активатор, который перемещается чуть выше цели и бьет ее.
Переменные можно заменить на float, но у меня и с short работало.

Здравствуй, Talvi.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 09 Августа 2012, 20:15
Цитировать
как создавать копии какого нибудь объекта и в последствии отмерять время жизни этого объекта?
По большому счёту, все объекты делятся на две группы: «живые» и «не живые», т.е. актёры и объекты (предметы и статики).
Актёры клонируются командой CreateFullActorCopy, например:
set newRef to actorRef.CreateFullActorCopy, где  создаётся копия актёра actorRef, а референс этой копии будет newRef, вот в последствии и можно будет управлять этой копией. (у копии нет АИ пакетов и фракций)
Простые объекты напрямую нельзя клонировать (по крайней мере, в дефолтном варианте). Можно базовый объект добавлять командой PlaceAtMe, этот добавленный предмет будет почти копией твоего предмета (об этом чуть ниже). Поскольку, ты хочешь «играться» с определённым предметом (велкиндский камень), то узнавать ID нет необходимости, он есть в КСе. А вот если надо клонировать предмет/объект из другого мода или случайный объект, то тут нужен OBSE. Например:
[i]ref clone
ref originalObject
ref cloneRef

set originalObject to myReference.GetBaseObject [/i] ; определяем ID базового объекта
[i]set clone to CloneForm originalObject[/i] ; клонируем этот базовый объект
[i]set cloneRef to markerRef.placeAtMe clone 1 0 0[/i] ; добавляем копию в нужное место и запоминаем его референс

 Здесь [i]clone[/i] – ID нового клонированного объекта, [i]cloneRef[/i] - референс клона, [i]markerRef[/i] - место создания клона (марекр).
Но сам предмет в игровом мире может отличаться от базового, например размерами. Если размер отличается от базового не более, чем в два раза, то это можно "подогнать размер" так:

[i]float aScale

set aScale to myReference.getScale
cloneRef.setScale aScale[/i]

Что же касательно «время жизни» клона, то здесь всё просто: надо в момент создания этого клона «зафиксировать» игровой день и/или текущее время.

[i]Floaf aGDP
Float aHour

...
set cloneRef to markerRef.placeAtMe
Set aGDP to GameDaysPassed
Set aHour to GameHour[/i]

Далее можно отслеживать/сверять эти значения с реальным временем:

[i]If GameDaysPassed > aGDP + 5
   ; что-то делаем, т.к. прошло 6 и более дней «жизни клона»
Endif[/i]
По этому же принципу поступаем с игровыми часами.

ПыСы Вот только не понятно: "преобразовать в стандартный" (?), что это означает?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 09 Августа 2012, 20:24
я не совсем ясно написал просьбу) мне в общем то, надо клонировать вещь в инвентаре и со временем менять характеристики. о размещении в мире этой вещи речи не идет) а по достижении определенных условий, определенного значения переменной заменить на обычный предмет
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 09 Августа 2012, 20:34
Цитировать
со временем менять характеристики
Характеристики этого предмета или актёра? И какие именно характеристики? Что-то скриптовое или чары?

Цитировать
заменить на обычный предмет
Это в смысле на незаскриптованный или незачарованный?

Если ID предмета, который надо клонировать известен, то можно просто добавить в инвентарь второй такой же премет. А вот с характеристиками... так всё зависит от самих характеристик.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 09 Августа 2012, 20:42
Характеристики этого предмета или актёра? И какие именно характеристики? Что-то скриптовое или чары?
зачарование, скорее всего. и показывать уровень заряда, как у оружия.
Это в смысле на незаскриптованный или незачарованный?
обычный ванильный предмет) то есть, по достижении условия убрать заскриптованный предмет и добавить обычный.

проблема в том, что я не знаю как создавать копии предмета... ааа, точно. дошло. через уровень зачарования сделаю.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 11 Августа 2012, 20:14
Здравствуйте всем, у меня есть такая проблемка, я открыл для себя облу сравнительно не давно, где-то год с небольшим...
Все мне очень интересно, а особенно возможность вмешиваться посредством кс в игру...Сейчас нахожусь на стадии обучения скриптам( получается плохо) видимо не совсем мое...я тут небольшой модик в "порядок" привожу и вот мне надо простенький скрипт, когда ГГ входит в помещение, должна вкл.музыка, это очень простой скрипт, но я себе всю голову сломал :D с этими командами... пока весь учебник изучу, наверно игра надоест...кто-то может помочь?
Я, вообще-то, в основном, общался на GameSource, потому как, "взрослая" тема, это основное, что держит так долго в игре, а там, на  GameSource, со скриптологами плохо, а кто были, видимо в Скайрим ушли, да и форум там,уже два дня как недоступен...здесь помогут?





Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Обалдуй от 11 Августа 2012, 22:00
учебник этот (http://rumor.ru/wiki/Oblivion:%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA_%22Scripting_for_Modmakers%22_(OSFM)) смотрел?
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 11 Августа 2012, 22:31
учебник этот (http://rumor.ru/wiki/Oblivion:%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA_%22Scripting_for_Modmakers%22_(OSFM)) смотрел?

Учебник этот и смотрел..мне нужна всего одна команда проверки на местности типа,
scn (мое имя скрипта)
begin GameMode-или другая команда :-X
if plauer. -здесь наверно нужна команда проверки места-которую я не знаю!!! зашел, музыка играет, вышел-все...
StreamMusic "data\music\special\...тра-ля-ля
Message"....."
endif
       if plauer-то же самое
       StreamMusic "data\music\special\...тра-ля-ля
Message"...."
endif
end
Я вот как-то так его представляю...может я и не прав, поэтому и пишу

Я только только начал со скриптами, в основном локализация и...вот сейчас озвучка :-[ поэтому и скрипт такой понадобился
Добавление:во втором блоке, может быть надо будет указать стадию квеста, но это я так, с жиру бешусь...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 12 Августа 2012, 01:39
учебник этот (http://rumor.ru/wiki/Oblivion:%D0%A3%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA_%22Scripting_for_Modmakers%22_(OSFM)) смотрел?

Учебник этот и смотрел..мне нужна всего одна команда проверки на местности типа,
Не совсем так, здесь надо гораздо больше, чем одна проверка, кстати, а вот проверок вообще не надо никаких. Сам скрипт вешается на любой предмет из этого помещения, и когда игрок находится в том же помещении - скрипт работает, если игрока там нет - скрипт не работает (это вместо проверок). Если помещение дефолтное (не своё), то лучше скрипт сделать на "квестовом скрипте" и сделать проверку: player.GetInCell ID_локации (чтобы не изменять дефолтную локацию).
Но в любом случае, для работы команды StreamMusic необходимо, чтобы тип музыки в этой локации был не default (т.е. public или dungeon), иначе работать не будет.
К тому же есть проблема - чтобы выключить музыку, запущенную командой StreamMusic, надо или выйти в другую локацию (где тип музыки не дефолт), или режимом боя, по другому музыку не выключить.

Для начинающего скриптёра это немного сложновато, хотя и реально, а вот если в помещении сделать и повесть "красный колокольчик", который находится в разделе Sound, то музыка будет там постоянно, пока игрок находится в этом помещении. Параметры "колокольчика": сделать свой ID, поставить галочки "2D" и "Повторение", указать на аудио файл, который должен быть в формате WAV (желательно моно) и находиться в папке Data\sound\fx\своя папка. Потом его разместить в самом помещении.

Попробуй сперва такой вариант.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 12 Августа 2012, 03:04
Попробуй сперва такой вариант.
Попробовал, спасибо, все заиграло.., но все же это полумеры. Все таки хотелось бы полноценный скрипт, шоб вешать его куда надо..но, наверно это немного самонадеянно..я тут человек новый, ни чем себя не проявивший, но мне ответили, что уже само по себе вселяют надежду...может и я на что сгожусь, кто ж знает на перед... ;)

а та мебель..она вся дефолтная, скрип не повесить, но можно сделать и впихнуть туды табуретку или еще чего,  ;D ладно, это все завтра
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: akba от 12 Августа 2012, 13:02
Там все немного сложнее, т.к. если войдешь в какое-нибудь меню - сузыка измениться сразу на дефолтную, этот скрипт хорошо реализован в ЖиМ, но где его искать я не помню уже.
Вот идеальный скрипт на дверь таверны Искателей сокровищ (ЖиМ)
scn aa2DoorOutTavernScr
float timer

begin onActivate
if IsActionRef Player == 1
set aaaInn7WaysRank.MusicInPir to 0
StreamMusic "data\music\7roads\0.mp3"
StreamMusic Public
endif
activate
end

begin gameMode
if aaaInn7WaysRank.MusicInPir == 1
if aaaInn7WaysRank.init == 0
set timer to 257
set aaaInn7WaysRank.init to 1
StreamMusic "data\music\7roads\1.mp3"
     else

if timer > 0
set timer to timer - getSecondsPassed
else

             set aaaInn7WaysRank.init to 0
endif
endif
endif
end


begin onLoad
if Player.GetInCell aaaPiratesTavernTSS01 == 1
if Player.IsInInterior == 1
set aaaInn7WaysRank.init to 0
endif
endif
end

begin MenuMode 1007
set aaaInn7WaysRank.init to 0
end

begin MenuMode 1
set aaaInn7WaysRank.init to 0
end

begin MenuMode 1013
set aaaInn7WaysRank.init to 0
end
Думаю с переменными все понятно
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 12 Августа 2012, 14:04
Akba, Спасибо попробую ...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Horinf от 15 Августа 2012, 10:10
Снова вопрос по скриптам.
Нужно наделить копию игрока (которая от createFullActorCopy) разными свойствами, пакетами АИ, топиками и прочим. 
Есть ли способ присвоить уже вызванной копии ID, либо вызвать этот ID через скрипт?
Можно ли оперировать с копией в скрипте, отличном от того, что ее вызывает?

Другая проблема. Вот фрагмент скрипта:
[hide]
       set clone1 to player.createfullactorcopy
         clone1.addScriptPackage 0FandPhantomPack
         clone1.addspell AbGhostNPC
         clone1.setghost 1
         setessential clone1 1
         clone1.setignorefriendlyhits 1
         clone1.moveto fcloneup
         clone1.removeallitems
         clone1.setactorfullname "Name"
[/hide]
при добавлении все новых строк, часть из них перестает выполняться. Кроме этого, Ghost State глючит.
Нужно, чтобы призрак был неуязвим для ударов и магии, не отвечал на атаки и прочее.
А тут он какое-то количество ударов неуязвим, потом по нему удается попасть, и он нападает.

//применение тегов a.king61
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 19 Августа 2012, 19:37
Тут еще вопрос есть, во время диалога, на последней фразе, должен проиграться определенный звук, подскажите, плиз, а то уже все бошку сломал :-X
Скрипт на фразу ставлю, но или написал его криво либо функцию не та, не знаю... сам звук, конструктор проигрывает, я так понимаю он совсем простецкий, ну очень нужен...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: akba от 19 Августа 2012, 20:07
Playsound.MYsound
Это вообще. (Будет играться звук непосредственно *в ушах* игрока


Для команды:
Актер или Источник звука.Playsound3d.MYsound

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


Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 19 Августа 2012, 20:42
Playsound.MYsound
Это вообще. (Будет играться звук непосредственно *в ушах* игрока


Для команды:
Актер или Источник звука.Playsound3d.MYsound

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

Не, я так не понимаю(если это мне ответ) Мне надо такого вида:

scn ******
begin (Какая Функция?)

что - то здесь

и end

Все что я пытаюсь выдумать, все давно придумано, Пишу как в учебнике стоят команды, а он ,скрипт, не работает, или я осел....
Звук от актера с диалога...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: akba от 19 Августа 2012, 22:47
Если вы с диалогом делаете , то и ставьте его в диалог, в какую-нибудь финальную строчку.

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

Конкретнее расписать я не могу, я же не знаю, что Вы пишите и как это затрагивает игру (все актеры, кто-то конкретный, плюс правильная организация скрипта = проверка меню моды, локации)

Не зря же в Лов-сах есть такие проверки, чтобы игра не покрошилась.
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: holtof55 от 20 Августа 2012, 15:45
Если вы с диалогом делаете , то и ставьте его в диалог, в какую-нибудь финальную строчку.

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

Конкретнее расписать я не могу, я же не знаю, что Вы пишите и как это затрагивает игру (все актеры, кто-то конкретный, плюс правильная организация скрипта = проверка меню моды, локации)

Не зря же в Лов-сах есть такие проверки, чтобы игра не покрошилась.

Спасибо, что отвечаете!
Квестов нет, фраза из пришлого мода, не из базы, говорят три или четыре перса из этого мода...фраза началась или закончилась а лучше где-то в середке, должен проиграться звук...я звуковой файл сделал, в референсе ее назначил, теперь надо сконструировать простенький скрипт, вот тут у меня все и остановилось, то мод стал глючить, вылеты и проч... прелести, то отказывается загружать локацию, где перс с фразой обретается,.. :-X короче не знаю пока как это решить...
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: Shinshila от 01 Сентября 2012, 23:14
Подскажите пожалуйста какой ни буть метод, который позволит в игре добавить окружающим нпц предмет, или магический эффект. То есть необходимо что бы в определённом радиусе (или зоне, от игрока или от заскриптованого нпц) всем окружающим нпц был добавлен предмет или магическое состояние. Нужно сделать это незаметным способом. Один из примитивных вариантов был найден это использование заклинания с большим радиусом действия, но использовать его незаметно невозможно или не выходит особенно если речь идёт об главном персонаже. :-X
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: akba от 03 Сентября 2012, 12:50
Простого метода нет (для автоматического добавления, контроля нужных нпс)
надо использовать квестовый скрипт с алиасами по условиям.

В качестве примера посмотрите квест с бардами (этим квестом в алиасы выбираются спутники ГГ и дается анимация) , а вам надо давать предмет и тд и тп
Название: [Oblivion] Обсуждение/Вопросы по скриптам
Отправлено: AleksTirex от 11 Октября 2012, 03:48
Подскажите пожалуйста какой ни буть метод, который позволит в игре добавить окружающим нпц предмет, или магический эффект. То есть необходимо что бы в определённом радиусе (или зоне, от игрока или от заскриптованого нпц) всем окружающим нпц был добавлен предмет или магическое состояние. Нужно сделать это незаметным способом.
Это довольно просто с OBSE, надо сделать цикл на определение наличия НПС в ячейке, потом при обнаружении НПС проверить наличие у него этого предмета, если нет предмета - добавить.

scn aaaNPCaddedScript

ref myref

begin Gamemode

Set myref to GetFirstRef 35 1
Label 1
  if ( myref )
    if myref.GetItemCount ID_Item < 1
       myref.addtItem ID_Item 1
    endif
       set myref to getNextRef
       Goto 1
    endif
end

Так же можно проверять на воздействие на НПС магического эффекта myref.IsSpellTarget ID_Spell , если нет, то myref.addSpell ID_Spell

ПыСы Алиасы - это из Скайрима. Но там сделать такую проверку ещё проще и удобнее, причём всё на дефолте.