1

Тема: Вопросы от Жеки

Как сделать условие проверки наличия предмета в инвентаре?
В плагине морковка это есть, но я не могу сам разобраться.

var m = elikName + "(\\s\\(x\\d+\\))?','main.pl',\\s'(.+?)',\\s'.*?',\\s(\\d+)";
var found = s.match(m);
if(found != null)

Тут явно чего то не хватает. Нигде не могу найти, где описан elikName и в "(\\s\\(x\\d+\\))?','main.pl',\\s'(.+?)',\\s'.*?',\\s(\\d+)" тоже разобраться не могу.
Кто знает, подскажите плиз smile

У меня все работает, что я делаю не так ?

2

Re: Вопросы от Жеки

Morkovka2Handler(morkovkaName[x][0],morkovkaName[x][1])

morkovkaName[x][0] - это название нашей морковки, которое передаем в функцию morkovkaName (например, "Заживляющая Настойка").

Что такое:

"(\\s\\(x\\d+\\))?','main.pl',\\s'(.+?)',\\s'.*?',\\s(\\d+)"

когда мы пьем из инвентаря элик - мы юзаем кнопку "исп-ть".
а в кнопка эта вызывает js-функцию UseMagick с параметрами.

javascript:UseMagick('Заживляющая Настойка','main.pl', 'pot_cureHP150_0', '', 26, '', ',,,,,,')

так вот эта регулярка ищет такую строчку. И если она находится - значит кнопка Исп-ть есть, а это значит что и элик есть.

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

Оставь надежду всяк сюда входящий ©

3

Re: Вопросы от Жеки

Уф...слишком сложно  big_smile
morkovkaName[x][0]- это ж вроде как параметр функции Morkovka2Handler, а где он описывается ?
Мне просто нужно чистое условие на наличие предмета. если несложно, можешь показать код вида "если в инвентаре в разделе эликов лежит сыворотка, то бла бла бла" ?

У меня все работает, что я делаю не так ?

4

Re: Вопросы от Жеки

ZhEkA_BK пишет:

Уф...слишком сложно  big_smile
morkovkaName[x][0]- это ж вроде как параметр функции Morkovka2Handler, а где он описывается ?
Мне просто нужно чистое условие на наличие предмета. если несложно, можешь показать код вида "если в инвентаре в разделе эликов лежит сыворотка, то бла бла бла" ?

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

var morkovkaName = [];
morkovkaName[morkovkaName.length]=[];
morkovkaName[morkovkaName.length-1].push("Печень Гусеница");
morkovkaName[morkovkaName.length-1].push(3);

т.е. теперь в morkovkaName[0][0] будет храниться "Печень Гусеница"
а в morkovkaName[0][1] - 3

Но да ладно.
Если по-простому, то как-то так:

{
    var inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
    if(!inf.match("pot_anti_disease_3_kk"))
        external.AddToChat("сыворотки нету");
    else
    {
 
    }
}
function doLoad(url) {
    if (window.XMLHttpRequest)
        req = new XMLHttpRequest();
    else
        req = new ActiveXObject("Microsoft.XMLHTTP");
 
       req.open("GET", url, false); // задать параметры методу open
       req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //чтоб не кэшировались GET запросы
       req.send(null); // отправить запрос     
    return req.responseText;
}
Оставь надежду всяк сюда входящий ©

5

Re: Вопросы от Жеки

var inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
т.е. вот эта строка содержит в себе всю инфу со всех вкладок ?
function doLoad(url) а вот это зачем? эта функция ж не используется в первых двух строках

У меня все работает, что я делаю не так ?

6

Re: Вопросы от Жеки

ZhEkA_BK пишет:

var inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?edit=3&rnd=" + Math.random());
т.е. вот эта строка содержит в себе всю инфу со всех вкладок ?
function doLoad(url) а вот это зачем? эта функция ж не используется в первых двух строках

Нет. Она загружает страницу Эликсиры.

Оставь надежду всяк сюда входящий ©

7

Re: Вопросы от Жеки

ладно, хватит теории, надо будет на практике попробовать...потом отпишусь понял или нет. Спасибо smile

У меня все работает, что я делаю не так ?