1

Тема: Проба пера. Пишу приёмы для мага огня.

В новой версии бота будут новый способ описания приёмов.
Вот попробовал написать приёмы для мага огня [9] с четырьмя умениями в серой магии.
Пока что протестировать это не удалось. Но в ближайшем будущем, я надеюсь, получится опробовать.

Набор приёмов для простой пещеры, типа Бездны:
Знак земли (wis_earth_sign),
Силовое поле[9] (wis_gray_forcefield09),
Испепеление[9] (wis_fire_incenerate09),
Очиститься кровью (hp_cleance),
Магический барьер[9] (wis_gray_manabarrier9),
Ярость (hp_enrage), 
медидация (wis_gray_meditation),
вспышка[9] (wis_fire_burst09),
тепло жизни[9] (wis_fire_heal09),
Жертва огню (wis_fire_sacrifice)

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

Выставляем первый приём:

if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_forcefield09"]) != "object")
_name = "wis_gray_forcefield09";

Если на боте нет силового поля, то ставим силовое поле.

Второй приём защиты это магический барьер.

if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_forcefield09"]) != "object" && typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_manabarrier"]) != "object")
_name = "wis_gray_manabarrier9";

если на боте нет ни силового ни магбарьера, то ставим магбарьер.
!!! обратите внимание что название эффекта ["wis_gray_manabarrier"] без девятки в конце! Это "фича" БК, название приёма и название эффекта не всегда совпадает!
В противном случае условие будет удовлетворять заданному даже если на вас уже есть барьер и бот всякий размен будет начинать с магбарьера, что разумеется не айс. Если подобная ошибка видна в логе сразу ищем подобные несоответствия.

Знак земли описываем просто. Если его нет то ставим.

if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_earth_sign"]) != "object")
_name = "wis_earth_sign";

С защитой разобрались.
Теперь пошли второстепенные приёмы. Это отхил и восстановление маны.
Сначала тепло жизни. С условием что HP у нас меньше половины. При этом параметр цели (target) меняем чтобы каст шёл в себя, а не во врага.

if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 50)
{
   _target = mylogin;
   _name = "wis_fire_heal09";
}

Потом не требующий духа приём "жертва огню". Если маны менее 80% и нет силового (пусть лучше в барьер жертвует, безопаснее).

if(top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic < 80 && typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_forcefield09"]) != "object")
_name = "wis_fire_sacrifice";

Потом жёсткая медитация жрущая дух. Если маны совсем мало, в данной настройке менее 30%.

if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 30)
_name = "wis_gray_meditation";

Теперь приёмы третьего приоритета. Это всякая прочая муть. Тут могут быть цели стихий, ярости, стойкости и т.п.
Вот у меня ярость тут будет:

if(top.Battle.oBattle.arrRes["hp"].innerHTML > 5)
_name = "hp_enrage";

И наконец только в концовке идут ударные приёмы. Для мага огня это сначала вспышка, потом испепеление. Не наоборот! Иначе вспышка никогда не пройдёт.

_name = "wis_fire_burst09";
_name = "wis_fire_incenerate09";

Сейчас думаю как использовать пылающий ужас (wis_fire_flameshock) и Пожирающее пламя[9] (wis_fire_flamming09). Но как их грамотно настроить пока в голову не пришло sad Надо чтобы они кастовались именно на ботов-магов, тем самым шеломили их. Может быть через имена ботов? Только я пока не знаю каким параметром описывается имя соперника и есть ли оно вообще. Вобщем это пока в далёких планах smile

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

Делитесь мыслями, комрады.

Отредактировано hyppo (2009-07-05 13:47:16)

(Please log in or register to see this URL)

2

Re: Проба пера. Пишу приёмы для мага огня.

Норма smile

Перенес в Разработка / Плагины, так как после окончания разработки 8.0 этот раздел будет именоваться "Настройки / Плагины".
А для разработок будет новый отдел smile

3

Re: Проба пера. Пишу приёмы для мага огня.

Вот думаю сделать условие на приём Ярость. Чтобы сердечек было не менее шести для применения приёма, чтобы одно сердечко на хил сохранить. Разумно?

(Please log in or register to see this URL)

4

Re: Проба пера. Пишу приёмы для мага огня.

Вполне разумно wink

Ответы на большинство вопросов связанных с ботом, вы найдёте здесь: (Please log in or register to see this URL)
(Please log in or register to see this URL) - проверил лично! Подробнее (Please log in or register to see this URL)

5

Re: Проба пера. Пишу приёмы для мага огня.

Потдерживаю....админ огонь)

Пьем пиво!!!

6

Re: Проба пера. Пишу приёмы для мага огня.

if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic && typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_forcefield09"]) != "object")) < 80)
_name = "wis_fire_sacrifice";

Вот бред был написан в этом приёме (жертва огню) и никто так и не проверил? smile

Заменил. Надо вот так:

if(top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic < 80 && typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_forcefield09"]) != "object")
_name = "wis_fire_sacrifice";

Отредактировано hyppo (2009-07-05 13:48:25)

(Please log in or register to see this URL)

7

Re: Проба пера. Пишу приёмы для мага огня.

Чтобы не начинать новую тему.......
Я маг огня... Ниче не пойму.
Есть следующие скрипты:
Использую барьер
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_manabarrier"]) != "object")
_name = "wis_gray_manabarrier9";

пытаюсь использовать либо жертву огня либо тепло жизни
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 33)
    _name = "wis_fire_sacrifice";
else
    _name = "wis_fire_heal09";

и использую испепеление
_name = "wis_fire_incenerate09";

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

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

8

Re: Проба пера. Пишу приёмы для мага огня.

Точно! Вспомнил! smile

Вот так надо выставлять приём:

if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 50)
_target = mylogin;
_name = "wis_fire_heal09";

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

P.S. Посмотрел логи и с удивлением обнаружил что я хожу без хила smile И ничего, хожу smile
P.P.S. Лишний флуд удалил. virst123 спасибо тебе большое! smile

(Please log in or register to see this URL)

9

Re: Проба пера. Пишу приёмы для мага огня.

Да, ты прав! Проблема решена! Отлично! Тестим дальше!

10

Re: Проба пера. Пишу приёмы для мага огня.

if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 50)
{
   _target = mylogin;
   _name = "wis_fire_heal09";
}

Когда 2 комманды или больше нужно вставить их в скобки.

11

Re: Проба пера. Пишу приёмы для мага огня.

Что надо прописывать, чтобы использовать магические приёмы? Те, которые требуют выбрать цель.
А то маг огня вообще ничего не хочет в бою использовать сам sad

12

Re: Проба пера. Пишу приёмы для мага огня.

Pokemon15 пишет:

Что надо прописывать, чтобы использовать магические приёмы? Те, которые требуют выбрать цель.
А то маг огня вообще ничего не хочет в бою использовать сам sad

В настройках бота посмотри есть пункты "Воин" и "Маг". Разумеется для мага нужен режим мага, чтобы посохом не махал почём зря.

(Please log in or register to see this URL)

13

Re: Проба пера. Пишу приёмы для мага огня.

а если шокают, то само собой надо посохом махнуть... как бы тут исправить?

14

Re: Проба пера. Пишу приёмы для мага огня.

yarek2003 пишет:

а если шокают, то само собой надо посохом махнуть... как бы тут исправить?

(Please log in or register to see this URL)
Разумеется надо бы под себя поправить.

У меня вот так:

if (!top.Battle.oBattle.arrMethods["wis_gray_forcefield09"].oMethod.bEnable
&& !top.Battle.oBattle.arrMethods["wis_fire_incenerate09"].oMethod.bEnable
&& !top.Battle.oBattle.arrMethods["wis_gray_meditation"].oMethod.bEnable)
{
    if(!top.Battle.oBattle.arrMethods["wis_gray_manabarrier9"].oMethod.bEnable)
    {
        DoHit();
    }
    else
        _name = "wis_gray_manabarrier9";
}

Ещё можно было бы в качестве признака определяющего есть ли шокер на мне использовать доступность приёма "пожирающее пламя", а то висит без толку в приёмах smile

(Please log in or register to see this URL)

15

Re: Проба пера. Пишу приёмы для мага огня.

Привет. Помоги. Скажы как правильно прописать - использовать пожираху когда уровень хп противника 35% и пилающую смерть когда уровень хп противника 29-30%?

оло-оло-пыщ-пыщ-пыщ!!!111;)))

16

Re: Проба пера. Пишу приёмы для мага огня.

igrok1 пишет:

Привет. Помоги. Скажы как правильно прописать - использовать пожираху когда уровень хп противника 35% и пилающую смерть когда уровень хп противника 29-30%?

Ну это же просто.
Пожиралка:
Если на враге нет уже пожиралки и если уровень его HP ниже 35 то кастуем пожиралку[11].

if(((top.Battle.oBattle.oEnemySlot.nHP * 100 / top.Battle.oBattle.oEnemySlot.nMaxHP) < 35) && (typeof(top.Battle.oBattle.oEnemySlot.arrEffects["wis_fire_flamming11"]) != "object"))
_name = "wis_fire_flamming11";

Пылающая смерть:
Если на враге HP меньше 30 то пылающую смерть ему.

if((top.Battle.oBattle.oEnemySlot.nHP * 100 / top.Battle.oBattle.oEnemySlot.nMaxHP) < 30)
_name = "wis_fire_flamedeath";

Неужели примеры выше всего этого не показали? sad

(Please log in or register to see this URL)

17

Re: Проба пера. Пишу приёмы для мага огня.

Всё правильно прописал (барьер, знак воздуха, хил, жертва огню, вспышка, испепеление).
Не юзаются хил, жертва.. и главное(!) вспышка и испепеление (( (огонь 9)

18

Re: Проба пера. Пишу приёмы для мага огня.

Баганый пишет:

Всё правильно прописал

Баганый пишет:

Не юзаются

Либо "всё правильно", либо "не юзается". Одновременно быть не может wink

Конкретнее давай. Показывай что у тебя в приёмах.
Можно прямо из файла аккаунта, а можно из настроек. Копируй сюда.

(Please log in or register to see this URL)

19

Re: Проба пера. Пишу приёмы для мага огня.

hyppopotam пишет:

Пылающая смерть:
Если на враге HP меньше 30 то пылающую смерть ему.

if((top.Battle.oBattle.oEnemySlot.nHP * 100 / top.Battle.oBattle.oEnemySlot.nMaxHP) < 30)
_name = "wis_fire_flamedeath";

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

Я только учусь...
Your skill in "combots" is increased by 0.1%, it's now 15.7%

20

Re: Проба пера. Пишу приёмы для мага огня.

jvp пишет:

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

"До бесконечности" не будет. Бот пробует один раз.
То же самое как "Очиститься кровью". Чем перечислять все возможные негативные эффекты на персе проще потерпеть попытки бота каждый размен почиститься. Это замедляет поход на несколько минут в сумме, поэтому не критично.

(Please log in or register to see this URL)

21

Re: Проба пера. Пишу приёмы для мага огня.

а в какую строчку и в какой файл вставлять эти коды?

22

Re: Проба пера. Пишу приёмы для мага огня.

gamer8 пишет:

а в какую строчку и в какой файл вставлять эти коды?

Настройки - Приемы

оло-оло-пыщ-пыщ-пыщ!!!111;)))

23

Re: Проба пера. Пишу приёмы для мага огня.

gamer8 пишет:

а в какую строчку и в какой файл вставлять эти коды?

Это приёмы для бота версий 8.0 и выше.

(Please log in or register to see this URL)

24

Re: Проба пера. Пишу приёмы для мага огня.

У меня вопрос по магу огня : выставил ему в приемах wis_fire_incenerate04   (испепеление 4 ур.). При попытке бота использовать его пишется "Не сейчас" .Почему он нехочет его юзать?

25

Re: Проба пера. Пишу приёмы для мага огня.

Проблема решена обновлением файла main.js