tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Не получается с эликом

Сообщений 1 страница 7 из 7

1

"Хозяин"! помоги разобраться, плз!

Пытался научить бота пользоваться эликом в первом слоте, чтобы применил его 1 раз вначале боя. модернизировал немного скрипт пирки, вставив такой фрагмент (после навешивания самой пирки):

Код:
 {
// выпить 1й элик
~Клик_по_лотку 1
/клик по 1 -му в списке элю
~Случайное_Число 500 _Случ

        /В переменную можно записывать ее же значение
_Случ  _Случ + 500
~Пауза_Боя _Случ
~Выход_Из_Обработки
}

Вешает пирку, пьет элик, кидает горючку, но когда заканчиваются камни тупо стоит(((  пауза просчета - поля 4000- 6000

Вариант 2, чтобы меньше тратил времени , если уже пил этот элик

Код:
// выпить 1й элик
ЕСЛИ (_Аура1 = 0)
{
~Клик_по_лотку 1
/клик по 1 -му в списке элю

~Случайное_Число 500 _Случ
_Аура1 1
        /В переменную можно записывать ее же значение
_Случ  _Случ + 500
~Пауза_Боя _Случ
//~Выход_Из_Обработки
}

В этом случае все как с норм скриптом пирки, вешает, горючку и взрыв кидает, отхаживает норм, если камни кончились, но элик пить не хочет (((   _Аура1 я обнулял

Мож я туплю, подскажите если кто сталкивался!

0

2

aaz написал(а):

Вешает пирку, пьет элик, кидает горючку, но когда заканчиваются камни тупо стоит(((  пауза просчета - поля 4000- 6000

Если после окончания камней стоит, значит с переходом на код со складыванием камней, какие то проблемы. Проверь условия. Особенно не стоит ли где не надо ~Выход_Из_Обработки. Тогда он просто не доходит до кода с расчетом всего поля.

0

3

Дубль 2
Поэксперементировал малеха, переставил этот фрагмент приоритетнее пирки, теперь бот пьет элик, но не хочет делать пирку и сразу кидает горючку.
Получается значит в этом кусочке глюк, а где чет я не могу понять(((

вот собственно весь скрипт -

Код:
//Раздел инициализации
/Нельза вставлять строки в разделе магии
/Сначала называем магию, потом задаем значение
/ для ее свойств, можно использовать выражения

Магия:
_Пирка
Позиция 5
Камни:
Красные 20
Синие 20
Зеленые 20


Магия:
_Взрыв
Позиция 1
Камни:
Красные 15
Синие 15
Зеленые 0


Магия:
_Берс
Позиция 2
Камни:
Красные 12
Синие 0
Зеленые 12

Магия:
_Горючка
Позиция 4
Камни:
Красные 0
Синие 18
Зеленые 18

/Дальше никаких ограничений по вставке коментариев нет
/Все переменные целые числа
Переменные:
_i 0
/Каждой переменной нужно присваивать значение
_Выбор 0
_Случ 0
_Кр 0
_Син 0
_Зел 0
_Аура 0
_Аура1 0

//Все события происходят, только если ваш ход
//Ваши камни(жизни) и врага распознаны

Успешное_считывание_камней:
{

/Между ЕСЛИ и условием обязателен пробел
/Условие для ЕСЛИ должно быть записано в одну строку
/Для более компактной записи можно
/использовать переменные посредники




// выпить 1й элик
ЕСЛИ (_Аура1 = 0)
{
~Клик_по_лотку 1
/клик по 1 -му в списке элю

~Случайное_Число 500 _Случ
_Аура1 1
        /В переменную можно записывать ее же значение
_Случ  _Случ + 500
~Пауза_Боя _Случ

}

//Повесим пирку
ЕСЛИ ( (_Аура = 0) & ((_Красных_Моих > _Пирка.Красные) | (_Красных_Моих = _Пирка.Красные)) & ((_Синих_Моих > _Пирка.Синие) | (_Синих_Моих = _Пирка.Синие)) & ((_Зеленых_Моих > _Пирка.Зеленые) | (_Зеленых_Моих = _Пирка.Зеленые)))
{
/в функциях с одним параметром можно
/использовать выражения
~Клик _Пирка.Позиция

/в функциях с несколькими параметрами нельзя
       /использовать выражения 
        /Помните, что в бою бот считывает экран
       /раз в 200 миллисекунд(когда его ход)
        /в остальных раз в 500 миллисекунд(когда его ход)
~Случайное_Число 500 _Случ
_Аура 1
        /В переменную можно записывать ее же значение
_Случ  _Случ +1000
~Пауза_Боя _Случ
~Выход_Из_Обработки
}




/
//Горючка
ЕСЛИ ( ((_Красных_Моих > _Горючка.Красные)| (_Красных_Моих = _Горючка.Красные)) & ((_Синих_Моих > _Горючка.Синие)| (_Синих_Моих = _Горючка.Синие)) & ((_Зеленых_Моих > _Горючка.Зеленые)| (_Зеленых_Моих = _Горючка.Зеленые)))
{
/в функциях с одним параметром можно
/использовать выражения
~Клик _Горючка.Позиция

/в функциях с несколькими параметрами нельзя
       /использовать выражения 
        /Помните, что в бою бот считывает экран
       /раз в 200 миллисекунд(когда его ход)
        /в остальных раз в 500 миллисекунд(когда его ход)
~Случайное_Число 500 _Случ

        /В переменную можно записывать ее же значение
_Случ  _Случ + 500
~Пауза_Боя _Случ
~Выход_Из_Обработки
}


//Повесим взрыв
ЕСЛИ ( ((_Красных_Моих > _Взрыв.Красные)| (_Красных_Моих = _Взрыв.Красные)) & ((_Синих_Моих > _Взрыв.Синие)| (_Синих_Моих = _Взрыв.Синие)) & ((_Зеленых_Моих > _Взрыв.Зеленые)| (_Зеленых_Моих = _Взрыв.Зеленые)))
{
/в функциях с одним параметром можно
/использовать выражения
~Клик _Взрыв.Позиция

/в функциях с несколькими параметрами нельзя
       /использовать выражения 
        /Помните, что в бою бот считывает экран
       /раз в 200 миллисекунд(когда его ход)
        /в остальных раз в 500 миллисекунд(когда его ход)
~Случайное_Число 500 _Случ

        /В переменную можно записывать ее же значение
_Случ  _Случ + 500
~Пауза_Боя _Случ
~Выход_Из_Обработки
}



}


//Распознаны камни(жизни)свои и врага, а также поле
Успешное_считывание_поля:
{

/Сортирум по убыванию
       /Переменные хода получают новый индекс
~Сортировка 1 6 5 4 Ч

/Цикл со счетчиком
_i -1
:начало
_i _i + 1
        / помните вариаты хода начинаются с 0
          / а значит последний из них
         /всегда имеет номер равный ( _Вариантов_Ходов – 1 )
ЕСЛИ _i < _Вариантов_Ходов
{
    
               /Разные операторы (=, +, * , & и т.д) имеют
              /разный приоритет, но если вы не уверены
             /что посчитает первым 
             /используйте скобки
    ЕСЛИ _Ход[_i].Число_6 > 0 | _Ход[_i].Число_5 > 0 | _Ход[_i].Число_4 > 0 
    {
    /Здесь оператор ИДТИ выходит
                       /из цикла как только находит
                       /нужный вариант хода
    _Выбор _i
    ИДТИ конец
    }
    ИНАЧЕ
    {
    ЕСЛИ ( _Ход[_i].Итог = 0)
    {
        _Выбор _i
        ИДТИ конец
    }
    }
    
    /Если подходящих так и не нашли
               /то выбираем самый первый в списке
               /Вообще то это условие лишнее
               /переменная _Выбор изначально имеет значение 0
    ЕСЛИ _i = (_Вариантов_Ходов - 1 )
    {
    _Выбор 0
    ИДТИ конец    
    }
    
    ИДТИ начало
} 

    :конец
/Что бы пауза между ходами была разной
/Используем функцию случайного числа
~Случайное_Число 3000 _Случ
_Случ  _Случ + 4000
~Пауза_Боя _Случ

/Кликаем по ячейкам что указаны
         /в выбранам нами вариатом хода
~Клик _Ход[_Выбор].Ячейка_11 _Ход[_Выбор].Ячейка_12
        /Т.к. игра не успевает оброботать два клика сразу,
         /Между ними нужно делать паузу
          /трети секунды вполне хватает
~Спать 300
~Клик _Ход[_Выбор].Ячейка_21 _Ход[_Выбор].Ячейка_22


}

0

4

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

0

5

opt написал(а):

Поэксперементировал малеха, переставил этот фрагмент приоритетнее пирки, теперь бот пьет элик, но не хочет делать пирку и сразу кидает горючку.

_Аура1 1  в первой секции, где код выпивания, блокирует пирку.

0

6

TMGameBot
это вряд ли, тк ауры разные

0

7

opt написал(а):

это вряд ли, тк ауры разные

тогда внешне не видно причины проблемы.

0