Предыдущая часть:
Сущновзрыв
Давайте возьмем заклинание для убийства мобов с помощью взрывов, которое не ломает блоки, из первой части гайда, и прокачаем его.
За основу будет выступать вот это заклинание:
Это заклинание сначала определяет координаты на которых находится моб, при чем координаты берутся относительно ног, в противном случае заклинание может работать некорректно. Потом оно ломает все лишнее вроде травы и тп по этим координатам, потом там создаем воду и кастуем взрыв. Взрыв в воде не разрушает блоки. После чего остается только избавиться от воды, для этого устанавливаем на месте воды магический блок и тут же ломаем его. Преимущество такого способа избавления от воды в том, что наше заклинание не затронет любые возможные водоемы, рядом с которыми будете кастовать это заклинание.
Вообще не помешало бы добавить в это заклинание возможность регулировать силу взрыва. Предлагаю, что бы заклинание само регулировало силу взрыва на основании количества жизней и брони монстров. Проведя некоторые эксперименты, я решил что оптимальным вариантом будет просто складывать количество жизней с количеством брони, после чего умножать получившееся значение на 0,075. Для определения количества жизней и брони будем использовать руны из дополнения Hexal. Выглядеть это будет примерно так:
Вообще 15 и 200 можно будет заменить на 3 и 40.
Если расчет для силы взрыва превысит 10, то возникнет ошибка. Поэтому в итоговое заклинание надо будет добавить проверку не превышает ли сила взрыва 10, заодно туда же можно добавить вариант, когда игрок стоит на шифте. В этом случае должен будет кастоваться взрыв с максимальной 10 силой взрыва.
Так же давайте добавим возможность кастовать это заклинание в Незере. Для этого, когда игрок будет находится в нижнем мире, заменим руну создания воды, на создание лавы. А определять находится ли игровой персонаж в аду будем с помощью этой руны из дополнения Hex Gloop:
Так же стоит учесть ситуации когда заклинание будет выдавать ошибку. Например если промазать по хитбоксу моба или попытаться скастовать такое заклинание на неживое энтити появится ошибка. Подобные ситуации тоже учтем в разрабатываемом заклинании.
Давайте теперь соберем все наработки в одно заклинание и посмотрим что получится:
Бывают очень редкие ситуации, когда моб не умирает от первого выстрела. Сложно точно сказать с чем это связано, хотя у меня есть несколько предположений. Возможно это связано с зачарованием на взрывоустойчивость или еще какими то зачарованиями брони. Но подобная проблема возникает достаточно редко что бы не принимать ее во внимание.
Рейлган
Давайте поподробнее рассмотрим заклинания для разгона стрел. Вообще есть разные подходы к этому заклинанию. Дело в том, что стрелы выпущенные из лука с силой 5 нанесут в несколько раз больше урона при той же скорости. Но достаточно удобного способа реализации заклинания с таким подходом мне не попадалось. Поэтому не будем заморачиваться с "силой 5", а во главу угла поставим удобство использования.
Подобное заклинание я уже выкладывал, но в этот раз давайте немного изменим подход. Давайте в этот раз создадим это заклинание на основе руны из дополнения HexKinetics:
По факту эта руна может разгонять не только стрелы, но и скажем трезубцы, эндер жемчуг или снежки. Сам предмет должен находится на панели быстрого доступа:
Давайте для начала рассмотрим максимально упрощенную версию заклинания:
Обратите внимание, что мы ищем стрелу по тем координатам, на которых появилась стрела, а потом разгоняем ее по направлению взгляда. И конечно же там не обязательно должна быть стрела.
Что бы сэкономить медиа (аметисты) разгонять стрелу будем с помощью повторяющегося цикла. Делается это как то так:
Но сработает такой подход если у вас в стеке нет ничего лишнего. Но есть и другой подход, который не зависит от количества лишних йот в стеке:
Осталось определить сколько раз повторять этот цикл.
Хорошо бы иметь возможность корректировать силу выстрела. Для этого есть разные подходы. Некоторые из них я уже рассматривал в предыдущих частях. Но здесь давайте рассмотрим довольно продвинутый метод. Предлагаю рассмотреть ситуацию когда заклинание умеет редактировать само себя.
Что бы понять, как это работает, для начала запишите вот это заклинание в книгу:
После активации этого заклинания к цифре 0.00 прибавится 1, после чего перепишет Йоту 0.00 на 1.00 в сомом себе. При каждой последующий активации заклинания эта цифра будет увеличиваться на 1, и так будет продолжаться до 9, после чего цифра вернется к нулю. Это происходит потому, что мы не только прибавляем 1, но и берем остаток от деления на 10 благодаря следующей руне:
Изменив цифру которую я отметил красным кругом, можно регулировать после какой цифры будет записываться йота 0.00
Есть и альтернативный вариант этого заклинания:
Этот подход более чувствительный к количеству йот в стеке.
Благодаря подобной методике в одго заклинание можно скомпоновать довольно много простых заклинаний:
Вернемся к нашему рейлгану. Сделаем так, что бы на шифте переключалась сила выстрела. Предлагаю использовать три режима работы заклинания с разгоном стрел в 11, 50 и 160 циклов. Выбирать одну из этих цифр мы будем следующим образом:
На первой позиции у нас будет 0, 1 или 2, благодаря чему получим 11, 50 или 160.
Если теперь собрать все наработки в одном заклинании, то получим следующее:
Думаю этот вариант заклинания немного удобнее первого варианта.
Телепортация
Думаю вы уже умеете использовать руну Великого телепорта. Предположим в где то оставили стража (Sentinel), тогда что бы телепортироваться к нему нужно сотворить примерно такое заклинание:
Давайте добавим в это заклинание возможность устанавливать стажа на шифте:
Замечу, что если мы хотим телепортировать не игрового персонажа, а какого-то другого моба, то руну обведенную красным стоит заменить на это:
Теперь давайте реализуем подобное заклинание только уже без стража. Вместо стража используем механику, в которой заклинание редактирует само себя.
В само заклинание вставим йоту вектора, а на шифте будем перезаписывать этот вектор на новый. Тогда заклинание будет выглядеть так:
Если вы хотите телепортировать не игрового персонажа, а другого моба, то вам нужно отредактировать те части, которые я обвел красным. Что делать с ромбом вы уже знаете, а тройку нужно будет заменить на семерку.
Давайте объединим оба варианта в одном заклинании:
Теперь если взгляд падает на сущность, то телепортируется эта сущность, в противном случае телепортируется сам игровой персонаж.
Так же хочу упомянуть о некоторых особенностях работы вот этой руны:
Дело в том, что чем больше у вас скобок вложенных одна в одну, тем больше вам понадобится рун "Рассмотрения", что бы запихнуть в заклинание йоту. Вот несколько примеров:
Поэтому когда у вас много скобок используйте другой способ для записи йоты в заклинание.
Телепортация структур из блоков
Подобное заклинание я уже делал во второй части гайда. С помощью него можно при желании телепортировать целые здания. Но там сам метод телепортации построек состоял из нескольких заклинаний, да еще и кольцо использовалось. Теперь же я хочу объединить эти заклинания в одну кучу, да и кольцо использовать больше не будем. Так же стоит избавиться от использования как стража, так и кольца.
Кому интересно, можете посмотреть как Джаст создавал это заклинание: https://youtu.be/24igShW4Eyw?t=18606
Заклинание основано на рунах из дополнения Oneironaut.
Давайте сделаем так, что бы нужный режим заклинания переключался на шифте. Таких режимов у нас будет где-то 3-4 штуки. В первом режиме мы будем перемещать постройку в ноосферу, и сохранять ее координаты в самом заклинании, путем переписывания самого себя.
Тогда скелет заклинания будет таким:
Белыми цифрами я здесь обозначил номера позиций на которые надо будет вставить йоты. На первую позицию надо вставить пустой список, а на девятую - 0. На позиции 3, 4, 5 и 6 надо вставить разные заклинания. Эти заклинания при необходимости будут перезаписывать 1 позицию добавляя в пустой список координаты перемещаемых построек.
Еще замечу что на шифте можно будет переключаться только между заклинаниями на 3, 4 и 5 позиции. На 6 позицию будет перемещать заклинание под номером 3. Зачем так сделано?
Для того что бы тпшнуть строение в ноосферу нужно указать две координаты в противоположных углах постройки. За раз мы можем по направлению взгляда указать только 1 координату. Поэтому для указания 2 координат нам понадобится 2 заклинания. Заклинание на 3 позиции будет указывать первую координату, и сразу переключать режим работы на 6 позицию, что бы указать вторую координату. Если вы ошиблись указывая 1 координату, то достаточно будет переключится на шифте к заклинанию, которое запоминает первую координату.
На третью позицию нужно записать следующее:
Помните список для координат на 1 позиции? Там может храниться иди координата или список из двух координат. Вот пример того, то может находится в этом списке:
[(0, 0, 0), [(-100, 80, 90), (-90, 70, 100)]]
Поэтому этим заклинанием мы достаем первый элемент из списка и проверяем является ли этот элемент списком или вектором. Список возвращаем обратно, а вектор удаляем. Добавляем туда еще и координаты направления взгляда, перезаписываем то, что получилось на первую позицию и переключаем режим для указания второй координаты.
Предыдущее заклинание перевело режим работы, на самое последнее заклинание, которое находится на 6 позиции. Давайте посмотрим как оно выглядит:
Это заклинание запоминает вторую координату по направлению взгляда, телепортирует постройку в ноосферу по этим же координатам, и переключает режим работы обратно к заклинанию на 3 позиции.
А вот что бы телепортировать постройку обратно из ноосферы, желательно для начала правильно прицелится, а то можно случайно телепортировать постройку и не совсем туда, куда нужно было. Для точного позиционирования и служит заклинание на 4 позиции:
Если по каим то причинам у вас не установлено дополнение HexKinetics, то вам придется заменить часть этого заклинания:
Заклинание на 4 позиции просто подсветит куб в пространстве. Если этот куб расположен правильно, то переходите к следующему заклинанию, которое вернет постройку точно на то место, где был куб:
Если вы все сделаете правильно, то ваше заклинание будет выглядеть так:
Хочу заметить, что это заклинание позволяет сохранить в ноосфере сразу несколько построек. В этом случае возвращать постройки заклинание будет в обратном порядке, начиная с последнего отправленного в ноосферу.
Врата (Gate)
Давайте теперь немного прокачаем заклинание врат. Напомню, что простейшее заклинание для телепортации с помощью врат выглядит так:
Джаст в свое время неплохо так прокачал это заклинание. В итоге у него получилось нечто подобное:
Что бы телепортировать игрового персонажа с помощью такого заклинания, нужно что бы он смотрел себе под ноги. Так же оно может телепортировать любое другое энтити, на которое смотрит игровой персонаж. И на сколько я понимаю, здесь была предусмотрена ситуация, когда из-за высокого пинга, игрок телепортировался, а его книга заклинаний выпадала и оставалась на переждем месте.
Давайте добавим возможность, что бы Gate в это заклинание вручную вставлять не нужно было. Когда будете записывать заклинание Джаста, то вместо Gate поставьте какую-нибудь черточку или любую другую руну, и так и оставьте. Gate Будет вставляться туда автоматически, с помощью следующего заклинания:
Здесь, на 1 позицию вставьте заклинание Джаста. После чего создайте макрос с этим заклинанием. В качестве руны для макроса, можете использовать ту, которая находится в красном круге. Теперь достаточно выбрать в книге заклинаний пустую станицу, посмотреть на блок, координаты которого будут записаны в будущий Gate, и начертить руну этого макроса. И все, на пустой странице окажется заклинание Джаста с нужным Gate-ом.
Таким же образом можно прокачать и телепорт, который телепортирует игрового персонажа между измерениями. За основу возьмем вот это заклинание:
Так же как и в прошлый раз, вместо гейта и отпечатка измерения оставьте черточки. Бывает что с первого каста это заклинание перемещает только между измерениями, а часть с гейтом не срабатывает. Пофиксить эту проблему мне не удалось, поэтому в таких случаях кастуйте заклинание повторно.
Это заклинание нужно вставить в следующее заклинание на первую позицию:
После чего сделайте из этого заклинания макрос.
Цикл
Решил показать как можно реализовать цикл в Hex Casting без использования гамбита Тота.
За основу возьмем заклинание, которое будет бесконечно копировать и воспроизводить само себя до тех пор, пока не будет достигнут предел рекурсии.
Вместо черточки в красном квадрате вы можете вставить любое заклинание, главное что бы оно после себя не оставило в секе никакого мусора. В последнем случае все сломается.
Далее я хочу сделать так, что бы это заклинание на каждой итерации цикла вычитало 1 из 100. Для этого для начала вставим в заклинание руну 100:
Теперь сделаем так, что бы из этой сотни вычиталась единица:
Думаю всем понятно, что желании вместо руны 100 в зеленом квадрате вы можете вставить любую цифру.
Далее нужно сделать так, что бы когда сотня достигнет нуля, заклинание остановилось. Давайте прикинем какое условие для этого можно задать:
Теперь давайте все объединим в одно заклинание.
Хотите кастовать взрыв на моба до тех пор пока он жив? Проверяйте находится ли моб в направлении взгляда игрового персонажа, и если да, то повторяйте цикл.