301

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

Так.
Версию обновил в связи с поломкой бота. Теперь должно функционировать как раньше.

Ваганычу отдельное спасибо за предоставленную информацию - сильно упростил жизнь smile

302

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

Залей файл на ()
Я со своего компьютера кинул файл на проверку - там нет реакции даже от DrWeb с сегодняшними базами...

303

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

Мне тут сообщили, что в БК мелкие изменения в плане вещей произошли.

В связи с этим прошу в случае поломки какой-либо функции, связанной с вещами, написать мне ПМ с описанием неисправности.

304

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

Интересно...
Точнее странно...вроде написано, что троян для подмены стартовой страницы, но никто о подобном поведении ещё не сообщал.

В любом случае вечером проверю обязательно.

305

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

Джентльмены, по койкам(с)
Кверти, ты не прав в своём поведении в данной теме.
Трэвл, расскажи, пожалуйста, как исправил ситуацию, чтобы остальные пользователи при столкновении с проблемой не мучались smile

306

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

По ходу файл аккаунта поломался hmm
попробуй открыть в блокноте аккаунт рабочего персонажа и сломанный и визуально сравнить.

307

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

101%ХП на первой закладке в настройках не стоит случаем? smile

308

(49 ответов, оставленных в Подземелье / Маршруты)

Почистил хранилище маршрутов полностью.
Размер маршрута увеличил до 500Кб.

Надеюсь пользоваться снова начнёте smile

309

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

Обновил до 9.2.8.12

310

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

lovemy пишет:

А в настройках покопатся не пробовал?там все есть,и галочка -чтобы копать,и куда боту бить и защиту ставить yikes

А я не уверен, что при включенном упрощенном бое БК учитывает выбранные точки удара. hmm
Если учитывает, то вроде не должно быть проблемы с этим.

По проблеме с ошибкой 0x80020101 разобрались

То, что 08 - это окончание картинки - это мы знали...в FAQ было именно описано в сообщении hyppo, как определить точное имя приёма.

312

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

Ну шагнёт он назад. А дальше что? Снова вперед ломанётся по таймеру? А потом снова шаг назад? hmm

А там нет фишки,  что к приёму надо дописывать свой уровень типа

_name = "wis_earth_strike08";

или как там он правильно пишется...
в () было написано, как быть 100% уверенным в имени приёма

_target = top.Battle.oBattle.sEnemyLogin;

Если это написать рядом с _name = ""; - тоже не помогает?

315

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

Главный совет забыли:
с сообщений плагины копировать через кнопку Цитировать. smile

316

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

()
Решение аналогично проблеме:

Вопрос: В Windows 7 выдаёт ошибку. "У вас нет разрешения на сохранение файлов в этом месте."

317

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

Если мне не изменяет память, то должно быть в этой строке не arrEffects, а oEffects

top.Battle.oBattle.oEnemySlot.oEffects.innerHTML.match(/<br><span[^>]*>.(\d)?<\/span><\/div><img[^"]*".+\/counter_piercingwounds\.gif">/i);

318

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

Если посмотреть статистику по (), то вроде не так уж и плохи дела у БК...правда упали с 1 на 28-е место в топе, но всё же достойно.

Ну вот самый массовый расстрел я не знаю, как был спален. Возможно по боту. Возможно до сих пор существует вероятность "обнаружения бота"(если такое вообще существовало). В основном банятся персонажи именно из-за глупости. smile

319

(11 ответов, оставленных в Флейм)

big_smile
сразу настроение поднялось smile

320

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

Я ничего не понял, что там в диалогах, но раз просят помочь - значит надо.

Готов предположить, что у тебя просто плохо выбран порядок условий.
Т.е. бот не проходит всегда по всем else if с попыткой понять, какое условие подходит больше всего.
Первое условие - если оно подходит, то следующие он не проверяет даже.

Соответственно если поменять местами условия "Я собираюсь уходить" с "А вы только продажами занимаетесь" - должно будет работать smile
И это...переменную _obmenFinished я бы рекомендовал переименовать, т.к. с таким именем она используется в другом плагине.

321

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

В старых версиях - работало, а теперь должно работать только так:

external.death_count

322

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

На нормальное оформление/комментирование потом "когда-нибудь" выкрою время.
А так - авось кому пригодится.


void DungeonLoadPath(string name) - загрузить маршрут подземелья
void LoadMethods(string fileName) - загрузить файл приёмов

string room_name; - текущая комната
int level; - наш уровень
int hpCurrent; - наше текущее здоровье
int hpMaximum; - наше максимальное здоровье
int manaCurrent; - наше текущее значение маны
int manaMaximum; - наше максимальное значение маны
bool inBattle; - находимся ли мы в бою
int injury; - 0-нет травмы, 1-легкая травма,2-средняя и тяжелая
bool LichProcess = false; - идёт ли процесс лечения у Лича
bool RepairEnabled = false; - идёт ли процесс Ремонта
bool ArrowsEnds = false; - закончились ли стрелы
bool dungeonEnabled; - включен ли режим подземелья
uint dungeonStartTime; - время начала текущего похода по подземелью
int death_count = 0; - количество смертей за текущий поход по подземелью
bool healWeared; - надет комплект "для отхила"
bool battleWeared; - надет комлект "боевой"
int mainFrameIndex; - top.frames[external.mainFrameIndex]-ссылка на главный фрэйм

object GetVal(string varName)
void SetVal(string varName, object value)
void InitVal(string varName, object value)

string CurrentCell() - текущая координата в подземелье
bool Started() - запущен ли бот
void Start() - запустить бота
void Stop() - остановить бота
void ExecScript(string script) - выполнить
void AddToChat(string text) - написать системное сообщение в чат(видно только вам)
void SetTrayIcon(int id) - указать значек в панели задач
void SetStatusLabel(string text) - указать текст для статусной строки

void SaveFile(string path, string contents) - записать текст в файл
string LoadFile(string path) - загрузить текст из файла
int GetCurrentSchedulerState() - текущее состояние Расписания. 0-Остановлен,1-Бои,ОстальныеЦифрыСвободны


void ShowMessageFromTray(string msg) - показать всплывающее сообщение
bool ClickLink(string searchString, int searchType)

System.Windows.Forms.ComboBox SCity;
System.Windows.Forms.GroupBox PriemsBox;
System.Windows.Forms.CheckBox SLichEnabled;
System.Windows.Forms.TextBox SLichKostyl;
System.Windows.Forms.CheckBox SBattleWithInjury;
System.Windows.Forms.CheckBox SCureInjuries;
System.Windows.Forms.TextBox SActionsOutBattleInterval1;
System.Windows.Forms.TextBox SActionsOutBattleInterval2;
System.Windows.Forms.CheckBox SStatsAdder;
System.Windows.Forms.CheckBox SComplectEnabled;
System.Windows.Forms.TextBox SComplectChangeOn;
System.Windows.Forms.TextBox SBattleAbovePercent;
System.Windows.Forms.TextBox SComplectHeal;
System.Windows.Forms.ListBox SBattleType;
System.Windows.Forms.TextBox SActionsInBattleInterval1;
System.Windows.Forms.TextBox SActionsInBattleInterval2;
System.Windows.Forms.ListBox SCharType;
System.Windows.Forms.CheckBox SEliksirEnabled;
System.Windows.Forms.CheckBox SSvitokEnabled;
System.Windows.Forms.CheckBox SAnimalEat;
System.Windows.Forms.CheckBox SArcherEnabled;
System.Windows.Forms.ListBox SBattleDogovorZayavkaType;
System.Windows.Forms.ListBox SBattleHaotZayavkaType;
System.Windows.Forms.ListBox SBattleDogovorType;
System.Windows.Forms.ListBox SBattleDogovorTimeout;
System.Windows.Forms.ListBox SBattleDogovorStatsAnalyze;
System.Windows.Forms.ListBox SBattleGroupTime;
System.Windows.Forms.ListBox SBattleGroupTimeout;
System.Windows.Forms.TextBox SBattleGroupAllies;
System.Windows.Forms.TextBox SBattleGroupEnemies;
System.Windows.Forms.CheckBox SBattleGroupKulak;
System.Windows.Forms.CheckBox SBattleGroupDeath;
System.Windows.Forms.CheckBox SBattleGroupBlood;
System.Windows.Forms.CheckBox SBattleGroupOtmoroz;
System.Windows.Forms.ListBox SBattleHaotTime;
System.Windows.Forms.ListBox SBattleHaotTimeout;
System.Windows.Forms.ListBox SBattleHaotType;
System.Windows.Forms.CheckBox SBattleHaotInvisible;
System.Windows.Forms.CheckBox SBattleHaotDeath;
System.Windows.Forms.CheckBox SBattleHaotBlood;
System.Windows.Forms.CheckBox SBattleHaotOtmoroz;
System.Windows.Forms.NumericUpDown SBattlePercent# (#=1-15) Настройки -> Поединки -> Тактика боя(проценты)

System.Windows.Forms.TextBox SPriem# (#=1-10); Настройки -> Приёмы

System.Windows.Forms.TextBox SRepairNumber; Настройки -> Общее -> максмальный износ до ремонта
System.Windows.Forms.CheckBox STrayMessages; Настройки -> Общее -> сообщение о приватах в трее (Вкл/выкл)
System.Windows.Forms.TextBox SLichBackRoom; Настройки -> Дополнительно -> Комната возврата от Лича
System.Windows.Forms.TextBox SArcherBolts;
System.Windows.Forms.TextBox SComplectBattle;
System.Windows.Forms.TextBox DungeonConstructorLocation;
System.Windows.Forms.TextBox SDungeonAttackMana;
System.Windows.Forms.TextBox SDungeonAttackHP;
System.Windows.Forms.TextBox SDungeonExitTime;
System.Windows.Forms.CheckBox SDungeonAttackMobs;
System.Windows.Forms.CheckBox SDungeonPickUpObjects;
System.Windows.Forms.TextBox SDungeonFilterList;
System.Windows.Forms.ListBox SDungeonProvodCount;
System.Windows.Forms.ListBox SDungeonProvodType;
System.Windows.Forms.CheckBox SDungeonFilterEnabled;
System.Windows.Forms.TextBox SDungeonProvodPassword;
System.Windows.Forms.TextBox SDungeonProvodLeader;
System.Windows.Forms.CheckBox SDungeonProvodEnabled;
System.Windows.Forms.CheckBox SDungeonPickForeign;
System.Windows.Forms.CheckBox SDungeonWaitAlways;
System.Windows.Forms.CheckBox SChatLogEnabled;
System.Windows.Forms.CheckBox SChatLogDivide;
System.Windows.Forms.CheckBox SChatLogSystem;
System.Windows.Forms.CheckBox SChatLogGeneral;
System.Windows.Forms.TextBox SDungeonAttackHPVariety;
System.Windows.Forms.CheckBox SDungeonCommentsEnabled;
System.Windows.Forms.CheckBox SRepairTurnedON;
System.Windows.Forms.CheckBox SRepairDressOffInRepairShop;
System.Windows.Forms.TextBox SBattleAbovePercentMana;
System.Windows.Forms.ListBox SBattleHaotMaxFighters;
System.Windows.Forms.DataGridView SBattleHaotTimeOutPriority;
System.Windows.Forms.CheckBox SComplectWeapon;
System.Windows.Forms.TextBox SActionsDungeonInterval2;
System.Windows.Forms.TextBox SActionsDungeonInterval1;
System.Windows.Forms.ComboBox SCityLogon;
System.Windows.Forms.ComboBox SBattleGroupAlliesType;
System.Windows.Forms.ComboBox SBattleGroupEnemiesType;
System.Windows.Forms.CheckBox SGoToDungeon;
System.Windows.Forms.CheckBox SLichSecretaryEnabled;
System.Windows.Forms.TextBox SAnimalFull;
System.Windows.Forms.TextBox SArcherBoltsMin;
System.Windows.Forms.ComboBox SBattleHaotPrize;

Повторяю, всё это должно прописываться как

external.********;
 
Пример:
external.Start();

Всё, что имеет тип System.Windows.Forms.****** - это элементы интерфейса, типа текстбокса, панели статуса, галочек(чекбоксов) и т.д.

Вопросы по списку задавать в отдельных темах, пожалуйста smile

323

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

1 Всегда добавляйте переменную на часто повторяющуюся длинную строку обращения к DOM.

var doc = get_mainframe().document.all[0].innerHTML;

Это, во-первых, сокращает дальнейшик код и его удобнее читать. Во-вторых, обращение к doc будет нагружать систему в разы меньше при повторных запросах.

2 При необходимости кликнуть по ссылке/кнопке/картинке используйте ТОЛЬКО
external.ClickLink("Текст",id) - нажимает ссылку и возвращает true/false была ли найдена ссылка, или нет.
Естественно с контролем видимости нажимаемого элемента. Всё делает за вас smile
Текст ищется в определенном месте в соответствии с указанным id:
1 - переход по картинке(поиск именно функции перехода), не чувствителен к регистру;
Например переход с ЦП на страшилкину улицу.
2 - поиск по текстовой ссылке,чувствителен к регистру;
Например в диалоге ответы выбирать.
3 - по найденному в картинке тексту(outerHTML), не чувствителен к регистру;
Т.е. это не только альт, но и онклик, и src и вобще всё содержимое тэга img
4 - поиск по value среди input-элементов,чувствителен к регистру;
Есть input, есть у него value. Всё просто
0 или 5 или ещё чего - поиск последовательно по всем этим алгоритмам.
Пример: external.ClickLink("Возврат",4); нажмет на кнопку с надписью "Возврат"(например выход из инвентаря)


Это то, что меня начинает раздражать в последнее время smile
По поводу нуйти текст и нажать на него, то идеалом должно быть так:

var path = "empty";
var type = 2; // по умолчанию ищем текстовую строку
var doc = get_mainframe().document.all[0].innerHTML;
 
if(doc.indexOf("известный текст, однозначно обозначающий, что надо нажать на ссылку №1. НЕ текст самой ссылки.") > -1)
    path = "Текст на ссылке №1";
else if(doc.indexOf("текст, явно принадлежавший другой странице, со второй ссылкой") > -1)
    path = "Текст на ссылке №2";
else if(doc.indexOf("между жылищем Шызожука и Рогача") > -1)
    {path = "завершить разговор"; external.DungeonLoadPath("Путь2");}
 
if(path!="empty")
    external.ClickLink(path,type);

Я честно устал писать одну и ту же структуру кода, но она эффективна.

Можно извратиться и писать в стиле(вроде qwerty такой вариант увидеть хотел):

var type = 2;
if(external.ClickLink("завершить разговор",type)) external.DungeonLoadPath("Путь2");

тут если есть ссылка, содержащая текст "завершить разговор" и бот её сумел вот прямо сейчас нажать - загружается новый маршрут с именем "Путь2.path". Вся проверка "Есть ли такая ссылка, видна и она, нажал ли бот в итоге по ней" - всё выполняется внутри external.ClickLink

324

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

Я ругаться буду, если ещё раз увижу

top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/...."

вместо использования external.ClickLink()

Серьёзно...я там кучу всяких методов защиты от поддельных ссылок вшил, а вы продолжаете устаревшие вещи практиковать.

325

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

У Mr Blanco починили - там плагин сохранился криво с непонятной кодировкой.
Причем плагин читаю - всё нормально.

alert(external.room_name) показывает "Расписание турниров"
alert(external.room_name == "Расписание турниров") показывает false

У меня чуть мир не перевернулся от того, что "Расписание турниров" оказалось не равно "Расписание турниров" smile

В общем обычным блокнотом пересохранили - стало лучше smile