51

Re: Обмен жетонов в катах

anahronik пишет:

Что-то тут не так.

Как бы начал писать я:

function Obmennik(enabled)
{
    if(enabled)
    {
        PluginsOnLoad["Obmennik"] = "ObmennikHandler"; // работать по обновлению верхнего фрейма
    }
    else
    {
        PluginsOnLoad["Obmennik"] = ""; // выключить обработку по обновлению верхнего фрейма
    }
}
function ObmennikHandler()
{
    try
    {
        var _document = get_mainframe().document.all[0].innerHTML;
        var _path = "empty";
        if(_document.indexOf("Активировать устройство") > -1)
            _path = "Активировать устройство";
        else if(_document.indexOf("Обменять все фракционные предметы на жетоны.") > -1)
            _path = "Обменять все";
        else if(_document.indexOf("Деактивировать устройство.") > -1)
            _path = "Деактивировать";
        else if(_document.indexOf("Отойти от устройства. (завершить разговор)") > -1)
            _path = "завершить разговор";
 
        if(_path != "empty")
            external.ClickLink(_path,2);
    }
    catch(err)
    {
        //alert(err.description);
    }
}

Описание для external.ClickLink:
1) Первый параметр в скобках - что искать
2) Второй параметр в скобках - где искать

Второй параметр бывает:

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

Плагин НЕ РАБОЧИЙ.
В нём не правильно было понято, что надо писать в if.
В условии должен быть однозначный признак того, что пора нажимать конкретную кнопку. Не то, что кнопка есть, а именно то, что её надо нажать.
Сделайте описание диалогов всех целиком, вот как в последних сообщениях. Тогда станет ясно, что можно искать на экране в качестве однозначного признака.

Отличный шаблон! Переписал все свои плагины однообразно под него. Причину увидел в простом для программирования и красивом для понимания логировании действий.
В результате у меня после похода остаётся в чате что-то вроде такого лога:

hh:mi:ss Говорю с: Эшшли: _path = ...текст линка, который жму
hh:mi:ss Говорю с: Эшшли: _path = ...текст линка, который жму
hh:mi:ss Говорю с: Эшшли: _path = ...текст линка, который жму
hh:mi:ss Говорю с: Эшшли: нужны кости Проклятия Болот (*а такую доп.строку я пишу с кратким текстом перед отказом от задания)
hh:mi:ss Говорю с: Эшшли: _path = Нет, мне это не подходит. Просто поговорим, хорошо?
hh:mi:ss Говорю с: Эшшли: _path = ...текст линка, который жму
hh:mi:ss Говорю с: Эшшли: _path = (завершить разговор)
(Please log in or register to see this URL)