получается если есть ингридиенты и плавишь хоть один слиток, то все путем, если нет - виснет(

gradinas пишет:

Подскажите, бот зависает когда котел пишет "Отойти от котла (Предупреждение: Запущенный котел повторно использовать будет нельзя)."

Что делать?  mad

Подскажите как исправить  roll

28

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

есть сувенир - коллекция, он дает шанс в начале кажого боя что появится этот прием, - но по факту это для 1-4 уровня, урон детский(

29

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

_target = top.Battle.oBattle.sEnemyLogin;
_name = "pain_debuff";

работает, супер, поменял задержку на 5, глюки ток в глючных городах))

31

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

Подскажите как настроить возврат от лича если напали roll

32

(5 ответов, оставленных в Приёмы)

тогда ищи ошибку в других приемах, у меня работает

почему не работает? выкопал ее этим маршрутом на ура, и ангелс с демоном smile

34

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

var tempLink = "";
var melterRoom = '';
var melterTimer = {};
var itemsToMelt = [];
itemsToMelt.push("item");
var classOfRune = "f";
/*
f == Воин
m == Маг
r == Стрелок
a == Все
*/

 
function Melter(enabled)
{
    if(enabled)
    {
        if(typeof external.GetVal("melterFinished") == "undefined") external.InitVal("melterFinished",false);
        melterTimer[mylogin] = setInterval("melterHandler()",3000);
    }
    else
    {
        clearInterval(melterTimer[mylogin]);
    }
}
 
function ArrayContains(txt)
{
    try
    {
        for(var i = 0; i < itemsToMelt.length; i++)
        {
            var patt = "MoveItem\\([^>]*>" + itemsToMelt[i];
            if(txt.outerHTML.match(patt))
                return true;
        }
        return false;
    }
    catch(err)
    {
        external.AddToChat("error");
    }
}
 
function melterHandler()
{
    try
    {
        if(top.Battle.bInBattle || !external.Started() || !external.dungeonEnabled) return;
 
        if(top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
        {
            external.SetVal("melterFinished",false);
            return;
        }
 
        var melterTmp = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        var itemsToMelt = '';
 
        if(melterRoom = melterTmp.match(/<nobr>([^<]+)<\/nobr>/))
            melterRoom = String(melterRoom[1]);
        else melterRoom = "unknown";
 
        if(external.GetVal("melterFinished") == false)
        {
            if (melterRoom == "Грибница" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная поляна",2);
            else if (melterRoom == "Грибная поляна" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Странное Место",3);
            else if (melterRoom == "Странное Место" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная лужайка",3);
            else if (melterRoom == "Грибная лужайка" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральная грибница",3);
            else if (melterRoom.match(/Вокзал|Центральная грибница|Песочные Врата/) && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Вокзал",3);     
            else if (melterRoom == "Вокзал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Портал",3);
 
 
            else if (melterRoom == "Спуск в Катакомбы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в катакомбы",2);
            else if (melterRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Дорога Храбрости",3);
            else if (melterRoom == "Дорога Храбрости" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Поклонения",3);
            else if (melterRoom == "Разлом Поклонения" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Разлом",3);
            else if (melterRoom == "Центральный Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Безымянная Башня",3);
            else if (melterRoom == "Безымянная Башня" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Летучий Разлом",3);
            else if (melterRoom == "Летучий Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Вокзал",3);
 
            else if (melterRoom == "Пещеры Мглы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Внутренний двор",2);
            else if (melterRoom == "Внутренний двор" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Последний Привал",3);
            else if (melterRoom == "Последний Привал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Цветочный Пустырь",3);
            else if (melterRoom == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Оазис",3);
            else if (melterRoom == "Центральный Оазис" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Песочные Врата",3);
            else if (melterRoom == "Портал" && external.SCity.Text != "dungeon")
            {
                if(melterTmp.match("Abandoned Plain<\/B> еще"))
                {
                    external.SetVal("melterFinished",true);
                    return;
                }
 
                var frms = top.frames[external.mainFrameIndex].document.forms;
                for(var i = 0; i < frms.length; i++)
                    if(frms[i].innerHTML.match("Abandoned Plain"))
                    {
                        var btns = frms[i].getElementsByTagName("input");
                        for(var j = 0; j < btns.length; j++)
                            if(btns[j].value == "Войти в портал" && btns[j].style.visibility != "hidden")
                            {
                                btns[j].click();
                                return;
                            }
                    }
            }               
            else if (melterRoom == "Портал" && external.SCity.Text == "dungeon" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральная площадь",2);               
            else if (melterRoom == "Центральная площадь" && external.SCity.Text == "dungeon" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Храм Знаний",3);
            else if (melterRoom == "Храм Знаний" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Алтарь Предметов",3);
            else if(melterRoom == "Алтарь Предметов")
            {
                var rn = "";
                if(rn = melterTmp.match("Получена руна \"([^\"]*)\".")) external.AddToChat("Получена руна " + rn[1]);
                if(itemsToMelt = melterTmp.match("Растворение предметов \\(пригодных: ([0-9]+)"))
                {
                    if(itemsToMelt[1] > 0)
                    {                       
                        if(!top.frames[external.mainFrameIndex].document.getElementById("frmbtn"))
                        {
                            var anchs = top.frames[external.mainFrameIndex].document.links;
                            for(var i = 0; i < anchs.length; i++)
                                if(anchs[i].onclick && ArrayContains(anchs[i]))
                                {
                                    anchs[i].click();
                                    return;
                                }
                            external.SetVal("melterFinished",true);
                        }
                        else
                        {
                            var rdbtn = top.frames[external.mainFrameIndex].document.getElementsByName('c');
                            for(var i = 0; i < rdbtn.length; i++)
                                if(rdbtn[i].style.visibility != "hidden" && rdbtn[i].value == classOfRune && rdbtn[i].checked == false)
                                {
                                    rdbtn[i].checked = true;                                   
                                    break;
                                }
                            top.frames[external.mainFrameIndex].document.getElementById("frmbtn").click();
                        }
                    }
                    else
                    {
                        external.SetVal("melterFinished",true);
                        return;
                    }
                }
                else if(itemsToMelt = melterTmp.match("Выбор рун \\(пригодных: ([0-9]+)"))
                {
                    if(!top.frames[external.mainFrameIndex].document.getElementById("frmbtn"))
                    {
                        tempLink = "";
                        var anchs = top.frames[external.mainFrameIndex].document.links;
                        for(var i = 0; i < anchs.length; i++)
                            if(String(anchs[i].onclick).match(new RegExp("MoveItem\\(new Item\\([0-9]+, \"([^\"]*)\"[^>]*>",'i')))
                            {
                                if(tempLink == "") tempLink = anchs[i];
                                else if(GetRuneLevel(tempLink) < GetRuneLevel(anchs[i])) tempLink = anchs[i];
                            }
                        if(tempLink != "") tempLink.click();
                    }
                    else top.frames[external.mainFrameIndex].document.getElementById("frmbtn").click();
                }
            }
        }
        else if(external.GetVal("melterFinished") == true)
        {
            if(melterRoom == "Алтарь Предметов" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Храм Знаний",2);
            else if(melterRoom == "Храм Знаний" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральная площадь",3);
            else if (melterRoom == "Центральная площадь" && external.SCity.Text == "dungeon" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Портал",3);
            else if (melterRoom == "Портал" && external.SCity.Text == "dungeon")
            {               
                for(var i = 0; i < top.frames[external.mainFrameIndex].document.forms.length; i++)
                    if(top.frames[external.mainFrameIndex].document.forms[i].innerHTML.match(/Возврат \([^\<]*\)/))
                    {                       
                        var btns = top.frames[external.mainFrameIndex].document.forms[i].getElementsByTagName("input");
                        for(var j = 0; j < btns.length; j++)
                            if(btns[j].value == "Войти в портал" && btns[j].style.visibility != "hidden")
                            {
                                btns[j].click();
                                return;
                            }
                    }
            }
            else if (melterRoom == "Портал" && external.SCity.Text != "dungeon" && top.frames[external.mainFrameIndex].check_access())
            {
                if(external.SCity.Text == "suncity") external.ClickLink("Центральная грибница",2);
                if(external.SCity.Text == "demonscity") external.ClickLink("Вокзал",2);
                if(external.SCity.Text == "sandcity") external.ClickLink("Песочные врата",2)
            }
 
            else if (melterRoom == "Летучий Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Безымянная Башня",3);
            else if (melterRoom == "Безымянная Башня" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Разлом",3);
            else if (melterRoom == "Центральный Разлом" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Разлом Поклонения",3);
            else if (melterRoom == "Разлом Поклонения" && top.frames[external.mainFrameIndex].check_access())   
                external.ClickLink("Дорога Храбрости",3);
            else if (melterRoom == "Дорога Храбрости" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в катакомбы",3);
            else if (melterRoom == "Спуск в катакомбы" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Спуск в Катакомбы",3);
 
            else if (melterRoom == "Центральная грибница" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная лужайка",3);
            else if (melterRoom == "Грибная лужайка" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Странное Место",3);
            else if (melterRoom == "Странное Место" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибная поляна",3);
            else if (melterRoom == "Грибная поляна" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Грибница",3);
            else if (melterRoom == "Песочные Врата" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Центральный Оазис",3);
            else if (melterRoom == "Центральный Оазис" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Цветочный Пустырь",3);
            else if (melterRoom == "Цветочный Пустырь" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Последний Привал",3);
            else if (melterRoom == "Последний Привал" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Внутренний двор",3);
            else if (melterRoom == "Внутренний двор" && top.frames[external.mainFrameIndex].check_access())
                external.ClickLink("Пещеры Мглы",3);
        }
    }
    catch(err)
    {
        external.AddToChat("err");
    }
}
 
function GetRuneLevel(link)
{
    return link.outerHTML.match(new RegExp("MoveItem\\(new Item\\([0-9]+, \"([^\"]*)\"[^>]*>",'i'))[1].match(/rune2_(\d*)_\d*_\d*/)[1];;
}

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

35

(5 ответов, оставленных в Приёмы)

Скрытая
if((top.Battle.oBattle.arrRes["hit"].innerHTML) > 6)
_name = "multi_hiddenpower";

Двойной бросок
if((typeof(top.Battle.oBattle.oMySlot.arrEffects["multi_hiddenpower"]) == "object")
_target = top.Battle.oBattle.sEnemyLogin;
_name = "hit_throwdblaxe";

но как практика показала набивает мало, за бой одна связка проходит, а умирает быстро. С обычным дойным намного больше, но не стабильно(((

36

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

semenspb пишет:

Все привет! Не один год уже захожу на ваш сайт и думаю приобрести бота. В связи с этим есть несколько вопрос:

- Может ли Бот собирать  грибочки в Грибнице / Убивать Макропуса и Ужаса и собирать ключ

- Также интересует Катакомбы, фарм пура и сдача в его в гос (автоматом)

- Если использовать Бота только для фарма пещер, можно ли угодить в бан? И есть ли инструкция как не угадить в бан

- Идет ли разработка бота на данный момент или же проект заморожен.

Заранее спасибо!!!

1. собирает грибочки, меняет на грибы, ловит у хищнеца/ надо писать путь и плагин
2. Собирает, сдает пур тот который захочешь.
3. не наглеть и не фармить по 24 часа, периодически менять города.
4. не вкурсе(

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

тут кроется ответ--
b22a61e051b650b0da81d0ad0df4ef28 : AttackMobs();  Walk("rl");     //Белый Светляк     4 // if(!external.GetVal("isTokenTraderClicked"))  OrderedObjects("Светляк");
может так?
b22a61e051b650b0da81d0ad0df4ef28 : AttackMobs(); if(!external.GetVal("isTokenTraderClicked"))  OrderedObjects("Светляк");  else Walk("rl");    //Белый Светляк     4
щас не могу проверить, я бы точнее сказал как ведет себя, но когда тестил менял всеми возможными комбинациями)

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

39

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

dtnfkm пишет:

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

тут описание плагина
()

40

(5 ответов, оставленных в Приёмы)

еще вопрос по поводу призрачек - бот ставит призрачку согласно первому противнику,  но ответы может 3 хода получать от других классов, насколько это актуально, кто замечал? может обычную призрачную защиту ставить и не париться по поводу классов??

41

(5 ответов, оставленных в Приёмы)

irfon пишет:

Скрытая
if((top.Battle.oBattle.arrRes["hit"].innerHTML) > 6 && (parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 2 && (parseInt(top.Battle.oBattle.arrRes["parry"].innerHTML) > 3)
_name = "multi_hiddenpower";

Двойной бросок
if((typeof(top.Battle.oBattle.oMySlot.arrEffects["multi_hiddenpower"]) == "object") && (top.Battle.oBattle.arrRes["hit"].innerHTML = 4)
_target = top.Battle.oBattle.sEnemyLogin;
_name = "hit_throwdblaxe";


чтото типа такого?

не бьет(

Скрытая
if((top.Battle.oBattle.arrRes["hit"].innerHTML) > 6)
_name = "multi_hiddenpower";

Двойной бросок
if((typeof(top.Battle.oBattle.oMySlot.arrEffects["multi_hiddenpower"]) == "object")
_target = top.Battle.oBattle.sEnemyLogin;
_name = "hit_throwdblaxe";

Так связка работает)) Где я накосячил???

42

(5 ответов, оставленных в Приёмы)

Скрытая
if((top.Battle.oBattle.arrRes["hit"].innerHTML) > 6 && (parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) > 2 && (parseInt(top.Battle.oBattle.arrRes["parry"].innerHTML) > 3)
_name = "multi_hiddenpower";

Двойной бросок
if((typeof(top.Battle.oBattle.oMySlot.arrEffects["multi_hiddenpower"]) == "object") && (top.Battle.oBattle.arrRes["hit"].innerHTML = 4)
_target = top.Battle.oBattle.sEnemyLogin;
_name = "hit_throwdblaxe";


чтото типа такого?

43

(5 ответов, оставленных в Приёмы)

<?xml version="1.0" encoding="windows-1251"?>
<Methods>
  <Priem1>_name="preparation";</Priem1>
 
<Priem2>if(window.dfghj &amp;&amp; (dfghj == top.Battle.oBattle.oMySlot.nHP))
{
_name = "multi_rollback";
//top.Chat.Self.AddMessage("Работает");
}

if(window.rftyh &amp;&amp; (rftyh-top.Battle.oBattle.oMySlot.nHP)&gt;=85) // количество урона, больше которого отменять
{
dfghj = top.Battle.oBattle.oMySlot.nHP;
_name = "multi_rollback"; //top.Chat.Self.AddMessage("Выполнено");
}

rftyh = top.Battle.oBattle.oMySlot.nHP;</Priem2>
 
<Priem3>if(parseInt(top.Battle.oBattle.arrRes["block"].innerHTML) &gt; 6)_name = "block_fullshield";
</Priem3>

<Priem4>if(top.Battle.oBattle.oEnemySlot.oLayer.innerHTML.match(/sword[\d]+.gif/))        _name = "spirit_14_prot_100";    else if(top.Battle.oBattle.oEnemySlot.oLayer.innerHTML.match(/crossbow[\d]+.gif/) || top.Battle.oBattle.oEnemySlot.oLayer.innerHTML.match(/hammer[\d]+.gif/))        _name = "spirit_13_prot_100";    else        _name = "spirit_block25";</Priem4>

<Priem5>if((typeof(top.Battle.oBattle.oMySlot.arrEffects["block_fullshield"]) != "object" &amp;&amp; parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) &gt; 11))_name = "spirit_block25";</Priem5>

  <Priem6>_target = top.Battle.oBattle.sEnemyLogin;
_name = "hit_throwdblaxe";</Priem6>

<Priem7>_name = "hp_enrage";
</Priem7>

<Priem8>_name = "hp_defence";
</Priem8>

  <Priem9>_name = "parry_supreme";
</Priem9>

<Priem10>if((typeof(top.Battle.oBattle.oMySlot.arrEffects["ggvod"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_fire_flamming08"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["ggair"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["ggyad"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["wis_air_mark"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["ggspeed"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["ggvras"]) == "object") || (typeof(top.Battle.oBattle.oMySlot.arrEffects["standart_effect"]) == "object"))
_name="hp_cleance";</Priem10>

  <Priem11>if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) &lt; 3)_name = "hp_laststrike";
</Priem11>

  <Priem12>MyHp_temp = top.Battle.oBattle.oMySlot.nHP;</Priem12>
  <Priem13>
  </Priem13>
  <Priem14>
  </Priem14>
  <Priem15>
  </Priem15>
  <Priem16>
  </Priem16>
  <Priem17>
  </Priem17>
  <Priem18>
  </Priem18>
  <Priem19>
  </Priem19>
  <Priem20>
  </Priem20>
  <Priem21>
  </Priem21>
  <Priem22>
  </Priem22>
  <Priem23>
  </Priem23>
  <Priem24>
  </Priem24>
</Methods>

Приемы: Тактический расчет, Отменить, Полная защита, Призрачки все, Призрачаня защита, Двойной бросок, Ярость, Стойкость, Превосходство, Очиститься кровью, Последний удар.
Использую для хаотов.
Кто играет силовиком, помогите оптимизировать приемы. smile
Думаю превосходство не актуально, надо собирать тактики для связки - скрытая сила - двойной бросок. как задать логику этой связки?

7047ffdeb2750a06d77a522a4d3e844c : AttackMobs(); OrderedObjects("Светляк"); Walk("rr");     //Зеленый Светляк     1
049bbf51a3d965110a49531cdc16891b : AttackMobs(); OrderedObjects("Светляк"); Walk("rl");     //Желтый Светляк     2
cb7d4725121589c31237ee863960d0bf : AttackMobs(); OrderedObjects("Светляк"); Walk("rl");     //Голубой Светляк     3
b22a61e051b650b0da81d0ad0df4ef28 : AttackMobs();  Walk("rl");     //Белый Светляк     4 // if(!external.GetVal("isTokenTraderClicked"))  OrderedObjects("Светляк");

подскажите как исправить последнюю строчку чтоб отрабатывал белого светляка.
OrderedObjects("Светляк"); - это как я понимаю для использования обьекта(светляк), но он юзает его постоянно.
if(!external.GetVal("isTokenTraderClicked"))   - можете расшифровать эту строчку и как с ней работать???

Убрал строчку, заработало, спс smile

не хочет, тупо поворачивается и отваливает, грибов 50+ и 120+ не имеет значения((

Приветствую. Подскажите строчку в маршруте перед Хищнецом - он просто поворачивается и не рыбачит. Диалог не открывается hmm
вот строчки хищнеца
241aeb96de4e0b49e9004a31fa8da5e4 :  AttackMobs(); Walk("rl"); /*хищнец*/
241aeb96de4e0b49e9004a31fa8da5e4 :  AttackMobs(); if(document.all[0].innerHTML.match(/"Грибочки x(\d*)/)[1] >= 50) top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/" + dungName + "?dialog=gg3_hishnez_welcome&use=" + top.frames[external.mainFrameIndex].arrLayers[1][0]["l"].arrUnits[0].id; else Walk("rl");
1ccd46e1505748885218d4609ebf4beb :  AttackMobs(); Walk("m7");
ba55ce34be6c0916937467e2991b1693 :  AttackMobs(); if(dungeonMovementCount["ba55ce34be6c0916937467e2991b1693"] == 0) Walk("rl"); else Walk("m1");
08a8db28510f233f9edd0af88ace439c :  AttackMobs(); Walk("m3");
775f1f8fdf51234a4f90a42301ccd57d :  AttackMobs(); if(dungeonMovementCount["775f1f8fdf51234a4f90a42301ccd57d"] == 0) Walk("m7"); else Walk("rr");
b574f6f49324cc002a6e3e05b03f49f8 :  AttackMobs(); Walk("m3");

Может useobject поставить надо?

48

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

Ограничение 50 белых зубов??

49

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

подскажите как включить расставление статов, не работает(( галочка стоит. сорри за офтоп

50

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

значит мне показалось, но за 2 часа боя 0 опыта, без плагина за следущие 2 часа совсем другая картина