Re: Приемы для уворота
pop-corn пишет:// ставь перед строкой - тогда код этой строки не будет работать
Например:
//top.Chat.Self.AddMessage("Выполнено");НЕ помогло...
А не проще удалить ? ето ведь просто послания нам ....
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
pop-corn пишет:// ставь перед строкой - тогда код этой строки не будет работать
Например:
//top.Chat.Self.AddMessage("Выполнено");НЕ помогло...
А не проще удалить ? ето ведь просто послания нам ....
Все разобрались....Спасибо ZhEkA_BK....
pop-corn пишет:// ставь перед строкой - тогда код этой строки не будет работать
Например:
//top.Chat.Self.AddMessage("Выполнено");НЕ помогло...
не может быть)
скопируй код приема, который правил, посмотрим
а всё, вопрос решен
Отредактировано pop-corn (2011-01-09 22:13:53)
Толковая статья! большое спасибо!
Вот, Анахроник помог, спасибо ему за это огромное, довел до ума прием ослабляющее острие:
if(window.EnemyTarget && get_mainframe().document.all[0].innerHTML.match(window.EnemyTarget) && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object"))
{
_name = "counter_weakblow";
_break = false;
_target = EnemyTarget;
top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );
}
else
if(Intell > 50)
{
EnemyTarget = top.Battle.oBattle.sEnemyLogin;
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object")
{
_name = "counter_weakblow";
_break = false;
_target = EnemyTarget;
top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );
}
}
else
if((typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object") && (Sila > 149 || Lovka > 149 || Inta > 149 || EnemiesCount < 4))
{
_name = "counter_weakblow";
_break = false;
_target = top.Battle.oBattle.sEnemyLogin;
top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );
}
Теперь должен работать по принципу: если висит поступь, закидывать острием противников с бонусом в 150 статов, но если напротив маг, запомнить его имя и закидывать острием (если поступь висит) именно его, чтоб тот приемы не мог юзать, если маг умер- цикл повторяется. В подземке затестил, прием бота не вешает, в хаоты не ходил, так что кто протестит- отпишитесь как работает.
возьмусь потестить , такой глупый вопрос : не может ли бот лагать из-за вот к примеру таких условий
просто уворот через пару часов начинает лажить , а крит хоть бы хны - сутку может пахать и в норме
Это уже вопрос к Анахронику или Зергу
в принципе все работает , не было к сожалению такого момента чтоб на мага спамить острием , то тактик не было , то убивали , но мне не нравится надпись которая вылазит " у вас недостаточно энергии" или что то типо того , когда тактик атаки много
Тоже тестил. На бой успевал ток 1-2 раза кинуть острие, все остальное ишло на поступь. Надпись что выскакивает тоже мешала , но думаю если задать условия на хит и контру она пропадет. Мое мнение чтоб не заморачиваться лутше использовать первый вариант без условия на мага...
Ну условие на удары и контру и сами допишите
А насчет закида магов, тут уже дело в том, насколько жирный уворот Екровым и полуекровым уворотам с пещерами второе условие пригодится.
я катаю уворотом, доволен как слон... всем огромное спасибо за приемы, вот что у меня вышло:
Воля к победе
Усиленные удары (можно заменять на Удачный удар)
Если хп больше 33 - Усиленные удары, меньше - Воля к победе, кончился дух - снова усиленные.
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) >33 ){ _name = "hit_empower";}else if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 33 && parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) > 0){ _name = "hit_willpower";} else { _name = "hit_empower"; }
Полная защита(можно и активную ставить, по желанию, но как по мне с закалкой так лучше)
используется когда количество щитов больше 6, что б оставались щиты для отмены
if(parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 5)_name = "block_fullshield";
Ослабляющее острие
ZhEkA_BK тто что ты писал как Анахроник дал, неработает, бот виснет, а то что было раньше работает
только я выставил бонусы не в 150, а в 50, так как на 7 лвле у танков даже 75 силы нету
if((top.Battle.oBattle.oMySlot.nHP > 0) && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object") && (Sila > 49 || Lovka > 49 || Inta > 49 || Intell > 50 || EnemiesCount < 4)){_name = "counter_weakblow";_break = false;_target = top.Battle.oBattle.sEnemyLogin;top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );}
Поступь смерти
Танец ветра
если хп больше 15% - Поступь смерти, меньше - танец ветра
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 15)_name = "counter_deathwalk";else_name = "counter_winddance";
писали что нужно вставить в следующий слот отдельный прием танец ветра
if((Intell < 10) && top.Battle.oBattle.sEnemyLogin.indexOf("Страж") < 0 && top.Battle.oBattle.sEnemyLogin.indexOf("(зверь") < 0 && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object"))_name = "counter_winddance";
но я сколько проверял, ниразу невидел что б он юзал танец, только поступь и ослабляющее острие, настроить и разобраться до конца руки недоходили, но мне кажется что нужно в приеме Ослабляющее острие добавить что б юзалось только если хп больше 15, но неуверен
Ярость
_name = "hp_enrage";
Утереть пот
_name = "hp_regen";
Превосходство
_name = "parry_supreme";
Отменить
Для этого приема нужно использовать 2 слота для приемов в боте, в самый первый (№1, если он занят другим приемом, передвиньте все приемы ниже и пропишите:
if(window.MyHp_temp && (MyHp_temp-top.Battle.oBattle.oMySlot.nHP)>=85) //количество урона, после которого юзать отменить{_name = "multi_rollback";top.Chat.Self.AddMessage("Выполнено");} if(window.MyHp_temp && (MyHp_temp-top.Battle.oBattle.oMySlot.nHP)>1)top.Chat.Self.AddMessage("Получен урон = "+(MyHp_temp-top.Battle.oBattle.oMySlot.nHP));MyHp_temp = top.Battle.oBattle.oMySlot.nHP;
бот будет использовать прием если по вам нанесли повреждения больше 85
и в последний слот вставте следующее:
MyHp_temp = top.Battle.oBattle.oMySlot.nHP;
незнаю для чего, сделал все как писали собраться по форуму, за что вам огромнейшее спасибо
по поводу приема, чесно говоря еще неуспел как следует протестить, незамечал еще что он его юзал, потом отмечу
последним приемом у меня стоит
Разгадать тактику
этот прием в первую очередь нужен против танков, снимать Глухую защиту, но к сожалениб я так и ненашел как же правильно прописать этот прием, встречалось на форуме несколько вариантов, но от них бот вис (точнее в бою он ненажимает вперед)
поэтому я этот прием невыставлял, юзаю его вручную если просматриваю бой
Это вариант для хаота, так как довольно частенько играю руками, отдельно сделал для груповых и против магов
если кому нужно, то добавлю
вот вам файлом, если кому удобнее
<?xml version="1.0" encoding="windows-1251"?>
<Methods>
<Priem1>if(window.MyHp_temp && (MyHp_temp-top.Battle.oBattle.oMySlot.nHP)>=85) //количество урона, после которого юзать отменить{_name = "multi_rollback";top.Chat.Self.AddMessage("Выполнено");} if(window.MyHp_temp && (MyHp_temp-top.Battle.oBattle.oMySlot.nHP)>1)top.Chat.Self.AddMessage("Получен урон = "+(MyHp_temp-top.Battle.oBattle.oMySlot.nHP));MyHp_temp = top.Battle.oBattle.oMySlot.nHP;</Priem1>
<Priem2>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) >60 ){ _name = "hit_empower";}else if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 60 && parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) > 0){ _name = "hit_willpower";} else { _name = "hit_empower"; }
</Priem2>
<Priem3>if(window.EnemyTarget && get_mainframe().document.all[0].innerHTML.match(window.EnemyTarget) && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object")){_name = "counter_weakblow";_break = false;_target = EnemyTarget;top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );}elseif(Intell > 50){EnemyTarget = top.Battle.oBattle.sEnemyLogin;if(typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object"){_name = "counter_weakblow";_break = false;_target = EnemyTarget;top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );}}elseif((typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object") && (Sila > 49 || Lovka > 49 || Inta > 49 || EnemiesCount < 4)){_name = "counter_weakblow";_break = false;_target = top.Battle.oBattle.sEnemyLogin;top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );}</Priem3>
<Priem4>if(parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 5)_name = "block_fullshield";
</Priem4>
<Priem5>_name = "hp_enrage";
</Priem5>
<Priem6>_name = "hp_regen";
</Priem6>
<Priem7>
</Priem7>
<Priem8>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 15)_name = "counter_deathwalk";else_name = "counter_winddance";</Priem8>
<Priem9>if((Intell < 10) && top.Battle.oBattle.sEnemyLogin.indexOf("Страж") < 0 && top.Battle.oBattle.sEnemyLogin.indexOf("(зверь") < 0 && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object"))_name = "counter_winddance";
</Priem9>
<Priem10>_name = "parry_supreme";
</Priem10>
<Priem11>
</Priem11>
<Priem12>MyHp_temp = top.Battle.oBattle.oMySlot.nHP;</Priem12>
<Priem13>
</Priem13>
<Priem14>
</Priem14>
<Priem15>
</Priem15>
<Priem16>
</Priem16>
<Priem17>
</Priem17>
<Priem18>
</Priem18>
<Priem19>
</Priem19>
<Priem20>
</Priem20>
<Priem21>
</Priem21>
<Priem22>
</Priem22>
<Priem23>
</Priem23>
<Priem24>
</Priem24>
</Methods>
Отменить неработает
а очень жаль
и Танец ветра при <15 неработает
но зато бот не тупит, и свое набивает (хотя можно и больше)
Отменить неработает
а очень жаль
и Танец ветра при <15 неработает
но зато бот не тупит, и свое набивает (хотя можно и больше)
Возьми "отменить" с моего файла - все работает - проверено.
Танец тоже.
[b]Barkass[/b]
спасибо большое, сейчас проверю
Barkass
огромное спасибо
все работает как часы
вот вам рабочий вариант, уже с исправлениями
единственное до сих пор нету Разгадать Тактику, а так все супер
<?xml version="1.0" encoding="windows-1251"?>
<Methods>
<Priem1>if(window.dfghj && (dfghj == top.Battle.oBattle.oMySlot.nHP))
{
_name = "multi_rollback";
top.Chat.Self.AddMessage("Работает");
}
if(window.rftyh && (rftyh-top.Battle.oBattle.oMySlot.nHP)>=85) // количество урона, больше которого отменять
{
dfghj = top.Battle.oBattle.oMySlot.nHP;
_name = "multi_rollback";
top.Chat.Self.AddMessage("Выполнено");
}
rftyh = top.Battle.oBattle.oMySlot.nHP;</Priem1>
<Priem2>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) >60 ){ _name = "hit_empower";}else if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 60 && parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) > 0){ _name = "hit_willpower";} else { _name = "hit_empower"; }
</Priem2>
<Priem3>if(typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object" && parseInt(top.Battle.oBattle.arrRes["counter"].innerHTML) > 3 && top.Battle.oBattle.oMySlot.nHP > 0 && top.Battle.oBattle.arrRes["hit"].innerHTML > 1 && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object") && (Sila > 49 || Lovka > 49 || Inta > 49 || Intell > 50 || EnemiesCount < 4))
{
_name = "counter_weakblow";
_break = false;
_target = top.Battle.oBattle.sEnemyLogin;
top.Battle.oBattle.Send( { special: _name, enemy: top.Battle.oBattle.sEnemy, login: _target } );
}</Priem3>
<Priem4>if(parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 6)_name = "block_fullshield";
</Priem4>
<Priem5>_name = "hp_enrage";
</Priem5>
<Priem6>_name = "hp_regen";
</Priem6>
<Priem7>
</Priem7>
<Priem8>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 15)
_name = "counter_deathwalk";
else
_name = "counter_winddance";
</Priem8>
<Priem9>if((Intell < 10) && top.Battle.oBattle.sEnemyLogin.indexOf("Страж") < 0 && top.Battle.oBattle.sEnemyLogin.indexOf("(зверь") < 0 && (typeof(top.Battle.oBattle.oMySlot.arrEffects["counter_deathwalk"]) == "object"))
_name = "counter_winddance";</Priem9>
<Priem10>_name = "parry_supreme";
</Priem10>
<Priem11>
</Priem11>
<Priem12>MyHp_temp = top.Battle.oBattle.oMySlot.nHP;</Priem12>
<Priem13>
</Priem13>
<Priem14>
</Priem14>
<Priem15>
</Priem15>
<Priem16>
</Priem16>
<Priem17>
</Priem17>
<Priem18>
</Priem18>
<Priem19>
</Priem19>
<Priem20>
</Priem20>
<Priem21>
</Priem21>
<Priem22>
</Priem22>
<Priem23>
</Priem23>
<Priem24>
</Priem24>
</Methods>
Отменить - если сняли больше 85 хп
Ослабляющее острие - если у противника бонус с от 50 статов (изменил для 7 лвла)
Поступь смерти
Танец ветра если хп больше 15% - Поступь смерти, меньше - танец ветра
Отменить бери с поста номер 14, там обновленная версия. Если не будет работать, напиши мне в приват, подправлю код.
Уверен что танец ветра не работает? Может просто ты в процентах 15% хп неправильно у себя определил?
Разгадать тактику должен работать попробуй с этой темы (Please log in or register to see this URL) пост номер 9. Работать должен, просто вероятность что бот попадет в подходящие условия очень маленькая
Ослабляющее острие с выжиганием магов, к сожалению, действительно неработает Исправить чтоб работала можно, но там такой скрипт получается неслабый, что бот через час работы на dual core e5200 начинает подтормаживать.
ZhEkA_BK
спасибо большое
теперь вообще супер
Спасибо.Полезная штука)
Ох, чувствую, сейчас уворотов разведется. Надо срочно тему с другими классами развивать, а то дисбаланс пойдет.
Ох, чувствую, сейчас уворотов разведется. Надо срочно тему с другими классами развивать, а то дисбаланс пойдет.
Их и так уже много)
Учитывая то, что на форуме тема про уворотов единственная более менее доведенная до конца по приемам- станет еще больше.
Еще и я присоединюсь к уворотикам)))Попробовать)
Еще и я присоединюсь к уворотикам)))Попробовать)
Не гони! На ком мы качаться будем?
Да ладно вам, здесь еще много фанатов танков, луков и арбов