top.Battle.oBattle.oEnemySlot.nHP
top.Battle.oBattle.oEnemySlot.nMaxHP

427

(281 ответов, оставленных в Общий)

9.3 будет делаться долго, т.к. и времени не шибко много, и в планах рефакторинг кода, а 9.2.5 показала себя как достаточно стабильная версия и на ней можно продержаться.

Первый пост буду обновлять по мере принятия пожеланий от вас.

Новый функционал:
1) Лич-секретарь

Исправления:
1) Убрать задержку при входе в БК, если вы в бою
2) Убрать баг с ослабляющим остриём и неработающей в связи с ним морковкой. (когда сам приём висит в слоте, морковка не работает)
3) Баг с приёмом заявки (())
4) Не останавливаться по расписанию, если в пещере
5) Убрать подачу заявок в хаотах

Украшательства:
1) Интерфейс конструктора маршрутов

Под вопросом:
1) Разделить комплекты одежды/приёмов на подземелье/бои.

428

(10 ответов, оставленных в JavaScript)

To invoke: Press any alphanumeric keyboard key.

()

В общем onKeyPress работает только с символьными кнопками - ему до фонаря, сколько кнопок на клавиатуре было нажато. Главное - какой символ они вернули в результате.

429

(10 ответов, оставленных в JavaScript)

//Присвоение событию onkeypress в качестве обработчика функцию OnKeyPress
top.Battle.oBattle.onkeypress=OnKeyPress;
 
// Это стандартная функция из БК - она во время боя используется при расстановке ударов/блоков
function OnKeyPress(eEvent)
{
    var nKeyCode = eEvent.keyCode || eEvent.charCode
    if( this.oOpenWindow )
        return;
    else if( nKeyCode == 13 )
        return this.Attack( );
    else if( nKeyCode == 32 )
        return this.Refresh( );
    else if( ( nKeyCode < 49 ) || ( nKeyCode > 53 ) )
        return;
 
    if( this.sMarkAction == "defend" )
        this.SetDefend( nKeyCode - 49, this.nMarkCount || 0 );
    else
        this.SetAttack( nKeyCode - 49, this.nMarkCount || 0 );
}

430

(27 ответов, оставленных в Общий)

На всякий случай замечу:
1) восстановил лицензию, т.к. Зерг её передал.
2) до текущего момента я эту тему не читал.

А на "прохвоста" я не обижаюсь. 350р меня всёравно не прокормят ну никак  big_smile

431

(35 ответов, оставленных в Настройки / Плагины)

обновить окно нажатием кнопки F5

О_О
Никогда не используйте в боте кнопку F5. Вам нужно обновить только верхний фрэйм, а F5 обновляет всю страницу целиком, что приводит к тому, что отваливаются все подключенные скрипты бота.

432

(10 ответов, оставленных в Проблемы / Баги / Неполадки)

Ну так после массового блока Зерг код закрыл - все файлы теперь зашиты в exe.
И надо ооочень хорошо подумать, стоит ли его снова открывать.

433

(10 ответов, оставленных в Проблемы / Баги / Неполадки)

Да в последних дистрибутивах даже папки Modules вроде бы нет...или есть, но пустая smile

Без последствий каких-либо могу продемонстрировать текущий путь после лечения:

// ------
 
        //------------ Вход в БК любого города--------
        if(external.room_name.match(/(?:Центральный Оазис|Центральная грибница|Центр падения|Центральный утес|Центральная Площадь|Центральная Поляна|Дворцовая площадь|Центральный Разлом)/i)) _path = 'Бойцовский Клуб';
        else if(external.room_name == 'Бойцовский Клуб')
        {
            if(external.SLichBackRoom.Text.match(/(?:Зал воинов|Будуар)/i)) _path = external.SLichBackRoom.Text;
            else _path = 'Этаж 2';
        }
        else if(external.room_name == 'Этаж 2')
        {
            if(external.SLichBackRoom.Text.match(/(?:Торговый Зал|Рыцарский зал)/i)) _path = external.SLichBackRoom.Text;
            else if(external.SLichBackRoom.Text == 'Комната знахаря' || external.SLichBackRoom.Text == 'Таверна') _path = 'Торговый Зал';
            else if(external.SLichBackRoom.Text == 'Башня рыцарей-магов') _path = 'Рыцарский зал';
            else _path = 'Этаж 3';
        }
        else if(external.room_name == 'Рыцарский зал' || external.room_name == 'Торговый Зал' || external.room_name == 'Этаж 3') _path = external.SLichBackRoom.Text;
        //------------ Конец Входа в БК любого города--------
 
        else if(external.SCity.Text=='suncity')
        {
            if(external.room_name == 'Врата Душ') _path = 'Овраг Возрождения';
            else if(external.room_name == 'Овраг Возрождения') _path = 'Центральная грибница';
        }

434

(11 ответов, оставленных в Общий)

()

Напиши письмо, как положено. hmm
Отправил/не отправил - это я итак по кошельку посмотрю всегда. А то, что ты ни HID не указал, ни тип лицензии - это явно не даёт мне отправить лицензию.

435

(11 ответов, оставленных в Общий)

Через два дня в командировку уезжаю на неопределенный срок.
WMZ в WMR конвертируются в самом же wm keeper classic.
+-пару рублей не имеют значения.

Я не занимаюсь решением проблем оплаты - я с себя снял эту ответственность за счет снижения цены.

Извиняюсь, недосмотрел _fullBreak - работает криво.
Остаётся только ошибку вызывать "alert(awdasdawwa)" или что-нибудь подобное. hmm

437

(2 ответов, оставленных в JavaScript)

Я всегда как-то так это представлял:

Обычные чары, ничем не примечательные.
Задача разработчика - на php, перле, asp пройти авторизацию от имени этого чара, получать ответы сервера на запросы и парсить страницы.

438

(4 ответов, оставленных в Проблемы / Баги / Неполадки)

Рустам, копируешь с форума через кнопку Цитировать?

439

(51 ответов, оставленных в Настройки / Плагины)

// type: 
// 1 - переход по картинке(поиск именно функции перехода), не чувствителен к регистру;
// 2 - поиск по текстовой ссылке,чувствителен к регистру;
// 3 - по найденному в картинке тексту(outerHTML), не чувствителен к регистру;
// 4 - поиск по value среди input-элементов,чувствителен к регистру;
// не задано - поиск во всех.

440

(54 ответов, оставленных в JavaScript)

Чтобы было удобно писать маршруты - показываю еще раз пример.

//------------ Выход из любой комнаты БК в любом городе на ЦП--------
            if(external.room_name == 'Бойцовский Клуб') _path = '(?:Центральный Оазис|Центральная грибница|Центр падения|Центральный утес|Центральная Площадь|Центральная Поляна|Дворцовая площадь|Центральный Разлом)';
            else if(external.room_name == 'Будуар' || external.room_name.indexOf('Зал воинов')>=0 || external.room_name == 'Этаж 2') _path = 'Бойцовский Клуб';
            else if(external.room_name == 'Рыцарский зал' || external.room_name == 'Торговый Зал' || external.room_name == 'Этаж 3') _path = 'Этаж 2';
            else if(external.room_name == 'Таверна' || external.room_name == 'Башня рыцарей-магов') _path = 'Рыцарский зал';
            else if(external.room_name == 'Комната знахаря') _path = 'Торговый Зал';
            else if(external.room_name == 'Огненный мир' || external.room_name == 'Колдовской мир' || external.room_name == 'Астральные миры') _path = 'Этаж 3';
 
//Ну и вход в БК с любой ЦП
if(external.room_name.match(/(?:Центральный Оазис|Центральная грибница|Центр падения|Центральный утес|Центральная Площадь|Центральная Поляна|Дворцовая площадь|Центральный Разлом)/i)) _path = 'Бойцовский Клуб';

_path у вас не используется - это то же самое, что external.ClickLink(_path,3);

Щас еще попытался посмотреть, что такое "top.frames[external.mainFrameIndex].is_accessible" - не определено. Рекомендую заменить на top.frames[external.mainFrameIndex].check_access()

441

(34 ответов, оставленных в Общий)

Combots 9.2.5:

изменения:
1) Исправлена работа чата
2) Исправлена кнопка Группа
3) Улучшен алгоритм поднятия ключей в групповом данже
4) Добавлен рандомный таймаут при запуске бота(Стартует бота через промежуток времени). Отключить нельзя.

Для плагинописателей:
1) При перелете в другой город скрипты бота будут подгружаться автоматически
2) Для сохранения значений переменных при перелетах и подобных случаях, когда глобальные переменные обнуляются, создано 3 external функции:

  • external.InitVal(key,val) - если не существует переменной с именем key, то она создается и ей присваивается значение val. Если переменная уже есть - оставляет её значение без изменения

  • external.SetVal(key,val) - как и InitVal, но присваивает значение в любом случае

  • external.GetVal(key) - возвращает значение переменной key

key - строковый параметры, val - по идее, объект любого типа.

()

Программа требует Microsoft .NET Framework 3.5:
()
*Если у вас Windows 7, то качать/устанавливать .NET Framework 3.5 вам не нужно.

()

442

(22 ответов, оставленных в Проблемы / Баги / Неполадки)

За тем, что там информация для разработчика только была smile

443

(17 ответов, оставленных в Общий)

Я понимаю, но зачем я буду платить, если уже платил?

Не ну я всё понимаю, но лицензия была на компьютер. На абсолютно конкретную машину. И об этом всегда прямо заявлялось.
Я даже аналогии приводить не буду...

444

(9 ответов, оставленных в Проблемы / Баги / Неполадки)

По папке Combots правой кнопкой -> Свойства -> Безопасность -> Изменить -> Добавить -> написать слово Все -> Ок -> галочка Полный доступ для Все.

445

(16 ответов, оставленных в Общий)

Лицензию я тебе заново генерировал и отправлял на персонажа вечером в пятницу.
Если и с ней вылетает - тут уж я теряюсь.

446

(16 ответов, оставленных в Общий)

Там нет зависимости от регистра - там все буквы в нижний переводятся при проверке...

447

(16 ответов, оставленных в Общий)

Гип, спасибо за разъяснения smile

Рустам, ответил.

if (parseInt(top.Battle.oBattle.oDamageLayer.innerHTML) >= 200 && SoratnikiCount > 1)
_fullBreak=true;

Ставится в первый слот приёмов.
Если нанесено урона больше 200ХП и соратники всё ещё живы(1 - это твой персонаж) - прекратить приёмы и размены.

Если вам ломает переставлять приёмы, чтобы освободить первый слот в настройках бота - напишите так:

if (parseInt(top.Battle.oBattle.oDamageLayer.innerHTML) >= 200 && SoratnikiCount > 1)
_fullBreak=true;
else
{
//тут код приёма из первого слота
}

449

(16 ответов, оставленных в Общий)

Лицензию и логин персонажа на botorders@gmail.com

450

(40 ответов, оставленных в Общий)

Вопрос:
Не могу понять, как менять расширение у файлов, чтобы не получалось нечто вроде "Combots.license.license"

Ответ:
1) Откройте папку с установленным ботом.
2) В проводнике сверху кнопки "Файл, Правка, Вид и т.д.". Если их не видно(Windows7) - нажмите кнопку Альт.
3) Выберите Сервис -> Параметры папок (Свойста папки в winXP) -> Вид -> снимите галочку "Скрывать расширения для зарегистрированных типов файлов"

Теперь при переименовании файлов вы будете иметь возможность менять не только название (до точки разделителя), но и расширение (то что идёт после точки и описывает тип файла).