1

Тема: Вопросы от Andy_SPB

На память не рассчитываю, буду записывать тут все полезное.

SPOILER Show
Включение/выключение мода проводник/прицеп через скрипт

external.SDungeonProvodEnabled.checked = 1; // 0;

Смена статуса проводник/прицеп через скрипт

external.SDungeonProvodType.Text = "Прицеп"; // "Проводник"

Перебор сообщения (с) Anahronik

var result = ""; $(".Chat",top.Chat.Self.arrLogs.oChat.oFrame).each(function(){result = this.innerText}); alert(result);

Включение/выключение бота

function ChangeTime(){
  if (!Pause){
     // тормозим бота
     external.Stop();
     Pause = true; //ключ паузы
  }else{ 
     // возвращаем бота в нормальное состояние
     external.Start();
     Pause = false;
  }
}

Запись в фаил:

external.SaveFile('test.txt', "Переменная d = "+d);

Чтение с файла (по наводке БатоВед):

external.LoadFile(".\\Plugins\\test.txt");

Доступ к закладкам (по наводке БатоВед):

top.Battle.Self.oTab.arrTabs["chat"] - чат
top.Battle.Self.oTab.arrTabs["alllog"] - общий лог
top.Battle.Self.oTab.arrTabs["mylog"] - мой лог

Парсинг кнопки смена ((c) Anahronik):

top.Battle.oBattle.arrButtons["change_enemy"]

Раздел инвентаря (c) Anahronik:

$('td[bgcolor="#a5a5a5"]',get_mainframe().document).children().text()

Список дела на ближайшее время:

SPOILER Show

  • Сделать маршрут грибницы (1 этаж). -  отложено

  • Реализовать подсчет ходов. - отложено

  • Реализовать выбор определенных противников (по фильтру) - отложено

  • Помыть машину

  • Сходить за хлебом

  • По работать

  • Получение суточных заданий - отложено

  • Скрипт остановки бота на время ожидания хила/подземки/заявки

Отредактировано Andy_SPB (2015-09-10 23:29:01)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

2

Re: Вопросы от Andy_SPB

как вытащил инфу разобрался, а вот как поменять значение CheckState:
не осилил sad

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

Re: Вопросы от Andy_SPB

external.SDungeonProvodEnabled.Check = true;//false
или
external.SDungeonProvodEnabled.Check = 1;//0
а так пробовал?

Отредактировано БатоВед (2015-06-27 06:26:36)

4

Re: Вопросы от Andy_SPB

БатоВед
почти так... увидев ваш пример сразу пришло озарение (совсем уже забыл как чекбоксы в JS включать)
Включение/выключение мода проводник/прицеп через скрипт

external.SDungeonProvodEnabled.checked = 1; // 0;

Может кому пригодится
Смена статуса проводник/прицеп через скрипт

external.SDungeonProvodType.Text = "Прицеп"; // "Проводник"

Отредактировано Andy_SPB (2015-06-27 10:32:10)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

5

Re: Вопросы от Andy_SPB

как дернуть сообщение из чата?
что то ни как немогу раскурить

top.Chat.Self...

экстернала не нашел sad

Отредактировано Andy_SPB (2015-06-29 14:55:17)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

6

Re: Вопросы от Andy_SPB

Каждый раз ищу и каждый раз забываю smile
$(".Chat",top.Chat.Self.arrLogs.oChat.oFrame)

Software is like sex: it's better when it's free! © LinusTorvalds

7

Re: Вопросы от Andy_SPB

anahronik пишет:

Каждый раз ищу и каждый раз забываю smile
$(".Chat",top.Chat.Self.arrLogs.oChat.oFrame)

что то я завис smile
пытаюсь дернуть текст через .text()
что то ни какой реакции...
Я правильно понимаю, что этой строкой мы цепляем элементы Chat во фрейме чата
Соответственно

$(".Chat",top.Chat.Self.arrLogs.oChat.oFrame).text();

должна выводить строку всего чата через пробел?

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

8

Re: Вопросы от Andy_SPB

Ммм...не
Если тебе нужен целиком текст, то просто
top.Chat.Self.arrLogs.oChat.oFrame.innerText или top.Chat.Self.arrLogs.oChat.oFrame.innerHTML

А если перебирать сообщения, то

var result = ""; $(".Chat",top.Chat.Self.arrLogs.oChat.oFrame).each(function(){result += this.innerText + "\r\n"}); alert(result);
Software is like sex: it's better when it's free! © LinusTorvalds

9

Re: Вопросы от Andy_SPB

еще вопрос...
я правильно понимаю, если бота в плагине отключить и включить через экстерналы .Start() и .Stop(), то после запуска по экстерналу Start(), он автоматом проверит надет ли комплект, и если нет... то оденет боевой из настроек?

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

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

10

Re: Вопросы от Andy_SPB

Ммм....сложный вопрос..
Вообще бот по таймеру проверит, надет ли комплект...но только если на текущей странице твой персонаж с текущим комплектом отображен. Т.е. в подземке не наденет, а там на Центральной площади или в БК, или в инвентаре - наденет.

Software is like sex: it's better when it's free! © LinusTorvalds

11

Re: Вопросы от Andy_SPB

Update: Лучше включать и выключать бота... исправил код, что бы не вносить смуту среди последователей smile

SPOILER Show

function ChangeTime(){
  if (!Pause){
     // тормозим бота
     external.Stop();
     Pause = true; //ключ паузы
  }else{ 
     // возвращаем бота в нормальное состояние
     external.Start();
     Pause = false;
  }
}

Отредактировано Andy_SPB (2015-07-04 12:57:53)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

12

Re: Вопросы от Andy_SPB

какой правильный синтаксис у

void SaveFile(string path, string contents) - записать текст в файл
string LoadFile(string path) - загрузить текст из файла

пробовал

var d = time;
  external.AddToChat("Запись "+d );
  external.SaveFile(D:\Combots\test.txt, "Переменная d = "+d);
  external.SaveFile('D:\Combots\test.txt', "Переменная d = "+d);

не пашет.

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

13

Re: Вопросы от Andy_SPB

с записью разобрался...

external.SaveFile('test.txt', "Переменная d = "+d);

с чтением нет sad

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

14

Re: Вопросы от Andy_SPB

Andy_SPB пишет:

с записью разобрался...

external.SaveFile('test.txt', "Переменная d = "+d);

с чтением нет sad

external.SaveFile(".\\Plugins\\test.txt",Переменная d = "+d);
external.LoadFile(".\\Plugins\\test.txt");

так работает

15

Re: Вопросы от Andy_SPB

что то не так...

var cord = external.CurrentCell();
external.AddToChat("cord = "+cord);

вывод

10:18:08 cord =

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

16

Re: Вопросы от Andy_SPB

1. как бот определяет ослабление после боя?
2. и корректно ли обновлять главный фрейм таким образом

top.frames[external.mainFrameIndex].location.reload()

с точки зрения отслеживания бота админами?

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

17

Re: Вопросы от Andy_SPB

external.CurrentCell();

эта функция не обновлялась после изменений в БК...надо будет починить.

как бот определяет ослабление после боя?

По обновлению фрэйма проводится поиск таблицы персонажа (образ, вещи надетые, эффекты)
Если найден - проверяется наличие эффекта. Т.е. в подземелье, этой таблицы обычно нет, поэтому и одетость трудно отслеживать, и травмы.

корректно ли обновлять главный фрейм таким образом

да, вполне.

Software is like sex: it's better when it's free! © LinusTorvalds

18

Re: Вопросы от Andy_SPB

вопрос отпал

Отредактировано Andy_SPB (2015-07-19 00:09:27)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

19

Re: Вопросы от Andy_SPB

Пишу плагин взятия дневного задания.
вроде все ясно и просто, но встал косяк на ровном месте...
есть код

var dayPrizTMP = $('.FRAME').contents().find('#quest_rewards').text();
external.AddToChat("Награда = "+dayPrizTMP);

Результат следующий:

16:10:00 Награда = Наградой за выполнение задания будет:Восстановление энергии 150HP x 3

И тут собственно косяк.
Пытаюсь по контрольной фразе Восста определить, что награда свитки...
пробовал

if(dayPrizTMP.match(/Восста/)){
      external.AddToChat("Задание на свитки!");
}

и так

if(dayPrizTMP.indexOf("Восста") > - 1){
      external.AddToChat("Задание на свитки!");
}

вообще в никакую... sad
У какого какие соображения на этот счет?

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

20

Re: Вопросы от Andy_SPB

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

Software is like sex: it's better when it's free! © LinusTorvalds

21

Re: Вопросы от Andy_SPB

что то ни как...

SPOILER Show

var stepDayTask = 0;
 
function test(enabled) {
    if(enabled) {
        chatClearTimer[mylogin] = setInterval("testFN()", 10000);
        external.AddToChat("Запустили плагин");
    }else{
        clearInterval(chatClearTimer[mylogin]);
        var stepDayTask = 0;
 
    }
}
 
function testFN(){
  external.AddToChat("Вызов функции! stepDayTask = "+stepDayTask);
  if(stepDayTask == 0){
    $('[id^=header]').contents().find('#questspan').click();
    stepDayTask = stepDayTask + 1;
  }else if(stepDayTask == 1){
    external.AddToChat("Задание = "+$('.FRAME').contents().find('#quest_text').html());
    var dayPrizTMP = $('.FRAME').contents().find('#quest_rewards').text();
    //var dayPrizTMPstr = dayPrizTMP.valueOf();
    var dayPrizTMPstr = dayPrizTMP.toString();
    external.AddToChat("Награда = "+dayPrizTMP);
    external.AddToChat("Награда STR = "+dayPrizTMPstr);
    stepDayTask = stepDayTask + 1;
  }else if(stepDayTask == 2){
    external.AddToChat("Вошли в цикл!");
    if(dayPrizTMPstr.indexOf("Восста") > -1){
      external.AddToChat("Задание на свитки!");
    }else if(dayPrizTMPstr.indexOf("опыт") > -1){
      external.AddToChat("Задание на опыт!");
    }else{
      external.AddToChat("Задание на ХЗ!");
    }
    external.AddToChat("Клик!");
    $('.FRAME').contents().find('#min_button').click();
    stepDayTask = 0;
  }
}


перепробовал все что в голову пришло sad
причем если закоментить строки цикла проверки... все пашет... если нет подвисает
SPOILER Show

11:20:24 Запустили плагин
11:20:34 Вызов функции! stepDayTask = 0
11:20:44 Вызов функции! stepDayTask = 1
11:20:44 Награда = Наградой за выполнение задания будет:Восстановление энергии 150HP x 3
11:20:44 Награда STR = Наградой за выполнение задания будет:Восстановление энергии 150HP x 3
11:20:54 Вызов функции! stepDayTask = 2
11:20:54 Вошли в цикл!

Ладно.. надо попробовать через чат парсить... буду посылвать в чат текст задания и из него дергать сообщение... там точно indexOf пашет корректно...
Коряво конечно, ну что делать smile

Отредактировано Andy_SPB (2015-07-21 11:25:46)

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

22

Re: Вопросы от Andy_SPB

вопрос по работе бота...
1. Как бот определяет что он в заявке? И как эту информацию можно дернуть в плагин? Через инфу из главного фрейма?
2. Не могу прикрутить включение бота при попадании в бой. Т.е. пишу плагин включения бота, если в главном фрейме идет бой через экстерналы. Делаю привязку плагина на обновление фрейма и тут вылазит косяк. Когда бот выключен, плагин не реагирует на обновление верхнего фрейма. Так и есть или я косячу?

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

23

Re: Вопросы от Andy_SPB

Определяет, что в заявке, по тексту в верхнем фрэйме (т.е. сам бот не помнит, в заявке он или нет).
Когда бот выключен, бот продолжает выполнять плагины по обновлению фрэйма. external.inBattle так же по обновлению фрэйма обновляется..
Можешь проверить на каком-нибудь простеньком плагине: чтобы по обновлению фрэйма alert тебе кидал, выключить бота и обновить фрэйм - он сработает.
А вот то, как идёт сам бой - это проблема...такое впечатление, что фрэйм после начала боя в следующий раз обновляется только когда ты умер, а всё отображение боя в процессе просто обновляет объекты внутри фрэйма.

Software is like sex: it's better when it's free! © LinusTorvalds

24

Re: Вопросы от Andy_SPB

еще вопрос, пытаюсь выцепить содержимое вкладки "Мой лог" в бою...
что то не удается
изучил код, там сплошником div... и не могу понят какому фрейму зацепиться...

(Please log in or register to see this URL), лучше (Please log in or register to see this URL) (с)
Помощь приходит быстрее если:
1. Понятно сформулирован вопрос.
2. Использованы нужный (Please log in or register to see this URL).

25

Re: Вопросы от Andy_SPB

top.Battle.Self.oTab.arrTabs["chat"] - чат
top.Battle.Self.oTab.arrTabs["alllog"] - общий лог
top.Battle.Self.oTab.arrTabs["mylog"] - мой лог

Отредактировано БатоВед (2015-08-19 01:00:46)