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

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

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


Вы здесь » tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru) » Ваши мнения » Помогите разобраться


Помогите разобраться

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

1

Ребя та подскажите почему если обычный скрипт горючки изменить на такой :

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

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


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


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

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


//Все события происходят, только если ваш ход
//Ваши камни(жизни) и врага распознаны
Успешное_считывание_камней:
{
/Между ЕСЛИ и условием обязателен пробел
/Условие для ЕСЛИ должно быть записано в одну строку
/Для более компактной записи можно
/использовать переменные посредники





//Проверка на 4+

Успешное_считывание_поля:
{

/Сортирум по убыванию
       /Переменные хода получают новый индекс
~Сортировка 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) & ((_Красных_Моих > _Пирка.Красные) | (_Красных_Моих = _Пирка.Красные)) & ((_Синих_Моих > _Пирка.Синие) | (_Синих_Моих = _Пирка.Синие)) & ((_Зеленых_Моих > _Пирка.Зеленые) | (_Зеленых_Моих = _Пирка.Зеленые)))
{
/в функциях с одним параметром можно
/использовать выражения
~Клик _Пирка.Позиция

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

:взрыв

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

/в функциях с несколькими параметрами нельзя
       /использовать выражения 
        /Помните, что в бою бот считывает экран
       /раз в 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] не существует
:(
Я хотел сначала просто чтоб перед взрывом делалась проверка на четверки но вылазила та же ошибка, тогда я просто скопировал с конца скрипта часть кода которая делает сортировку и получил то же самое, ту же ошибку(код выше)

0

2

проблема еще не решена? если нет, то можно будет посмотреть, если решена, то и смотреть уже и не надо :)

0

3

не решена, забросил времени нет

0

4

странный скрипт немного, если честно. он по определению работать правильно не будет.
1) Успешное_считывание_камней. Есть открывающая скобка но нет закрывающей перед: Успешное_считывание_поля:
2) В скрипте может быть только ОДНО Успешное_считывание_камней и одно Успешное_считывание_поля:. У тебя их 2.
3) и по скрипту врятли дело дойдёт до горючки т.к. соберется 4 или любой другой склад камней.

0

5

Шурикама написал(а):

странный скрипт немного, если честно. он по определению работать правильно не будет.1) Успешное_считывание_камней. Есть открывающая скобка но нет закрывающей перед: Успешное_считывание_поля:2) В скрипте может быть только ОДНО Успешное_считывание_камней и одно Успешное_считывание_поля:. У тебя их 2.3) и по скрипту врятли дело дойдёт до горючки т.к. соберется 4 или любой другой склад камней.

да я понимаю что до горючки бы дело не дошло)... мне непонятно было почему он вобще не работал) я хотел вставить проверку на 4ки, чето мудрил-мудрил а оно не работало вот и решил туповсе скопировать, но и так не вышло
вобщем спасибо за разьяснения 1 и 2 буду переделывать

0


Вы здесь » tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru) » Ваши мнения » Помогите разобраться