The Elder Scrolls & Fallout 3 Modding

на главную страницу сайта

Форум Oblivion, Skyrim & Fallout 3/4 Modding

Объявление

Господа, те кто пользуются фотохостингом http://uploads.ru/ для размещения изображений. Рекомендую воспользоваться для упрощения загрузки вот этой программой.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » Скрипты » Балуемся скриптами


Балуемся скриптами

Сообщений 91 страница 120 из 125

91

Graf написал(а):

Забыл написать, если принудительно одевать вещь, то блок Onequip не сработает.


А вот это как раз самое главное. То есть получается - если мы пишем экипитем - мы тем самым не даем сработать блоку онэкип?

Да, столько оказывается в руководствах не написано!

А может, проще всего сделать так - повесить на актера только принудительное снятие вещи в отсутствие боя, а про то, чтобы он ее взял, не упоминать - просто сам возьмет, поскольку надо же чем-то драться?

Сейчас попробую так.

А если не получится - буду следовать советам ;)

_______________

Попробовал. Он вообще не дерется. ООООО.....

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

____________

ХАХАТРИРАЗА!!!

Просто бросил меч рядом с неписем. Потом в консоли набрал старткомбат плейер - и непись подобрал меч, стал драться им - И МЕЧ ЗАГОРЕЛСЯ СВЕТОВЫМ КЛИНКОМ!!! Все гениальное просто... Но не все простое гениально...

Это получается - надо как-то продумывать, где каждый непись возьмет свой меч.

Отредактировано Вовочка (2012-10-13 03:01:24)

0

92

Вовочка
Дело твое, я написал как я бы сделал. Все таки, меняя переменную можно, заставить взять оружие вне блока.

Отредактировано Graf (2012-10-13 02:57:48)

0

93

Graf написал(а):

Вовочка
Дело твое, я написал как я бы сделал. Все таки, меняя переменную можно, заставить взять оружие вне блока.


Пока ты писал - я вон как сделал (см. предыдущий пост).

Неписи оказывается много сами умеют...

В общем, для всех неписей надо будет просто прописать пакет поведения Find - чтобы отправляясь, допустим, на бой, они сами находили мечи - каждый свой. А потом докладывались игроку - мол, иду за тобой с полной выкладкой :))))))

Да, именно так. В квесте надо будет сделать такую стадию, в которой дать команду всем падаванам забрать мечи со склада. А магистру прописать, чтобы он перед сном сначала положил меч в сундучок рядом с кроватью, а потом шел спать. А проснувшись, первым делом вытаскивал меч из сундучка.

Отредактировано Вовочка (2012-10-13 03:16:32)

0

94

Недавно начал пробовать писать скрипты для Обливиона и многого пока не понимаю.

1. Каким образом можно вычислить общее число зелий и ядов в инвентаре у игрока?
2. Можно ли как-нибудь получить ref ссылку на контейнер который в данный момент активирован игроком?

Искал похожие функции в OBSE но ничего не нашел. Может плохо искал.
Готовых ответов не прошу, буду доволен указанию на функцию если таковая есть, или подсказке по коду скрипта :)
Заранее благодарен.

0

95

Rinsvind написал(а):

Каким образом можно вычислить общее число зелий и ядов в инвентаре у игрока?


Ну в общем - это возможно, только надо писать скрипт, который расписывает КАЖДОЕ зелье в игре. И сделать столько же переменных на каждое зелье, присвоить им значение, полученное функцией getitemcount данного зелья в инвентаре игрока. А потом получить общее количество зелий суммированием этих переменных и присваиванием этой суммы еще одной переменной. В общем, не скрипт, а простыня получится, но по крайней мере невозможного в этом нет. Правда, этот скрипт не будет учитывать самодельные зелья и зелья из модов.

А так, было бы проще, если бы в ОБСЕ была функция, которая рассматривала по очереди каждый предмет в инвентаре и возвращала бы 1, если этот предмет - зелье. Но вроде я таких функций не встречал, хотя ОБСЕ я в общем плохо знаю. В основном рассматриваю уже готовые работающие скрипты и отыскиваю там нужные функции.

Отредактировано Вовочка (2012-11-04 23:54:52)

0

96

Вовочка
А разве в обливионе не считает кол-во зелий с помощью getitemcount?

0

97

Graf написал(а):

А разве в обливионе не считает кол-во зелий с помощью getitemcount?

он же будет считать ObjectID, то есть, если задать конкретное зелье, а не общее количество зелий..

0

98

Graf написал(а):

Вовочка
А разве в обливионе не считает кол-во зелий с помощью getitemcount?


как и было выше сказано - эта команда работает на конкретный ID. Поэтому я и написал, что надо тогда будет делать много проверок на каждый ID при помощи этой команды.

0

99

Вовочка написал(а):

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

В этом то и проблема. Я хочу написать скрипт который позволит создавать зелья, только если в инвентаре игрока есть пустые бутылки. Для этого необходимо вычислить момент когда игрок создает новое зелье. Прямой такой функции вроде нет, и вычислить количество зелий в инвентаре, чтобы уловить момент создания нового, тоже не выходит :(

0

100

Rinsvind написал(а):

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

Взять id пустой бутылки, сделать проверку - если бутыки есть в инвентаре - разрешить создавать зелья, иначе - нет. Ну а дальше уже разбираться с количеством бутылок/количеством создаваемых зелий.

0

101

Rinsvind написал(а):

В этом то и проблема. Я хочу написать скрипт который позволит создавать зелья, только если в инвентаре игрока есть пустые бутылки. Для этого необходимо вычислить момент когда игрок создает новое зелье. Прямой такой функции вроде нет, и вычислить количество зелий в инвентаре, чтобы уловить момент создания нового, тоже не выходит :(

А что если к алхимическим аппаратам привесить скрипт на основе блока onactivate, чтобы он срабатывал, когда пустые бутылки есть, и не срабатывал - когда их нет. Вот это как раз проще простого.

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

0

102

Вовочка
Помоему это и имел ввиду Igor_Ra...

0

103

Igor_Ra написал(а):

Взять id пустой бутылки, сделать проверку - если бутыки есть в инвентаре - разрешить создавать зелья, иначе - нет. Ну а дальше уже разбираться с количеством бутылок/количеством создаваемых зелий.

С этим-то проблем нет, но я хочу устроить так: чтобы при создании нового зелья из инвентаря игрока еще и  исчезала одна пустая бутылочка. Вот для этого и надо каким-то образом вычислить момент создания нового зелья.

0

104

Вовочка написал(а):

А что если к алхимическим аппаратам привесить скрипт на основе блока onactivate, чтобы он срабатывал, когда пустые бутылки есть, и не срабатывал - когда их нет. Вот это как раз проще простого.

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


Хммм. Вроде алхимический аппарат можно активировать всего один раз, далее игра будет находится в меню алхимии, в котором игрок активирует уже не сам аппарат, а ингредиенты для зелий.

0

105

Rinsvind написал(а):

Хммм. Вроде алхимический аппарат можно активировать всего один раз, далее игра будет находится в меню алхимии, в котором игрок активирует уже не сам аппарат, а ингредиенты для зелий.


Кстати, я ошибся - не onactivate, а onequip. И да, действительно, он сработает один раз. Вот если бы можно было в созданных зельях сделать блок  onadd - но это невозможно потому, что мы не знаем айди созданных зелий.

А вот в ОБСЕ надо бы посмотреть - если есть разновидность блоков на СРАБАТЫВАНИЕ аппарата, то тогда действительно можно.

Отредактировано Вовочка (2012-11-10 02:15:46)

0

106

Rinsvind написал(а):

С этим-то проблем нет, но я хочу устроить так: чтобы при создании нового зелья из инвентаря игрока еще и  исчезала одна пустая бутылочка. Вот для этого и надо каким-то образом вычислить момент создания нового зелья.

Сделайте бутылку одним из ингредиентов. Тогда она точно исчезнет.

+1

107

SpalnyVagon написал(а):

Сделайте бутылку одним из ингредиентов. Тогда она точно исчезнет


Все гениальное - просто.

А мне вот все никак не придет в голову, как заставить неписей прыгать за игроком, в особенности если у игрока заклинанием повышен навык акробатики - чтобы неписи не просто кастовали такое заклинание, но еще и прыгали потом.

Отредактировано Вовочка (2012-11-12 17:58:50)

0

108

Вовочка написал(а):

Все гениальное - просто.

Да, я такой.

Вовочка написал(а):

А мне вот все никак не придет в голову, как заставить неписей прыгать за игроком, в особенности если у игрока заклинанием повышен навык акробатики - чтобы неписи не просто кастовали такое заклинание, но еще и прыгали потом.

"Автоматические" прыжки вниз в движке предусмотрны, место для прыжка отмечается с помощью навмеша. А вот в том, что предусмотрены автоматические прыжки вверх вслед за лидером - я сильно сомневаюсь. У каждой анимации есть условия, при которых она может воспроизводиться. Если Вы сможете составить алгоритм (в виде набора condition) который заставит актера в нужный момент прыгнуть и если сама анимация прыжка для НПС имеется в наличии, то задача решаемая.

0

109

А можно сделать так - написать, что если ГГ прыгает и у него действует заклинание увеличения акробатики, то непись перемещается синхронно с игроком на одном и том же расстоянии от него? Типа тупо задавать изменение координат? Это для компаньонов.

А вот для врагов... Что в голову приходит - это если игрок, используя данное заклинание, приземлился, переместить врага НАД игроком и чуть в стороне - как будто он прыгнул сверху.

Эх, ну почему нельзя совместить возможности Обливиона и Академии джедаев...

0

110

Вовочка написал(а):

А можно сделать так - написать, что если ГГ прыгает и у него действует заклинание увеличения акробатики, то непись перемещается синхронно с игроком на одном и том же расстоянии от него? Типа тупо задавать изменение координат? Это для компаньонов.

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

0

111

Привет! Что-то я застряла на простейшем скрипте.. Уже делала подобное, и все работало без фокусов, но в этот раз  - никак не хочет..  :dontknow:

Мне нужно сделать следующее:  если на активатор воздействуют заклинанием огня, то загорается свеча. Вроде все просто.. Во всяком случае, я так думала.  Вот последовательность моих действий:
1. Сделала активатор (в первоначальном варианте - из ниф модели статика  не горящей свечи, это уже потом упростила - поставила обычную табличку-активатор, решив, что может модель слишком мелкая, я по ней просто не попадаю заклинанием).
2. Взяла такую же зажженную свечу из Light, окошко Initialy Disabled отметила галочкой.
3. Совместила их.
4. Составила скрипт

Первоначальный:

Scn aaaMaormerBrumaLight3HitScr
Short Flame
begin onMagicEffectHit FIDG
if Flame == 0
aaaMRLightOnRef.Enable
Set Flame to 1
endif
end

Проверила в игре - не срабатывает.. Потом вариантов было много, но вот последний:

Scn aaaMaormerBrumaLight3HitScr
Short Flame

begin onMagicEffectHit FIDG
Set Flame to 1
MessageBox "проверка"
end

Begin Gamemode
if Flame == 0
return
else
aaaMRLightOnRef.Enable
endif
end

Прикрепила скрипт к активатору.

В игру прихожу - табличка есть, свечи нет, как и должно быть. Но активатор на удар огнем не реагирует. ТО есть, даже надпись "проверка"  (MessageBox "проверка") не появляется. 
В блоке  begin onMagicEffectHit FIDG  указывала ID активатора, не помогает.
Больше пока ни к чему нет никаких привязок.  Уже голову сломала, не пойму, что не правильно..

0

112

чем долбишь? жги простейшим заклинанием пламени. которое как огнемет пшшшшшшшшшшшшшшшшшшшшшшшшш

маловероятно, но может помочь.

0

113

Пробовала и вспышкой, и каким-то посильнее, на 20 ед урона. Не работает. Надо  правда, самое мощное еще бросить рядом)))

0

114

Попробуй такой вариант:

Luna написал(а):

begin
onMagicEffectHit
Set Flame to 1
MessageBox "проверка"
end

то есть не указывая никакого эффекта. В этом случае скрипт должен запустить активатор от воздействия любым магическим эффектом. Если сработает и вылезет табличка с меседжем, значит проблема в
onMagicEffectHit FIDG
Если не вылезет - значит проблема серьезнее.

0

115

без эффекта тоже не работает... Игорь, а что может быть  серьезнее?

Заклинание мощнее тоже пробовала - не реагирует..

Отредактировано Luna (2013-10-21 20:44:25)

0

116

Luna написал(а):

без эффекта тоже не работает

Если без эффекта не работает, значит не срабатывает блок onMagicEffectHit.
Посмотри скрипты в игре, где используется этот блок:

Примеры скриптов: JskarScript, MG05RockScript, MG10ColumnScript

К сожалению у меня сейчас не установлен Обливион, не имею возможности ни посмотреть, ни попробовать варианты скриптов.

На англ. ВИКИ ест ьпара примечаний:

This function works on actors, activators, containers, doors, and (unconfirmed) furniture.
This function does not work on lights and items that can be put into an inventory.
In order for onMagicEffectHit to run, the calling object must have normal collision.

Из того, что может в твоей ситуации мешать - это пункты 2 и 3.
Второй - не работает на источниках света и предметах, которые можно забрать в инвентарь.
Третий - вызываемый объект должен иметь нормальную коллизию. Еще бы интересно знать - что значит нормальную. Но подозреваю, что причина в пункте третьем. Пробуй что-то другое поставить в качестве активатора.

+1

117

Igor_Ra написал(а):

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

  нет, тут не как источник света, это как активатор с ниф-моделью источника света, так что не из-за этого, точно. А вот

Igor_Ra написал(а):

вызываемый объект должен иметь нормальную коллизию.

, скорее всего, да. 

Igor_Ra написал(а):

Пробуй что-то другое поставить в качестве активатора.

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

0

118

Luna написал(а):

Поставила обычный рунный камень, все срабатывает)) Вот  думаю теперь - если я в максе коллизию на этот светильник-активатор сделаю статиковскую, может сработает?

Попробуй с того же рунного камня перекинуть коллизию на нужный тебе активатор в НифСкопе.

+1

119

попробую вечером)) Это надо то есть саму модельку активатора внутрь коллизии впихнуть, чтобы она была везде вокруг свечи, чтоб не промахнуться точно?)

0

120

ВСЕ!!! Игорь, спасибо за замечательный совет!!!  Все получилось, светильник аккуратненький и зажигается так, как надо!  Спасибо!!

0


Вы здесь » Форум Oblivion, Skyrim & Fallout 3/4 Modding » Скрипты » Балуемся скриптами