external.dungeonEnabled = true / false и возвращает значение, если надо. Только в меню галочку не ставит - в остальном работает.

527

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

Я поменял местами в сообщении Mr Blanco грибную настойку и Сосуд жизненных сил, чтобы грибная настойка была первой в списке на выпивание.

В 9.1.3 эти два фэйлить не будут.
Да и остальные тоже не должны smile

Не, ты не понял smile
Записи "get_mainframe()" и "top.frames[external.mainFrameIndex]" эквивалентны (правда в случае экстернала там руками определяется название главного фрэйма один раз при старте, а get_mainframe() - это функция используемая в БК).
Под "одновременно" я имел ввиду "в одном плагине разные записи одного и того же" smile

Эктерналы использовать можно, нужно и вобще полезно. Исключение - то, что должно изменяться оперативно.

Как-то тему неграмотно сделали smile
Вопрос то бл конкретный: сделать конкретный плагин smile
Так и надо было назвать "Плагин ... от Gorlum" и в первом посте всегда держать последнюю версию smile

Сам плагин я не читал и не знаю, как он работает(плохо у меня со временем), поэтому просто пару советов дам:
1) Я недоумеваю по поводу одновременного использования и "top.frames[external.mainFrameIndex]", и "get_mainframe()" smile
2) "top.Chat.Self.AddMessage"... а чем external.AddToChat не устраивает? Мне казалось, что с меткой времени сообщения выглядят более информативно.
3)

var imgs = get_mainframe().document.getElementsByTagName("IMG");
и
var tmp = get_mainframe().document.getElementsByTagName("a");
заменил бы на
var imgs = get_mainframe().document.images;
и
var tmp = get_mainframe().document.links;

Забыл сказать, что в 9.1.3 будет новая функция для "правильного" клацания по ссылкам/переходам и прочему (_path = "Название, куда кликать: кнопка, маршрут, ссылка или просто картинка";).
И обновление комнаты привяжу к обновлению фрэйма, а не к таймеру как сейчас.

532

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

Jquery не знаю, не трогал, не хотел smile

Можно ли в местах "  $(this).find(".sub")  ", как-то сделать, чтоб искало не ".sub"? а ".sub_left & .sub_right"? ) Где .sub, .sub_left и .sub_right это классы в ксс.

Это прописывается так(только не &, а или):

$(this).find(".sub_left, .sub_right")

Для тестирования/отладки:

var chatFrame = top.Battle.Self.arrLogs.oChat.Frame();
var chatMessage = "";
for(var i = 0; i<chatFrame.childNodes.length; i++)
{
    chatMessage = chatFrame.childNodes[i];
    alert(chatMessage.innerText);
}

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

534

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

Да и на воине должно работать, если вы добавите строку

_target = top.Battle.oBattle.sEnemyLogin;

535

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

master22, () ответа был в том числе для тебя

536

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

Ничего smile
Продажа бота тоже не бизнесс...скорее отбивка тех средств, что я потратил на бота + оплата за хостинг/домен. В общем в 0 может быть когда-нибудь выйду smile

537

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

Я добавлю:
1) Не посылайте ко мне заведомо непонятных людей.
Что это такое:

Сдрасти.... как купить автобот не подскажите??

Вы понимаете, что если он покупает бота, вам придётся с ним на форуме одном жить/общаться/помогать?

2) Для ВСЕХ ТЕХ, кто пишет мне про WMU.
Webmoney - такая противная вещь, в которой можно создать кошельки с любой валютой. Вот прямо в WMKeeper Classic взять и создать кошелёк типа R. А потом кликнуть правой кнопочкой по своему WMU -> Обменять -> WM* на WM*.


P.S.
Господи, спасибо, что мне хватило сознания не публиковать мобильник и аську -_-"

538

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

Ну это уже твой бизнесс - сам решай, какие посреднические услуги ты готов предлагать абсолютно незнакомым людям smile

539

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

Разрабу кр/екр не нужны. Разраб не играет в БК.

В этом маршруте бот использует объекты только на 20 определенных клетках... такчто прошу внимательно посмотреть и ответить про объекты smile

Во как дембель сказал, я полюбому ничего не понял !

Если мне память не изменяет, то это сказал прапор smile

542

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

hyppo, malrom
ничего смотреть не надо - отпускает через сутки.
Причину понять покачто не могу...знаю на каком месте в скриптах спотыкается, но не с какого перепуга он это начинает делать smile

543

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

Не, усиленно не надо.
В нашем случае важным является только ()
остальное ты из php уже знаешь (ну +- ньюансы синтаксиса).

544

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

Пользоваться разделами никто не заставляет.
Если не будет наполняться контентом каким-либо, просто сольём раздел с соседним. Темы/сообщения прекрасно переносятся в другие ветки форума.

P.S.
Хотите организовать обсуждение, сформулируйте свое сообщение так, как сделал Mr Blanco в данном топике.
Только тогда люди смогут трезво взглянуть на ваше предложение и сделать замечания.

545

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

Часто необходимо анализировать какой-нибудь текст, полученный в результате выполнения скрипта.
Длинный текст. На помощь вам приходит буфер обмена.

window.clipboardData.setData("Text","Вот сюда какой-нибудь текст");

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

546

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

При выполнении запросов через DebugBar лучше всего использовать конструкцию try - catch
Пример:

try
{
   // ваш код
}
catch(err)
{
   alert(err.description)
}

547

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

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

Инструментарий:

1) текстовый редактор с подсветкой JS. Лучше ещё с поддержкой авто-форматирования текста. Ну и совсем замечательно, если он умеет отображать список функций/переменных и т.п.
Пользуюсь: phpDesigner (хрень платная, но лекарста имеются в наличии)

2) для удобства ползания по DOM, для мониторинга http-запросов, для более-менее удобного выполнения JS запросов используйте DebugBar (хрень бесплатная и интуитивно-понятна)

3) крайне полезной вещью является "Средства разработчика" в комплекте IE8/IE9/IE10. Рекомендую, естественно, ставить IE10.
Вызывается кнопкой F12. Самое полезное, что в нём интересует - верхняя закладка Сценарий, правая закладка Watch(Контрольное значение).
Впишите, допустим, top и нажмите Enter.
Примечание: Если у вас IE8 и вписать там ничего нельзя - слева есть кнопка паузы. Сперва нажмите её. Но предупреждаю, в IE8 отображается не вся объектная структура в сравнении с IE9. Правда если у вас winXP, то IE9 вы физически поставить не можете - смиритесь.

548

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

Readme файл по написанию плагинов от 7-й версии бота (лишнее вырезал).

Combots поддерживает плагины JavaScript.
Файл плагин должен иметь латинское имя и расширение .js
Все плагины хранятся в папке plugins

Как пользоваться плагинами:
При нажатии на галку вызывается главная функция плагина с параметром enabled - true
Если галку снять - вызывается главная функция с параметром enabled - false.
Чтобы перезагрузить плагин необходимо выключить-включить плагин.

Помощь при написании плагина:
Главная функция плагина должна иметь вид "function Имя файла плагина без .js (enabled){...}".
Где enabled является состояние галки напротив плагина в списке.
Пример главной функции:
function Test(enabled)
{
    if(enabled) alert('Плагин включен!');

    else alert('Плагин выключен!');
}

Необходимым элементом создания плагинов является привязание плагина к обновлению фреймов.
Этим занимается массив PluginsOnLoad.
Например у нас есть фукнция ее нужно привязать к обновлению страниц.
Делается это так PluginsOnLoad["имя плагина без .js что является именем главной функции"] = "Имя функции";
Пример PluginsOnLoad["Test"] = "TestDocumentRefreshHandler";
Чтобы отвязать функцию от обновления надо вызвать PluginsOnLoad["имя"] = "";
Функция-приниматель обновления должна быть без парамметров.
URL обновленной страницы содержится в RageRefreshed
Пример функции-handler:
function TestHandler()
{
var url = PageRefreshed;
if(url.indexOf("dungeon")>0)
    {
    //мы в подземельи
    }
else if(url.indexOf("edit=2")>0)
    {
    //мы в инвентаре в разделе Магия
    }
}

Теперь все что понадобится при плагино-строении:

top - объект верхнего уровня, в нем содержатся все фреймы
top.frames["bottom"]- фрейм строки чата (и нижних кнопок)
top.Battle.oBattle - объект-pointer к бою(!)
top.Battle.oBattle.Attack() - нажимает кнопку Вперед! в бою.
top.Chat.Self - объект-pointer к чату
top.Chat.Self.AddMessage("xxx") - добавляет сообщение в чат (! не посылает серверу а добавляет как будто принял)
mylogin - имя текущего персонажа
external.SaveFile("имя файла","текст") - сохраняет в папке plugins Файл с именем "имя файла" и содержанием "текст"
external.LoadFile("имя файла") - загружает и возвращает содержимое файла с именем "имя файла" из папки plugins

549

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

Нечто вроде этого для первого вопроса
()

По поводу второго, у тебя есть шанс плагином быстро-быстро найти неугодный тебе объект и удалить его - другого варианта предложить не могу.
Начни с малого: чтение исходного JS от 8-й версии и через Debugbar поиск объекта.

P.S.
Я напоминаю, что ветка тут не просто так, а для направления в правильное русло человека, задающего вопросы.
Если самому разбираться ни в чем не охото - тебе в настройки/плагины с такими вопросами.

550

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

Данный раздел создан исключительно для программистов или людей, желающих понять принципы работы JS.
Остальным данная ветка не должна быть интересна.

Пожелание: Если у вас просто куча вопросов, никак не связанных с конкретной проблемой, создайте тему именно под себя со своим ником в качестве названия, чтобы было удобно ориентироваться.
Шаблон названия в данном случае "Вопросы от %ВашНикНаФоруме%"
Если у вас конкретная проблема, то назовите тему В СООТВЕТСТВИИ С ПРОБЛЕМОЙ(!), а не "Помогите" или "Не получается".

Ветка будет злостно мной модерироваться.

Спасибо за внимание.