Тема: Случайный юз приёма
... (вместо вступления)
и в продолжение темы (Please log in or register to see this URL) давайте сделаем случайный юз приёма.
Идея первая: есть ситуации, когда приём никогда не надо использовать, вообще. Например: 11м лвл критом королеву и хлюпов быстрее убить на энтере, не кидая порезов ни на кого из них.
Идея вторая: есть ситуации, когда приём надо использовать обязательно: например, если тактик удара уже 25, то сделаем усиленные.
Идея третья: при возможности я могу захотеть использовать приём Прикрыться, а могу не захотеть... Скажем в 35 случаях из 100 я буду использовать этот приём...
Засовываем это всё в код приёма:
var v_cast = Boolean(false);
var v_cast_abs = Boolean(false);
var v_dont_cast_abs = Boolean(false);
var v_cast_rand = Number(35); // % шанса каста (при не срабатывании абсолютов)
var v_cast_rand_min = Number(0);
var v_cast_rand_max = Number(99);
/*******************************
| НЕ используем приём (всегда) |
*******************************/
if ( (false)
// если в команде противников есть ...
|| (top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.indexOf("Хлюп") != -1)
|| (top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.indexOf("Королева Грибницы") != -1)
// если ХП противника маньше ... && противник не марочный
|| ((top.Battle.oBattle.oEnemySlot.nMaxHP < 500) && (top.Battle.oBattle.oEnemySlot.nMaxHP != 100))
// если на противнике есть ggsvern и у него 2к ХП (гусеницы с 3 этажа)
|| ( (true)
&& (top.Battle.oBattle.oEnemySlot.nMaxHP == 2000)
&& (typeof(top.Battle.oBattle.oEnemySlot.arrEffects["ggsvern"]) == "object")
&& (top.Battle.oBattle.sEnemyLogin.indexOf("Увесистый Гусениц") == 0)
)
)
{
v_dont_cast_abs = true;
}
/*******************************
| Используем приём (всегда) |
*******************************/
if (v_dont_cast_abs === false)
{
if ( (false)
// если противник ...
// Бездна
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Страж Дайтон") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Служитель Бездны") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Большой Тяжелый Молот") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Гарл Йонни Салистон") == 0)
// Катакомбы
|| (false)
// Потеряный вход
|| (false)
// ПТП
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Дарьяна Корт") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Изгнанник Мглы") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Маул Счастливчик") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Заблудшая Душа") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Дух-Хранитель") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Механический Убийц") == 0)
// Sand
|| (false)
// Грибница
|| (false)
// Передовая
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Душа Кроггентайла") == 0)
|| (top.Battle.oBattle.sEnemyLogin.indexOf("Командир") == 0)
)
{
v_cast_abs = true;
}
/*******************************
| Используем приём (иногда) |
*******************************/
if (v_cast_abs === false)
{
if ( (false)
// если - иногда!
|| (true)
)
{
if (v_cast_rand > Math.floor(v_cast_rand_min + Math.random() * (v_cast_rand_max - v_cast_rand_min + 1)))
v_cast = true;
else
v_cast = false;
}
}
/*******************************
| Приём |
*******************************/
if ((v_cast_abs === true) || (v_cast === true))
{
// _name = "Призрачная защита";
_name = "spirit_block25";
// _break = true;
}
}
Принимаются ваши коменты/замечания...
п.с. это пример кода, шаблон, а не готовый приём под призрак... реальные условия и сам приём выбирать вам на свой вкус....
Отредактировано otherway (2013-07-27 15:58:01)