Мы тут обсуждали на днях и так ни к какому выводу и не пришли, посему спрашиваю народного гласа!

Во-первых, как люди выходят из Лимба? Если судить по опыту Мол и Кобба — надо просто самоубиццо/умереть — и ты просыпаешься. Т. е., по идее — это как самый обычный сон: умер — проснулся. Но тогда почему все этого Лимба так боятся и так им пугают?

Казалось бы, чего проще: проинструктировал на всякий случай всех, что как очнетесь на берегу подсознания — сразу ныряйте обратно и утопайте снова — и всего делов. Ну время там дольше тянется — ну дык, никто ж не велит засиживаться?

И во-вторых, как вся компашка вышла с первого уровня сна? Ведь в начале работы они обсуждали, что с таким снотворным на первом уровне у них неделя, умереть — нельзя, иначе Лимб, а вся их работа заняла ну день максимум на первом уровне, что там у них было: Юсуф их повозил по городу, а потом они утонули, а потом выплыли. И вот что, остальные несколько дней они тупо сидели на бережку и ждали, пока снотворное выветрится? И что сталось с воинственными проекциями Фишера — они перестали за ними гоняться, что ли? Можно понять, конечно, учитывая, что подсознанию Фишера нужно многое переварить и, возможно, у его проекций уже не было сил бегать и пытаться кого-то замочить, но все-таки!

Полный обзор мода dimensional doors 1.12.2+

Источник: diary.ru

42 строки кода для выхода из лимба

Вы ведь знаете, как это бывает: большой проект долго проектируется, долго пишется, порой вымучивается и в конце концов сдается. Проходит месяц другой «горячей отладки», и после наступает благоговейная тишина. От заказчика ничего не слышно. И не потому что он разорился благодаря вашим трудам; счета за телефон у него не оплачены, а интернет давно отключен, нет) Просто у него все работает в штатном режиме.

Но в один прекрасный день… Правильно! Прилетает мыло «ваша программа не работает» ((С) bash), телефоны разогреваются до красна, а юристы нервно перечитывают, что они там накидали в раздел «гарантийное обслуживание».

Ровно такая ситуация была и у нас. Делали мы довольно увесистый проект, суть которого можно было бы описать так (кратко, конечно): есть разный контент (клиентская база, маркетинговая база, база связей и прочее, прочее, прочее) и различные способы его представления (widget, popup, modal etc.). Иными словами, с нашей стороны была подготовлена платформа (API доступа к данным, визуализация, вся, как это модно говорить, экосистема (хотя я не знаю, что это значит, но звучит уж очень круто)), чтобы разработчики заказчика могли писать свои контролеры данных и просто файликом их «класть» в указанное место, после чего счастливо лицезреть, как появляется новенький виджет со списком текущих котировок по какому-нибудь мудрёному индексу.

И как я уже сказал, все складывалось хорошо. Провели несколько «мастер» классов, все показали, все рассказали, выпили пива и завертелось. Уже без нас.

Пока все не сломалось. Именно так: «все» и «сломалось». В какие-то моменты приложение просто стало намертво виснуть. Да так, что вкладку браузера не закроешь. Мало-мальски опытный web-developer тут же скажет – у вас цикл где-то заклинило ребятишки.

И будет прав, что уж там.

Но прежде чем перейти к тем самым 42 строкам кода, я лишь напомню, что когда имеется приложение с кучей всяких вкусняшек внутри, то лучший способ организации коммуникации между ними – это внутренние события. И у нашего в момент сдачи проекта их было под сотню, а когда начались проблемы их число приросло еще на пару десятков.

И, как вы уже догадались, «клинило» как раз контроллер событий. На пальцах: событие A, вызывает событие B, а событие B – событие C, а оно, в свою очередь, вновь вызывает событие A. Та-да-м, встречайте цикл!

Наш обработчик событий был до безобразия простой и ютился в файлике на 44 строках кода. Однако он не умел делать весьма актуальную вещицу – проверять не в цикле ли он.

Читайте также:  Как находить структуры в Майнкрафте

Много пить думать не пришлось и решение нашли довольно быстро. Хорошее оно или плохое – это все на ваш суд. Опишу лишь основную идею.

Единственный способ проверить «кто» вызвал цепочку событий (в нашем примере найти A, B и C) – это проверить stack. Чтобы получить stack нужно просто «выбросить» ошибку.

Остается проблема – как «пометить» место вызова события, ведь в стеке должно быть что-то, что помогло бы распознать всю цепочку ранее запущенных событий? Одно из решений этой проблемы – поименованные функции-обертки, в имени которых как раз и хранится вся информация о предыдущих событиях. Ничего не поняли? Я вот написал, перечитал и тоже не понял. Проще посмотреть код.

В общем теперь, если выполнить это (событие A вызывает B, B вызывает С, а C вновь вызывает A):

var safeevents = new SafeEvents(); safeevents.bind(‘A’, function () < safeevents.trigger(‘B’); >); safeevents.bind(‘B’, function () < safeevents.trigger(‘C’); >); safeevents.bind(‘C’, function () < safeevents.trigger(‘A’); >); safeevents.trigger(‘A’);

То на этот раз приложение не уйдет в лимб, а выбросит в консоль исключение «Uncaught Error: Event [A] called itself. Full chain: A, B, C». Profit. Теперь разработчику не нужно уходить на три дополнительных перекура, чтобы сообразить в чем собственно дело – все видно из сообщения в консоли.

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

var safeevents = new SafeEvents(); safeevents.bind(‘A’, function () < safeevents.trigger(‘B’); >); safeevents.bind(‘B’, function () < safeevents.trigger(‘C’); >); safeevents.bind(‘C’, function () < /* * Use method «safely» to wrap your async methods and create safe callback. */ setTimeout(safeevents.safely(function () < safeevents.trigger(‘A’); >), 10); >); safeevents.trigger(‘A’);

Обратите внимание на функцию обратного вызова в таймере. Мы добавляем «обертку», чтобы передать данные о предыдущих событиях в асинхронных вызовах. И вновь в консоли мы увидим: «Uncaught Error: Event [A] called itself. Full chain: A, B, C».

Конечно, не всегда нужно брать так и нагло выбрасывать исключение. Значительно лучше тихонечко сообщить куда следует записать данные в лог или отправить уведомление админу. Для чего можно поставить свой обработчик на случай «зацикливания» и получить все необходимые данные.

var safeevents = new SafeEvents(); safeevents.bind(‘A’, function () < safeevents.trigger(‘B’); >); safeevents.bind(‘B’, function () < safeevents.trigger(‘C’); >); safeevents.bind(‘C’, function () < safeevents.trigger(‘A’); >); safeevents.bind(safeevents.onloop, function (e, chain, last_event, stack) < console.log(‘Error message: ‘ + e); console.log(‘Full chain of events: ‘ + chain.join(‘, ‘)); console.log(‘Last event (generated loop): ‘ + last_event); console.log(‘Error stack: ‘ + stack); >); safeevents.trigger(‘A’);

Теперь наше приложение вовсе не прерывается, но цикл при этом будет успешно предотвращен.

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

Счастья, добра и электричества в ваши дома.

  • Разработка веб-сайтов
  • JavaScript
  • Node.JS

Источник: habr.com

Vampire life

Vampire life

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

Как попасть в Лимб.

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

Зал скорби — открывающая локация, в которой находится Гласея.

Повторное посещение Лимба возможно в двух случаях.
1) Герой умер
Количество смертей зависит от того, подписан ли договор с суккубой или нет.

2) Герой телепортировался в «Зал скорби»
Свиток, который даст постоянный доступ к телепортации можно купить у Гласеи.

Рекомендации:

Как попасть в лимб, если мой персонаж слишком сильный?
Если ваш персонаж слишком сильный, чтобы погибать от 10скилловых морфов, то следует отправится на волчий остров, доступ к которому открывается после данного квеста.
Когда персонаж будет на острове, можно считать, что самая сложная часть выполнена. Осталось лишь умереть от Волколака-зомби, после чего герой появится в Зале скорби. (Актуально для версии 0.70.3!)

Читайте также:  Что такое codechickenlib в Майнкрафт

Как проще открыть телепорт в Лимб?

Свиток телепортации в «Зал скорби» стоит 5 душ, есть несколько способов накопить данное количество.
1) Подписать контракт с Гласеей, выбраться из Лимба «заплатив частью своей души«. После этого герой появится на кладбище с дебаффом «Рана души«, из-за которого герой сможет получать души от некоторых поверженных противников.
При выборе данного варианта для попадания в Лимб необходимо умереть 5 раз.

2) Не подписывая контракт с Гласеей попытаться выбраться самостоятельно.
В таком случае самым желанным противником выступят эти самые души, с которых гарантированно можно получить предмет. Накопив достаточное количество душ останется лишь выбраться.
При выборе данного варианта для попадания в Лимб необходимо умереть 1 раз.

Как выйти из Лимба.

Существует два варианта выхода из лимба.

Первый и самый простой — подписать контракт с Гласеей.

Второй способ возвращения — попытаться выбраться самостоятельно. Для этого необходимо найти портал. Встретить его можно на различных уровнях Лимба. Порталы есть не на всех этажах!

Объекты, которые можно встретить в Лимбе

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

Урон от мины рассчитывается по формуле Х*100 где «Х» — номер этажа.

Дерево Лимба.
Дерево, искаженное энергией лимба, из которого сочится кислота. Нельзя добывать, пока не изучена книга о растениях лимба. После изучения, при взаимодействии можно добыть немного древесины. Если повторно взаимодействовать, герой обожжется кислотой.

Плератус.
Плератус — Огненный гриб, что растет в лимбе, он очень редкий даже по меркам пустоты.
Стоит быть аккуратным в обращении с этим растением, ведь оно может взорваться даже в руках. Обладает поразительными взрывоопасными свойствами. Часто используется как катализатор в создании любых предметов или эликсиров которые могут взрываться…
Можно встретить только ниже 20 уровня лимба. Нельзя добывать, пока не изучена книга о растениях лимба.

Цветок скорби.
Известно что эти цветы хранят в себе души обитателей погибшего мира. При попытке сорвать цветок, он быстро увядает, а заключенная в нем душа навеки поглощается Лимбом.
В редких случаях души не желают исчезать в небытие и остаются даже после того, как цветок был сорван. Нельзя добывать, пока не изучена книга о растениях лимба. Для сбора достаточно пройти рядом. С некоторым шансом, можно будет получить цветок.

Переход на следующий уровень.
Данный переход есть абсолютно на каждом этаже Лимба, но иногда его сложно заметить за объектами. Рядом со спуском может быть мина или враг.

Выход из Лимба.
Портал из Лимба в мир живых. Встречается не на всех этажах. Позволяет вернутся на кладбище.

Враги уникальные для Лимба.

Уникальные уровни Лимба.

Усиления доступные в Лимбе.

Колодец света. Увеличивает обзор героя на 1. Действует только в Лимбе.

Колодец крови. Восстанавливает все здоровье героя, увеличивает максимальное значение на 5%. Действует только в Лимбе.

Колодец коллекторов. Увеличивает шанс встречи с коллекторами. Действует только в Лимбе.

Колодец скорости. Увеличивает скорость передвижения героя на 1. Действует только в Лимбе.

Советы:
Если колодец крови и света можно отнести к очень полезным, которые стоит брать не задумываясь, то с колодцем коллекторов и скорости все не так просто.
Если ваш герой слаб, то с колодцем коллекторов взаимодействовать в принципе не стоит, т.к. это тот тип врагов, которые становятся сильнее с каждым пройденным этажом.
Колодец скорости позволит быстро перемещаться по лимбу, но не стоит этим злоупотреблять, 3х будет вполне достаточно, чтобы случайно не нарваться на коллектора или мину на 50+ этажах.

Примеры билдов для Лимба

Билд от Thunder_bolt (100+ этажей в лимбе)
[Нажмите для получения подробной информации]

Оружие: Шпага со свойством «Пожирание», Дага со свойством «Точность»

Питомец: Фея

Особенности: Билд строится на основе нейтрального трейта «Гипернаблюдательность«. Колющее оружие и сет брони позволяют чаще уворачиваться, сильнее бить и не промахиваться по врагу. В основном используется стойка ловкости, но, если потребуется, то используются эликсиры для нанесения мультиудара в стойке силы.
Артефакты подобраны таким образом, чтобы увеличить исходящий урон, а Видящий глубину позволит быстрее спуститься на нижние уровни Лимба.
Благодаря навыкам, что усиливают действия защитной стойки, ее так же можно использовать при необходимости. А использования зелья «клык» перед спуском в лимб, в сочетании с высоким уроном колющего оружия и навыком «регенерации» позволит нивелировать хаосное отравление и восстанавливать здоровье в бою, при этом экономя зелья.

Читайте также:  Как перекачать Майнкрафт с телефона на ноутбук

Билд от SingMart — (100+ этажей в лимбе)
[Нажмите для получения подробной информации]

Оружие: Пара даг, можно заменить на шпаги.

Питомец: Фея

Особенности: Билд, имеющий в своей основе нейтральный трейт направленный на боевой стат (ловкость/сила/живучесть). Из преимуществ этот билд имеет большое количество брони, высокие значения характеристик. Благодаря стальному защитнику герой будет иметь еще большее количество брони.
Играется такая сборка через стойку силы, а артефакты направлены на урон и увеличение здоровья персонажа.

Билд от Echo (100+ этажей в лимбе)
[Нажмите для получения подробной информации]

Оружие: Лавовый молот точности — дает +10 к шансу попадания и имеет зачарование +1 силы
Лавовый молот мощи — увеличивает максимальное здоровье на 10% и имеет зачарование, уменьшающее шанс кровотечения на 20%.
Может быть заменено на колющее.

Сет брони: отсутствует

Питомец: отсутствует (Рекомендуется использовать Фею)

Особенности: Как можно догадаться, данный билд строился вокруг нейтрального трейта «Нудист«, из-за чего на персонаже отсутствует сет брони, что влечет за собой потерю: 5 возможных зачарований, нескольких тысяч брони, возможные усиления от комплекта.
Чтобы нивелировать недостатки герою необходимо иметь БОЛЬШОЙ (16.000+) запас здоровья, который можно разогнать с помощью всевозможных баффов/артефактов.
В данном случае, имеется герой, который под большей частью баффов будет иметь примерно 30.000 очков здоровья (на момент входа в лимб), которые позволяют гулять по 50 этажам лимба не боясь подорваться на мине, а враги до 80 будут грушей для битья(в зависимости от выбора проклятых алмазов), но выше 100 приходится быть куда внимательнее, т.к. 4 мины могут отправить вас к окну быстрой загрузки.
По некоторым параметрам такой билд будет проигрывать «гипернаблюдальному ловкачу» от Thunder_bolt, но данный билд скорее «фановый» т.к. позволит вам наблюдать большие циферки урона всегда, не боясь встретить врага с иммунитетом к колющему оружию, а так же откроет часть контента, который невозможен для просмотра тем, кто не взял «Нудиста» при создании героя.
(Не возбраняется использовать сет брони имея нудиста, просто все плюсы от него сразу же сойдут на «нет». Так же лишь данный билд позволяет чувствовать себя комфортно имея 2 молота в Лимбе и не проседать по урону.)

Общие моменты в билдах и советы.

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

Глаз убийцы, Пушистые узы, Кристаллизованный венец эти артефакты нацелены на максимальный урон по противнику. Так же желательны к экипировке. Венец можно заменить Кристаллизованной черной розой.

Адская жеода/ Кристаллизованная красная роза хороший предмет, увеличивающий количество здоровья. Жеода — неограниченная возможность увеличения, но на нее не работают процентные прибавки. На Кристаллизованную красную розу работают процентные прибавки.

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

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

Фея — мастхев питомец, т.к. единственный, пассивная способность которого работает в лимбе.

Т.к. в Лимбе время бафов заморожено, стоит воспользоваться эликсирами, а так же получить все возможные бафы на ХП, для максимально комфортного исследования глубин Лимба. Баффы, рассчитанные на 1 бой закончатся после ПЕРВОГО боя.

Антиматерия накапливается от побед над противниками в лимбе и при переходе между этажами, если на них вы бились с противником. Если же вы проходите ~4 этажа без убийств, то количество антиматерии уменьшится.
Души можно получить при победе над противниками.

Этаж в лимбе

Источник: v1vampirelife.wordpress.com