Тема: Приемы в Combots 8+
Итак, в Combots 8.0 разработана новая система приемов,
позволяющая использовать т. н. условия применения.
Использование приемов основывается на выполнении кода приемов.
Код приема является последовательностью выражений на языке JavaScript, позволяющий использование условий.
В программе разработан конструктор кода - помошник для пользователей незнакомых с языком JavaScript, создает код приема на основе простых действий.
Как создать код с помощью констркутора:
1. Если нужно использовать условие, устанавливаем значение нужного условия и нажимаем "Вставить", иначе переходим к п. 2.
2. В области "Прием" вписываем идентификатор приема (часто-используемые идентификаторы можно выбрать в выпадающем меню)
3. (опционально) Если нужно использовать обратное условие "иначе" нажимаем "Вставить else"
4. (опционально) Повторяем п.2 с другим идентификатором приема
Примеры кода:
Простое использование приема
_name = "hit_strong";
Использование приема с условием
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 10)
_name = "wis_gray_meditation";
Использование приема с прямым условием и обратным
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 33)
_name = "hit_luck";
else
_name = "hit_willpower";
Что такое "идентификатор приема"?
Условное значение на англ. языке используемое для технического именования приемов
(невозможно использовать русские имена). Пример: novice_hit, идентификатор для приема Вломить.
Как узнать его для нужного приема?
Инвентарь -> Умения -> Приемы -> Если нужный прием уже выбран, снимите.-> Выбираем прием (одеваем).
После того как прием оделся -> Правый клик на странице -> Свойства -> Адрес (URL).
(Please log in or register to see this URL)hit_willpower&all=0&r=0.832645540297005&show_cat=hidden_div_all
Выделенное является именем приема, в данном случае это Воля к победе.
Таким методом вычисляется 100% правильный идентификатор, вне зависимости от уровня приема или совпадения картинок (в старом методе).
Что (кто) такие условия приемов?
Условия приемов - выражения позволяющие использовать прием при определенных обстоятельствах.
Логическая схема условий:
1. Если "значение условия" верно
2. Выполняется прием "идентификатор приема 1"
3. Иначе (если условие неверно)
4. Выполняется прием "идентификатор приема 2"
Примеры условий:
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 33)
Условие верно только когда уровень жизни выше 33%.
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 10)
Условие верно только когда уровень маны ниже 10%.
if(top.Battle.oBattle.oGroupsLayer.getElementsByTagName("IMG")[1].sList.split(", ").length > 5)
Условие верно когда количество противников больше пяти.
Дополнительные условия:
Использование JavaScript позволяет использовать очень много условий (а не только 3 стандартных из программы).
Условия тактик
if(top.Battle.oBattle.arrRes["hit"].innerHTML > 10)
Условие верно только когда кол. набранных мечей больше 10.
Другие тактики:
if(parseInt(top.Battle.oBattle.arrRes["krit"].innerHTML) > 10) - капли
if(parseInt(top.Battle.oBattle.arrRes["counter"].innerHTML) > 10) - контрудары
if(parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 10) - блоки
if(parseInt(top.Battle.oBattle.arrRes["parry"].innerHTML) > 10) - парирования
if(parseInt(top.Battle.oBattle.arrRes["hp"].innerHTML) > 10) - сердца
if(parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) > 10) - уровень духа
Условие абсолютного значения уровня жизни (не %)
if(top.Battle.oBattle.oMySlot.nHP < 50)
Условие верно если уровень жизни меньше 50 хп.
Условие абсолютного значения уровня маны (не %)
if(top.Battle.oBattle.oMySlot.nMagic < 50)
Условие верно если уровень маны меньше 50 хп.
Условие наличия эффекта на персонаже
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["novice_hit"]) == "object")
Условие верно если на персонаже висит прием "Вломить"
if(typeof(top.Battle.oBattle.oMySlot.arrEffects["novice_hit"]) != "object")
Условие верно если на персонаже НЕ висит прием "Вломить"
Условие по имени противника
if(top.Battle.oBattle.sEnemyLogin.indexOf("Паук") > -1)
Можно использовать не полное имя.
Комплексные условия:
Два условия последовательно (логический оператор "и")
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 10 && (top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 20)
_name = "wis_gray_meditation";
Условие верно если HP ниже 20% и Мана ниже 10%.
Два условия параллельно (логический оператор "или")
if((top.Battle.oBattle.oMySlot.nMagic * 100 / top.Battle.oBattle.oMySlot.nMaxMagic) < 10 || (top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) < 20)
_name = "wis_gray_meditation";
Условие верно если HP ниже 20% или Мана ниже 10%.
Связка условий
if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 66)
_name = "hit_luck";
else if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 33)
_name = "";
else
_name = "hit_willpower";
Если HP зеленые, использует "Удачный удар", если желтые - ничего, если красные - "Воля к победе"
Раздел будет пополняться по мере появления новой информации / вопросов.