Тема: Приемы Мага Воздух [10] (Бездна)
Приобретя бота, у меня возникла проблема обучить его искусству мага воздуха.
Для начала я начал «обкатывать» его в Бездне.
Пока я имею всего 15 слотов и в программе бота не предусмотрено смена наборов приемов я остановился на следующих:
1. Магический барьер [10] – "wis_gray_manabarrier10"
2. Серое Мастерство - "wis_gray_mastery"
3. Призрачный Топор - "spirit_12_prot_100"
4. Знак Воздуха - "wis_air_sign"
5. Жертва Воздуху - "wis_air_sacrifice"
6. Статика - "wis_air_charge"
7. Заряд: Поражение - "wis_air_charge_dmg"
8. Жертва Огню - "wis_fire_sacrifice"
9. Медитация - "wis_gray_meditation"
10. Цепь Исцеления [10] - "wis_air_chaincure10"
11. Цель Воздуха - "wis_air_mark"
12. Искры [10] - "wis_air_sparks10"
13. Искра - "wis_air_spark"
14. Цепь Молний [10] - "wis_air_chainlight10"
15. Молния [10] - "wis_air_shaft10"
16. Посох -)
Итак начнем.
Сначало используем защитные приемы:
1. Магический барьер [10]
Если нет Магического барьера
То Магический барьер
Иначе Если осталось < 100 Магического барьера
То Магический барьер
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_manabarrier"]) != "object")
_name = "wis_gray_manabarrier10";
else
{
if(parseInt(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_manabarrier"].GetTitle().innerHTML.match("<B>(\\d+)<\\/B>")[1]) < 100)
_name = "wis_gray_manabarrier10";
}
2. Призрачный Топор (в Бездне больше всего ботов использующих рубящий)
Если дух > 10
То Призрачный Топор
if(top.Battle.oBattle.arrRes["spirit"].innerHTML > 10)
_name = "spirit_12_prot_100";
3. Очиститься Кровью (для Грибници)
_name = "hp_cleance";
Затем вспомогательные приемы не требующие хода:
4. Серое Мастерство
Если дух > 10
То Если нет эффекта Серое Мастерство
То Серое Мастерство
Иначе Если целей эффекта Серого Мастерства < 5
То Серое Мастерство
if(top.Battle.oBattle.arrRes["spirit"].innerHTML > 10)
{
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_gray_mastery"]) != "object")
_name = "wis_gray_mastery";
else
{
masteryCount = top.Battle.oBattle.oMySlot.oEffects.innerHTML.match(/<br><span[^>]*>.(\d)?<\/span><\/div><img[^"]*".+\/wis_gray_mastery\.gif">/i);
if(masteryCount != null)
{
if(parseInt(masteryCount[1]) < 5)
_name = "wis_gray_mastery";
}
else
_name = "wis_gray_mastery";
}
}
5. Знак Воздуха
Если нет эффекта Знак Воздуха
То Знак Воздуха
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_air_sign"]) != "object")
_name = "wis_air_sign";
6. Статика
Если на противнике нет Статики
То Статика
if(typeof(top.Battle.oBattle.oEnemySlot.arrEffects["wis_air_charge"]) != "object")
_name = "wis_air_charge";
7. Заряд: Поражение
Если На противнике есть Заряды
То Если на противнике = 5 Зарядов ( > 4 )
То Поражение
if(typeof(top.Battle.oBattle.oEnemySlot.arrEffects["wis_air_charge2"]) == "object")
{
chargeCount = top.Battle.oBattle.oEnemySlot.oEffects.innerHTML.match(/<br><span[^>]*>.(\d)?<\/span><\/div><img[^"]*".+\/wis_air_charge2\.gif">/i);
if(chargeCount != null)
{
if(parseInt(chargeCount[1]) > 4)
_name = "wis_air_charge_dmg";
}
}
8. Жертва Воздуху
Если сердец > 5
То Жертва Воздуху
if(top.Battle.oBattle.arrRes["hp"].innerHTML > 5)
_name = "wis_air_sacrifice";
Приемы востановления манны/жизни:
9. Жертва Огню/Медитация
Если уровень манны < 66%
То Жажда огню
Если уровень манны < 10%
То Медитация
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 66)
{
_name = "wis_fire_sacrifice";
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 10)
_name = "wis_gray_meditation";
}
10. Искра/Цепь Исцеления [10]
Если уровень жизни < 66%
То Искра
Если уровень жизни < 33%
То Цепь Исцеления [10]
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 66)
{
_target = mylogin;
_name = "wis_air_spark";
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 33)
{
_target = mylogin;
_name = "wis_air_chaincure10";
}
}
11. Цель Воздуха
Если духа > 10
То Если нет на противнике Цель Воздуха
To Цель Воздуха
Иначе Если на противнике < 5 Целей Воздуха
То Цель Воздуха
if(top.Battle.oBattle.arrRes["spirit"].innerHTML > 10)
{
if(typeof(top.Battle.oBattle.oEnemySlot.arrEffects["wis_air_mark"]) != "object")
_name = "wis_air_mark";
else
{
markCount = top.Battle.oBattle.oEnemySlot.oEffects.innerHTML.match(/<br><span[^>]*>.(\d)?<\/span><\/div><img[^"]*".+\/wis_air_mark\.gif">/i);
if(markCount != null)
{
if(parseInt(markCount[1]) < 5)
_name = "wis_air_mark";
}
else
_name = "wis_air_mark";
}
}
Боевые приемы:
12. Искры [10]
Если > 1 Противника и есть Жертва Воздуху
То Искры
if((top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ").length > 1) &&
(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_air_sacrifice"]) == "object"))
_name = "wis_air_sparks10";
13. Искра
Если есть Жертва Воздуху
То Искра
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_air_sacrifice"]) == "object")
_name = "wis_air_spark";
14. Цепь Молний [10]
Если > 1 Противника
То Цепь Молний
if(top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ").length > 1)
_name = "wis_air_chainlight10";
15. Молния [10] Выжигаем Большой Тяжёлый Молот
var enemies = top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ");
for(i=0; i<enemies.length; i++)
{
if(enemies[i].indexOf("Большой Тяжёлый Молот") > -1)
_target = enemies[i];
}
_name = "wis_air_shaft10";
16. Посох
Если Боевые приемы не активны
То Если Медитация активна
То Медитация
Иначе бьем Посохом
if((!top.Battle.oBattle.arrMethods["wis_air_chainlight10"].oMethod.bEnable) &&
(!top.Battle.oBattle.arrMethods["wis_air_shaft10"].oMethod.bEnable))
{
if(top.Battle.oBattle.arrMethods["wis_gray_meditation"].oMethod.bEnable)
_name = "wis_gray_meditation";
else
DoHit();
}
Отредактировано IgorFIN (2009-09-01 11:41:25)