Не работает уровень Бэквудское противостояние

while True:
enemy = hero.findNearestEnemy()
# Используй выражение if для проверки готовности способности “cleave”:
if self.isReady(“cleave”):
# Руби! (cleave)
self.cleave(enemy)
# Иначе, если cleave не готова:
else:
# Атакуй ближайшего огра! - неправильный перевод
self.say(“I’m not ready to attack you!”) - противник не отбегает, смена героя не помогает
a.kardo32@gmail.com
Korben Dallas

Check if there is enemy:

if enemy:
 if self.isReady("cleave"):
  self.cleave(enemy)
 else:
  self.say("I'm not ready to attack you!")
else:

while True:
enemy = hero.findNearestEnemy()
# Используй выражение if для проверки готовности способности “cleave”:
if enemy:
if self.isReady(“cleave”):
hero.cleave(enemy)
else:
hero.say(“I’m not ready to attack you!”)

НЕ РАБОТАЕТ!!!

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

Вы проходили этот уровень? Там нужно произносить любую фразу, что бы противники, пока их мало, не атаковали, а как только их становиться много, уже готово умение cleave которое и применяется. Это написано в советах и прохождении миссии на любом сайте, У меня, каким персонажем не пробуй не отгоняется противник.

Проходил все и многие сделал :slight_smile: Прочитайте еще раз комментарии в коде - это инструкции. там написано - “атакуйте”. Вместо этого вы пытаетесь использовать готовое решение не понимая как оно работает. Перевод введения для уровня по всей видимости старый. Также и те прохождения что вы пытаетесь использовать. Уровень был изменен пару месяцов назад (если не изменяет память). Использовать решения готовые - это как играть квест с прохождением :slight_smile:

Если есть щит со способностью “bash” - добавьте баш, а также атаку мечом во время кулдауна способности “cleave”. И любые другие доступные атаки и защиты)
З.Ы. А одиночные манчкины действительно не отбегают из-за болтовни героя. Вот вражины)

Не понял что вы предлагаете. Инструкции для уровня расчитаны на определенную экипирвку которая обязательна. Но если есть желание использовать другие способности - то без проблем.

О, пардон. Это я дал подсказки по тактике автору топика, alex’у.
Дело в том, что он прав, код вида

loop:
    enemy = hero.findNearest(hero.findEnemies())
    if enemy and hero.isReady("cleave"):
        hero.cleave(enemy)
    else:
        hero.say("Ыщьуерштп!")

который, насколько я понимаю, соответствует написанным инструкциям, не позволяет пройти уровень - если герой остаётся жив к 39.9 секунде, то уровень выдаёт “Goals: ran out of time”.
При этом одиночные враги действительно не реагируют на фразы героя, что противоречит описанию:

These Munchkins are scared of the hero!
Say something and they’ll back off.

Сначала я добавил обычный удар мечом, “bash” и “chain-lightning”, и уровень получилось пройти.
Но сейчас покопался более детально, и оказалось, что ошибся: добавление любой атаки, кроме обычной атаки мечом, неэффективно. Т.е. пройти уровень можно только с применением “cleave” и обычной атакой при перезарядке “cleave”. Так что, видимо, при изменении уровня действительно забыли поменять описание (во всяком случае, в англоязычной версии).

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

1 Like

Угу, кулдаун у других атак сводит их эффективность на данном уровне к нулю. То есть даже связка “cleave” + “bash” + “chain-lightning” не даёт результата) Только “cleave” + “attack”.

while(true) {
var enemy = hero.findNearestEnemy();
if (hero.isReady(“cleave”)) {
// Руби врагов!
hero.cleave(enemy);
}
else {
// Иначе (если cleave не готов) просто атакуй.
hero.attack(enemy);
}
}

Не могу понять,что я тут не так делаю?

while True:
enemy = hero.findNearestEnemy()
# Используй if с isReady, чтобы проверить “cleave”.
if enemy:
hero.isReady(“cleave”)
# Руби! (cleave)
hero.cleave(enemy)
# Если cleave еще не готова:
else:
hero.attack(enemy)
# Атакуй ближайшего огра!
hero.attack(enemy)

СДЕЛАЛ!! Все верно
вот правильный код:
while True:
enemy = hero.findNearestEnemy()
if enemy:
if hero.isReady(“cleave”):
hero.cleave(enemy)
else:
hero.attack(enemy)

1 Like

Continuing the discussion from Не работает уровень Бэквудское противостояние:

# Манчкины атакуют!
# Враги периодически атакуют группами.
# Если можешь, используй cleave, чтобы уничтожить толпу врагов.

while True:
    enemy = hero.findNearestEnemy()
    # Используй if с isReady, чтобы проверить "cleave":
    if enemy:
        ready = hero.isReady("cleave")
        # Руби! (cleave)
        hero.cleave(enemy)
    # Если cleave еще не готова:
    else:
        # Атакуй ближайшего огра!
        hero.attack(enemy)

дело в том что код почемуто не выполняет команды елсе

Добро пожаловать на Форум!

Здесь нужно проверить если cleave готов (для действия cleave есть перезарядка):

if enemy:
        ready = hero.isReady("cleave")
        if ready:
        # Руби! (cleave)
           hero.cleave(enemy)

спасибо, получилось!

1 Like

Не за что, обращайтесь)