Форум » Записи участника [nepewka]

Результаты поиска
nepewka  Offline  Сообщение №91 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 00:11 | Отредактировано: nepewka - 20 апреля 2014, 00:16



255
AleksTirex,  такс. Вообщем проверил все на работоспособность.

Создал Способность с постоянным эффектом на себя и Effect Archetype Script, повесил скрипт, закомпилировал.

В игре подошел к первому же попавшемуся стражнику и командой addspell добавил нашу абилку. Теперь самое интересное, как работал эффект:

Кастовал фаерболлы.

1. После попадания спелла в стражника: через 0.2сек Utility.Wait от стражника вбок или куда то внебо вылетает уже 2 фаерболла.(видимо мой обратно летит + тот фаерболл, которым он в себя должен был кастануть). То есть в себя он не кастует, плюс не совсем понятно откуда 2 каст у него берется ;)

2. Не работает Return магнитуды фаерболла.(Здесь большой вопрос работает ли он вообще для SetNthMagnitudeEffect) После моего первого каста, урон фаерболла становится 20% от начальных 40, тобишь 8.

Кастую ещё раз, становится 1. Третий уже - 0 и т.д.

Мои мысли, если надо))
Лично я думаю проблема в том, что непись неможет в себя кастануть спелл у которого направленность Fire and Forget - цель.
Я как то пробовал заставить непися кастануть фаерболл в себя, ещё когда химичил с .cast
Fireball.cast(akTarget, akTarget)
Как итог - ничего не срабатывало, пока я не сменил направленность - на себя.

nepewka  Offline  Сообщение №92 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 17:14



255
Цитата AleksTirex

Вариант, как сделать простое "Уязвимость к магии" я не предлагаю, ведь если я правильно тебя понял, то тебе нужен процесс создания, а не сам результат. Поэтому играйся с новыми идеями, я лишь подскажу сами идеи, а уж реализовывать их надо тебе самому.

 
За советы большое спасибо!!  ;) Буду пробовать различные варианты.

Кстати насчет простой Уязвимости. В одном из твоих старых постов на этом форуме(кстати хороший учебник  good ) ты писал, что используешь свои Association item, для которых как то создаешь все необходимые, различные эффекты. Не поделишься ли знаниями? :)
Уж очень меня заинтересовал этот пост.

nepewka  Offline  Сообщение №93 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 19:42



255
Цитата AleksTirex

Не понял, приведи пример или ссылку.


https://modgames.net/forum/1-9434-19#937536

nepewka  Offline  Сообщение №94 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 20:35



255
AleksTirex, понятно, спасибо! Я уж думал придумал какую то хитроумную схему по редактированию/влиянию на Actor Value  :D

Маркеры прям заинтриговали! Хочу ещё параллельно с ними разобраться, вижу в них большой потенциал))
Такой вот вопрос:
Какой маркер можно взять, самый простой такой для использования под ногами нпц для спеллкастов? Можно какой нибудь бейсик скрипт увидеть для примера, самый что ни на есть простой?)
Допустим где на каст ГГ, под ногами таргета образуется маркер, который кастует 2 фаерболла в цель  :)
(отдельно хотелось бы узнать как маркер определяет референс цели ?)

===========================

ещё 3 вопросика простых хотел давно спросить у вас))

Чем вот такая вот
Function DoCombatSpellApply( Spell akSpell, ObjectReference akTarget ) native
функция отличается от привычной SpellCast?

===

Можно ли в редакторе создать перк, который будет работать для всех? (Хочу таким образом обойти ограничение на динамичное добавление перкам актерам в игре. Создав его в редакторе заранее, но так чтобы работал на всех)
А затем уже контролировать посредством Condition/Глобалок его влияние.
Просто можно или нет так сделать?

===

Как хорошо ты знаком со вкладкой Gameplay > Settings. Есть ли там что то, что может влиять на урон спеллов? Помимо настроек игровой сложности, которые увеличивают урон от героя к нпц и обратно, с ними я уже знаком))

nepewka  Offline  Сообщение №95 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 22:04 | Отредактировано: nepewka - 20 апреля 2014, 22:08



255
AleksTirex, благодарю! А какой маркер выбрать в Property?

nepewka  Offline  Сообщение №96 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 22:16 | Отредактировано: nepewka - 20 апреля 2014, 22:17



255
Цитата AleksTirex

Там же написано: XMarker  (это и есть его ID) ;)


уже разобрался. А мы можем одновременно поставить 3 маркера например у ног нпц или только 1 за раз?

nepewka  Offline  Сообщение №97 | Тема: Вопросы по скриптам Papyrus написано: 20 апреля 2014, 22:39 | Отредактировано: nepewka - 20 апреля 2014, 23:20



255
Цитата AleksTirex

Можно хоть сотню.  А какой смысл в трёх маркерах?


Да так чисто рабочий интерес))

Чтобы в этом же скрипте добавить ещё 2 маркера, достаточно будет дописать?
ObjectReference akMarker = akSelf.PlaceAtMe(XMarker)
ObjectReference akMarker2 = akSelf.PlaceAtMe(XMarker)
ObjectReference akMarker3 = akSelf.PlaceAtMe(XMarker)

Ах да, маркеры будут работать в любых условиях или только для ГГ? Допустим если мой саммон, грозовой атронах, кастит в нпц под влиянием этой абилки

===
Ну и последнее что хотел спросить, если хочу чтобы маркер дал 3 каста подряд
akSpell.Cast(akMarker, akSelf)
akSpell.Cast(akMarker, akSelf)
akSpell.Cast(akMarker, akSelf)  ; можно ли как то заменить 3 каста одной командой? Есть ли такая в наличии? Может быть repeat какая нибудь )) Чисто для удобства, чтобы не писать 3 одинаковых строчки

===================

Проверил все в игре. С виду всё работает и выглядит прекрасно!  good



nepewka  Offline  Сообщение №98 | Тема: Вопросы по Creation Kit. Старая тема написано: 20 апреля 2014, 23:26



255
sppassword, Заходишь в СК, пишешь в поиск по айди ALL 00000007
заходишь, дальше в спелллисте все удаляешь.
Мод сохраняешь,  ставишь ему приоритет как можно выше
запускаешь игру. Всё ли ты так сделал? проверь

nepewka  Offline  Сообщение №99 | Тема: Вопросы по Creation Kit. Старая тема написано: 21 апреля 2014, 10:54



255
sppassword, в Skyrim.esm подгружается в первую очередь

nepewka  Offline  Сообщение №100 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 12:04 | Отредактировано: nepewka - 21 апреля 2014, 14:39



255
да уж, потрясающие возможности в скайриме! По сравнению то с моровиндом  :D

если создать

event onUpdate()
...
registerForUpdate(10.0)
endevent

то всё что в ... будет повторяться каждые 10 секунд бесконечно?

nepewka  Offline  Сообщение №101 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 15:30 | Отредактировано: nepewka - 21 апреля 2014, 15:37



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

В onEffectStart - понятно, он определит наш akTarget и будет по нему кастовать.
А если эвент onSpellCast? Надо написать ему в цели GetTargetActor?

====================

И ещё вопросик. Просто подскажи как правильно мне сделать)
После складывания общей магнитуды от int numEffects = akSpell.GetNumEffects()  в float magnitude = akSpell.GetNthEffectMagnitude(index)
Мы получили 300 магнитуды.
Цель - разделить 300 на 3 части по 100, так чтобы не разом в 300 урон наносился, а 3 раза по 100 (Упустим ту часть где высчитываем новый урон в SetNthEffectMagnitude и кастуем новый спелл в 20% от общей магнитуды. Этого щас нет)

>>>

int numEffects = akSpell.GetNumEffects() ; получили все эффекты заклинания
int index = 0
While index < numEffects
float magnitude = akSpell.GetNthEffectMagnitude(index) ; получили 300 магнитуды со всех эффектов
aamagnitude [index]= magnitude ; сохранили дефолтный урон

While magnitude > 100 ; делим урон.
; не знаю можно ли сделать так, чтобы спелл наносил дамаг 3 раза по 100, срабатывая при этом 1 раз.(???) Поэтому сделаю 3 спелла по 100 урона
magnitude = magnitude - 100
if magnitude = 100
endWhile
endif
akSpell.SetNthEffectMagnitude(index, magnitude)  ; akSpell наносит 100 урона
index += 1
endWhile

; кастуем. Эх, ещё бы я мог заставить его считать за меня, так чтобы он кастовал akSpell по 100 урона столько раз, сколько надо до полного деления, было бы идеально!
akSpell.cast()
akSpell.cast()
akSpell.cast()

While index < numEffects
akSpell.SetNthEffectMagnitude(index, aamagnitude[index]) ; вернули дефолт
index += 1
endWhile

... Что не так?

nepewka  Offline  Сообщение №102 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 16:45 | Отредактировано: nepewka - 21 апреля 2014, 16:57



255
Цитата AleksTirex

Прочитай мой пост на предыдущей странице про "События"/эвенты. Ты внимательно причитай и постарайся понять, что такое "Событие". Событию ничего не надо прописывать, а это ещё и невозможно.


Прочитал) Впринципе стало понятней.  :)
но по прежнему не понятно, как задать цель каста маркеру, если маркер лежит к примеру под нашему ногами, а кастануть ему надо в нпц.

"Маркер кастует на цель, а цель выбирает не он, а ты сам, и прописываешь эту цель в команду каста"

То есть и akTarget, и GetTargetActor подойдут? Главное чтобы в игре наш прицел был наведен на нпс?

p.s отдельное спасибо за ошибки. Бьюсь головой, даётся тяжело, но понимать это нужно

nepewka  Offline  Сообщение №103 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 17:36



255
AleksTirex, отлично!
Finally, как на примере нашего скрипта сделать так, чтобы маркер пальнул в нпц?

Обьясняю:
мы ставим маркер под ногами нпц, с Utility.Wait(0.3) нпц не успевает никуда убежать, поэтому получает от маркера фаерболл в лицо, НО если поставить скажем Utility.Wait(10.0) перед кастом спелла от маркера, нпц успевает недалеко уйти от места где появился наш маркер. Спустя 10 секунд фаерболл взрывается в месте появления маркера, но ни в коем случае не летит в место, где сейчас находится нпс

nepewka  Offline  Сообщение №104 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 17:49 | Отредактировано: nepewka - 21 апреля 2014, 17:54



255
Цитата AleksTirex

Вот только зачем надо разбивать одно заклинание на несколько частей? Смысла в этом нет никакого


Согласен. Единственный смысл в знаниях. Хочу подхватить как можно больше знаний с твоего кода unsure

а ещё когда ты пишешь какие нибудь обьяснения после ; всё даётся намного легче!

Кстати, вопрос немного не по теме. Какой у тебя профиль по созданию модов?
Не думал ли сделать что то типо SkyRe, с новыми перками/заклинаниями?

nepewka  Offline  Сообщение №105 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 18:41



255
AleksTirex, а что с?
Цитата nepewka

Finally, как на примере нашего скрипта сделать так, чтобы маркер пальнул в нпц? Обьясняю:
мы ставим маркер под ногами нпц, с Utility.Wait(0.3) нпц не успевает никуда убежать, поэтому получает от маркера фаерболл в лицо, НО если поставить скажем Utility.Wait(10.0) перед кастом спелла от маркера, нпц успевает недалеко уйти от места где появился наш маркер. Спустя 10 секунд фаерболл взрывается в месте появления маркера, но ни в коем случае не летит в место, где сейчас находится нпс


nepewka  Offline  Сообщение №106 | Тема: Вопросы по скриптам Papyrus написано: 21 апреля 2014, 19:42



255
AleksTirex, получилось с gettargetactor. Спасибо!

Кстати, насчет заглушек. Если захочу повесить на этот эффект абилки ещё какой нибудь скрипт, но заглушка не даст ему работать. Можно ли что то сделать, или другие скрипты в любом случае будут блокироваться?

nepewka  Offline  Сообщение №107 | Тема: Вопросы по скриптам Papyrus написано: 22 апреля 2014, 01:50 | Отредактировано: nepewka - 22 апреля 2014, 01:54



255
Цитата AleksTirex

В скрипте под спойлером есть ошибка: magnitude = magnitude / iNumCast - ошибка
magnitude = magnitude / iNumCastTMP - правильно


Спасибо, поправил!

===========

Можно ли как нибудь при повторении одного и того же события MGEF как то ограничить появление маркеров?
Я очень хочу, чтобы после 1 моего каста в игровом мире появилось 3 маркера, но я не хочу чтобы они появлялись после каждого моего каста и делали повторые касты до окончания эффекта (Utility.Wait(60.0)).
Кастанул спелл с 2 рук - получил 6 маркеров,  кастанул 6 спеллов в промежутке 2-3 секунд - получил 18 маркеров. Красным выделил то,  повторения каких команд я хочу избежать.

bool bDone

Event OnEffectStart(Actor akTarget, Actor akCaster)
Actor akVictim = GetTargetActor()
if bDone == false
bDone = true
ObjectReference akMarker = akTarget.PlaceAtMe(XMarker)
ObjectReference akMarker2 = akTarget.PlaceAtMe(XMarker)
ObjectReference akMarker3 = akTarget.PlaceAtMe(XMarker)
Utility.Wait(1.0)
AAAptaxa.Cast(akMarker, akVictim)
Utility.Wait(1.0)
AAAptaxa.Cast(akMarker2, akVictim)
Utility.Wait(1.0)
AAAptaxa.Cast(akMarker3, akVictim)

akMarker.DisableNoWait()
akMarker.Delete()
akMarker2.DisableNoWait()
akMarker2.Delete()
akMarker3.DisableNoWait()
akMarker3.Delete()
Utility.Wait(60.0)
bDone = false
endif
endEvent

nepewka  Offline  Сообщение №108 | Тема: Вопросы по скриптам Papyrus написано: 22 апреля 2014, 12:53 | Отредактировано: nepewka - 22 апреля 2014, 12:54



255
LordVadim, Спасибо за совет!!! Помогло

GlobalVariable Property AAAbegemot auto
Static Property XMarker auto
Spell Property AAAptaxa auto

Event OnEffectStart(Actor akTarget, Actor akCaster)
float begemot = AAAbegemot.GetValue()
Actor akVictim = GetTargetActor()
if begemot == 0.0
ObjectReference akMarker = akTarget.PlaceAtMe(XMarker)
ObjectReference akMarker2 = akTarget.PlaceAtMe(XMarker)
ObjectReference akMarker3 = akTarget.PlaceAtMe(XMarker)
Utility.Wait(1.0)
AAAptaxa.Cast(akMarker, akVictim)
Utility.Wait(1.0)
AAAptaxa.Cast(akMarker2, akVictim)
Utility.Wait(1.0)
AAAptaxa.Cast(akMarker3, akVictim)
akMarker.DisableNoWait()
akMarker.Delete()
akMarker2.DisableNoWait()
akMarker2.Delete()
akMarker3.DisableNoWait()
akMarker3.Delete()
AAAbegemot.SetValue(1.0)
Utility.Wait(180.0)
AAAbegemot.SetValue(0.0)
endif
endEvent

=========

Кстати, что значит оператор -= ??
Всё никак не пойму. Типа присвоенное число уменьшающиеся на 1?

nepewka  Offline  Сообщение №109 | Тема: Вопросы по скриптам Papyrus написано: 22 апреля 2014, 14:34 | Отредактировано: nepewka - 22 апреля 2014, 14:35



255
Цитата LordVadim

Так понятно?


Да!

Но теперь возникла проблема в финальной части создания скрипта.

Вообщем суть:

Идея - При попадании заклинанием Fireball, на помощь к akCaster приходят 3 невидимых духа предков (Маркеры), которые с интервалом раз в 5 секунд на протяжении 20 секунд произносят свои заклинания.
Через 20 секунд они пропадают и в течении следующих 180 секунд, покуда наша GlobalVariable == 1, вызывать снова мы их не можем.
Не работает цикл заклинаний While. При чем до этой версии скрипта он у меня работал, но там был хаос и не удавалось заполучить контроль над ним (было слишком много заклинаний от маркеров).

Посмотрите пожалуйста, что не так?

GlobalVariable Property AAAbegemot auto
Static Property XMarker auto
Spell Property AAAptaxa auto

Event OnEffectStart(Actor akTarget, Actor akCaster)

float begemot = AAAbegemot.GetValue()
Actor akVictim = GetTargetActor()

if begemot == 0.0

ObjectReference akMarker = akTarget.PlaceAtMe(XMarker)
ObjectReference akMarker2 = akTarget.PlaceAtMe(XMarker)
ObjectReference akMarker3 = akTarget.PlaceAtMe(XMarker)
AAAbegemot.SetValue(1.0)
While begemot == 1
Utility.Wait(5.0)
AAAptaxa.Cast(akMarker, akVictim)
AAAptaxa.Cast(akMarker2, akVictim)
AAAptaxa.Cast(akMarker3, akVictim)
endWhile
Utility.Wait(20.0)
akMarker.DisableNoWait()
akMarker.Delete()
akMarker2.DisableNoWait()
akMarker2.Delete()
akMarker3.DisableNoWait()
akMarker3.Delete()
Utility.Wait(180.0)
AAAbegemot.SetValue(0.0)

endif

endevent

nepewka  Offline  Сообщение №110 | Тема: Вопросы по скриптам Papyrus написано: 22 апреля 2014, 17:47 | Отредактировано: nepewka - 22 апреля 2014, 18:21



255
Цитата AleksTirex

если нет команды повтора

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

Добавлено (22 Апреля 2014, 21:47)
---------------------------------------------
Можно посчитать необходимое кол-во кастов iNumCasts, как ты вчера писал и задать цикл

While iNumCasts > 0
iNumCasts -= 1
endwhile

nepewka  Offline  Сообщение №111 | Тема: Вопросы по скриптам Papyrus написано: 22 апреля 2014, 18:17



255
Спасибо ребята!
С вашей помощью скрипт закончен и полностью готов к работе. А мы можем переходить к следующим, не менее легким скриптам!
Также выяснил почему работал ни с 1 раза он, оказывается пробелы после обьявления события в коде нежелательны

nepewka  Offline  Сообщение №112 | Тема: Вопросы по Creation Kit. Старая тема написано: 23 апреля 2014, 10:22



255
Alisa1992, если не ошибаюсь такие квесты не только ярл дает

nepewka  Offline  Сообщение №113 | Тема: Вопросы по Creation Kit. Старая тема написано: 23 апреля 2014, 13:14



255
Алиса, награда выдается функцией 

function RewardPlayer()
Game.GetPlayer().AddItem(Gold001, RewardAmount)

в скрипте

где RewardAmount
 Int Property RewardAmount = 100 Auto
{Default = 100; How much gold to reward player.}

nepewka  Offline  Сообщение №114 | Тема: Вопросы по Creation Kit. Старая тема написано: 24 апреля 2014, 07:14 | Отредактировано: nepewka - 24 апреля 2014, 07:21



255
Цитата Aloija

Как заставить компаньона использовать заклинание? Дала ему Круг защиты, поставила 100 уровень как персонажа, так и навыка восстановления, кучу маны, перки, запустила в тестовую локацию с драуграми, а он их руками колошматить принялся, Круг защиты отказывается кастовать. Проверила с другими заклинаниями - работают, хотя не все. Хочу понять по какому принципу нпс пользуются заклинаниями, может галочка какая-то есть или скрипт можно написать?


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

Самая распространенная ошибка в этом случае - это редактирование существующего актера, вместо дупликата/cоздания нового.
Проверить можно командой getav Magicka <- тык по компаньону, если мана у него будет стандартная, твои изменения просто не сохраняются в игре.

nepewka  Offline  Сообщение №115 | Тема: Вопросы по Creation Kit. Старая тема написано: 24 апреля 2014, 14:06



255
Цитата Aloija

Сделала AI пакет, теперь персонаж использует Круг защиты несколько раз за бой, если сражается с нежитью, как я и хотела, но возникла другая проблема. Когда пакет активируется персонаж "застывает" и перестает делать что либо еще, кроме использования этого заклинания по кулдауну. Хотелось бы, что бы в перерывах между кастами он сражался и хоть как-то двигался по полю боя.


c пакетами забей вообще, лучше ничего не делать.

Попробуй Израна, он действительно кастует на себя спелл Fire and Forget > Self
то что тебе нужно, смени на круг защиты только

nepewka  Offline  Сообщение №116 | Тема: Вопросы по Creation Kit. Старая тема написано: 24 апреля 2014, 16:34



255
Цитата Aloija

Круг Защиты имеет Effect Archetype - Spawn Hazard, который судя по всему НПС кастовать сами отказываются. Можно оставить  Effect Archetype - Cloak, как в заклинании Израна, но тогда нежить будет разбегаться от НПС, к которому будет привязан плащ-кург, а не из зоны, куда заклинание скастовано. Не совсем то(


ну тогда самое простое, что можно сделать скриптом:
добавь любой спелл своему компаньону на усмотрение, а через него, вернее через его MGEF можно сделать скрипт с событием oneffectstart/onspellcast и вызовом нужного тебе заклинания, который в дефолтном пакете он кастовать не хочет.
Только придется выбрать подходящий спелл на усмотрение и продумать время вызова/перезарядку

nepewka  Offline  Сообщение №117 | Тема: Вопросы по Creation Kit. Старая тема написано: 24 апреля 2014, 17:35



255
да не поможет это.
Либо скриптом, либо никак

nepewka  Offline  Сообщение №118 | Тема: Вопросы по Creation Kit. Старая тема написано: 24 апреля 2014, 20:24



255
Цитата Aloija

Эх. А почему может вылетать лицензионный CK при нажатии на кнопку add script?


не знаю, пиратский нормально работает

nepewka  Offline  Сообщение №119 | Тема: Вопросы по Creation Kit. Старая тема написано: 24 апреля 2014, 21:00



255
Цитата MemoriaVetusta

создал заклинание - комбо "испепеление + стена огня + угроза (горение разбившегося горшка с маслом)".


ого, скинешь файл мода посмотреть?

или поподробнее опиши как ты так эффекты соединил?)

nepewka  Offline  Сообщение №120 | Тема: Вопросы по скриптам Papyrus написано: 27 апреля 2014, 19:35 | Отредактировано: nepewka - 27 апреля 2014, 19:35



255
Можно ли на подобии как в Morrowind реализовать "активируемые" итемы, которые работают как спеллы?
А то тут только либо постоянный эффект на себя, если броня, либо эффект при ударе, если оружие. А активируемых вещей, как в морровинде, либо на себя, либо на цель, как спелл - даже и не видел..

Форум » Записи участника [nepewka]
Поиск:





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