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

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

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


Вы здесь » tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru) » Ваши мнения » Справка по написанию Сценариев ИИ


Справка по написанию Сценариев ИИ

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

1

В этом разделе вы можите выкладывать свои сценарии ИИ. Самые лучшие будут включены в комплект с ботом.
С обновлением конструктора ИИ, будет обновляться данная тема.


Язык написания сценариев ИИ.

Язык написания сценариев ИИ не сложный. А вот запомнить название всех переменных не просто:). Информация представлена в справочном виде.

Синтаксис.

ВАЖНО! Сохраняйте файл со скриптом в кодировке Юникод.
Язык чувствителен к регистру.( Переменные _ААА и _ааа , разные)Использовать в имени переменной можно буквы и цифры.

Переменные начинаются с “_”, делятся на пользовательские и системные. Значение пользовательских переменных можно изменять и считывать, а системных только считывать. Все переменные имеют целый тип. Т.е являются целым числом( 1, 3, -8 , 0 и т.д). Все логические системные переменные/функции возвращают 1 в случаи истины, и 0 в случаи лжи. У некоторых системных переменных есть свойства, доступ к ним идет через “.”.
Перед выражениями можно ставить любое число пробелов и знаков табуляции (отступов).
/” – комментарии, должен идти в начале строки
Функции начинаются с “~” . Свои пользователи создавать не могут.

Доступны операторы(идут в порядке приоритета):
() – скобки, определяют приоритет обработки

Арифмитические(возвращают целые числа):
*, / - умножить и поделить
+, - - сложить и вычесть

Сравнения(возращают 1 или 0 в случаи: истины или лжи):
<, >  - меньше , больше
= - равенство

Логические(возвращают 1 или 0 в случаи: истины или лжи):
|,& -  ИЛИ , И

Присвоение значения переменной осуществляется через пробел. Расчет идет слева на право.
Примеры операций с переменными:
1
// _А =1
_Б _А + -2
/ _Б = -1
_С _Б =
/ _С = 0
  ( > )
/ _С = 1
  | 0
/_A = 1

Скрипт ИИ разделен на разделы:
Магия:
Здесь вы задаете параметры заклинания. Очень важна позиция каждой строки, переставлять нельзя. Каждое новое заклинание начинается со слова “Магия:”
Переменные:
Здесь вы объявляете свои переменные(пользовательские). Для каждой переменной должно быть задано значение по умолчанию.
Успешное_считывание_камней:
Здесь происходит обработка кода после успешного считывания ваших/врага жизней и камней.
Успешное_считывание_поля:
Здесь происходит обработка кода после успешного считывания ваших/врага жизней и камней, а также поля.

Константы содержащие значение настроек бота, не изменяются во время работы бота:
_Пуха_Позиция
_Скилл1_Позиция
_Скилл1_Красных
_Скилл1_Синих
_Скилл1_Зеленых
_Скилл1_Минимальный_Урон
_Уровень
_Базовый_Урон
_Урон

Переменные содержащие вычисляемые значения, обновляются ботом:
Был ли предыдущий ход ваш(пока дорабатывается, использование не рекомендуется)
_Ход_Продолжен

Количество камней и жизней у вас и противника:
_Красных_Моих
_Синих_Моих
_Зеленых_Моих

_Красных_Врага
_Синих_Врага
_Зеленых_Врага

_Жизни_В_%_Моих
_Жизни_В_%_Врага

Сумма камней/черепов на поле без учета их уровня и с учетом:
_Черепов_На_Поле
_Красных_На_Поле
_Синих_На_Поле
_Зеленых_На_Поле

_Черепов_На_Поле_С_Ур
_Красных_На_Поле_С_Ур
_Синих_На_Поле_С_Ур
_Зеленых_На_Поле_С_Ур

Количество вариантов ходов:
_Вариантов_Ходов

Выбранный вариант хода, отсчет начинаетя от 0:
_Ход[{индекс}]

Свойства хода(соответствуют столбцам в расчетчике поля):

С какого сложения стола собирается 4-ка или более линия камней/черепов. Отсчет начинается с 1.
Уровень_Сложности

Координаты ячеек куда нужно кликнуть, что бы сходит. Для Детонации и Сдвига учитывается только первая. За начало принимается левый верхний угол поля, отсчет идет от 0. Первый параметр по горизонтали второй по вертикали.
Ячейка_11
Ячейка_12
Ячейка_21
Ячейка_22

Число сложенных не пересекающихся линий черепов, при включенной галке “ВС” учитываются и линии камней.
Атак

Сумма собираемых камней этим ходом:
Черепов_Соберется
Красных_Соберется
Синих_Соберется
Зеленых_Соберется

Черепов_С_Ур_Соберется
Красных_С_Ур_Соберется
Синих_С_Ур_Соберется
Зеленых_С_Ур_Соберется

Сумма собираемых линий разной длины этим ходом:
Число_3
Число_4
Число_5
Число_6

Какая линия черепов по длине максимум собралась:
Возвращаемые значения:
4 – Четыре или больше
3 – Тройка
0 – Линий черепов нет.
Комбо_Черепов

Что можно сложить на поле, после этого хода:
Возвращаемые значения(старшие могут включать младших):
0 – Конец, т.е стол разобран
1 – Тройки камней
2 – Тройки черепов
3 – Четверки и более камней
4 – Четверки и более черепов
Итог

Максимальная сумма камней + черепов которое можно собрать на поле, после этого хода и их сумма с учетом уровня камней.
Макс_Возм_Сбор_Без_Ур
Макс_Возм_Сбор_С_Ур

Вид детонации, зависит от количества и длины сложенных линий черепов:
Возвращаемые значения:
0 – Пусто, нельзя сложить не одну линию черепов
1 – Сложена четверка черепов, но при активации не задет череп
2 – Сложена четверка черепов, при активации задет череп
3 – Сложена тройка черепов, при активации задет череп
Вид_Детонации

Примерный урон от Властелина Стихий
Урон_От_ВС

Сумма камней/черепов на поле, после хода, без учета их уровня и с учетом:
Черепов_Без_Уровня_После
Красных_Без_Уровня_После
Синих_Без_Уровня_После
Зеленых_Без_Уровня_После


Черепов_С_Уровня_После
Красных_С_Уровня_После
Синих_С_Уровня_После
Зеленых_С_Уровня_После

Функции:
~Сортировка {направление сортировки} {столбцы для сортировки}
Сортирует варианты ходов по различным свойствам.
Краткое название свойств: 6, 5, 4 , 3, К, С, З, Ч, КУ, СУ, ЗУ, ЧУ, А, Вид_Детонации, Урон_ВС, Итог, СХ, МСУ, МС
Пример
~Сортировка 1 6 5 4 С
/ Все ходы отсортируются от большого к меньшему по столбцам : 6, 5, 4, С
/индексы их изменяться

~Трассировка {Строка или выражение}
Позволяет сохранить в файл log.txt переданное значение или строку
Пример
~Трассировка “Привет мир!
/Сохранит: Привет мир!
~Трассировка 2+2
/Сохранит: 4

~Расчитать_Поле
~Расчитать_Детонацию
~Расчитать_Сдвиг

Заполняет Ход  вариантами ходов

~Расчитать_Ритуал
~Расчитать_АА

То же самое, но только один вариант хода

~Выход_Из_Обработки
Позволяет пропустить раздел “Успешное_считывание_поля:”  при работе скрипта в
“Успешное_считывание_поля:”

~Спать {Время в миллисекундах}
Останавливает на указанное время работу бота
Пример
~Спать 3000
/Бот не работает 3 сек

~Клик {позиция заклинания или позиция Ячейки для клика(указывается двумя числами)}
Кликает по заклинанию или полю
Пример
~Клик 1
/Кликает по первому заклинанию (считать сверху)
~Клик 2 3
/Кликает по ячейки на поле, 3 по горизонтали, 4 по вертикали. Отсчитывать от левого верхнего угла.

~Клик_по_лотку {позиция эля в лотке от 1 до 9}
Кликать по элям в лотке
Пример:
~Клик_по_лотку 3
/клик по 3 -му в списке элю

~Случайное_Число {Верхний предел} {Переменная для записи}
Записывает в переменную число от 0 до {Верхний предел}-1
Пример
~Случайное_Число 100
/В _А будет записано значение от 0 до 99

~Пауза_Боя {Время в миллисекундах}
Блокирует режим игры на поле на указанное время.
Пример
~Пауза_Боя 5000
/Бот попытается сыграть на поле, только через 5 сек.

Операторы:
/ - комментарий

ЕСЛИ {Выражение}
{
}
ИНАЧЕ
{
}

Если оператор ЕСЛИ получает 1, то интерпретатор скрипта заходит в скобки,если 0 то пропускает их содержимое, но заходит в скобки ИНАЧЕ если он есть
Пример 1:
ЕСЛИ 1
{
/сюда зайдет
}
ИНАЧЕ
{
/Сюда не зайдет
}

Пример 2:
ЕСЛИ 0 > 1
{
/не зайдет
}

ИДТИ {Указатель}
: {Указатель}

Оператор идти переводит интерпретатор на стоку, где стоит указатель. В сочетании с ЕСЛИ можно сделать различные циклы. А также имитировать рекурсивные функции.
Пример “цикл с счетчиком”:
0
:цикл
_И _И +1
/некоторое выражение
/оно выполнится 9 раз

ЕСЛИ < 10
{
ИДТИ цикл
}

Пример “цикл с предусловием”:
0
:цикл
ЕСЛИ
< 10
{
/некоторое выражение
/оно выполнится 9 раз

_И _И +1
ИДТИ цикл
}

Вот и все:)

Пример рабочего скрипта:

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

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

Магия:
_Выстрел
Позиция _Пуха_Позиция
Камни:
Красные 3
Синие 3
Зеленые 3

/Дальше никаких ограничений по вставке коментариев нет
/Все переменные целые числа

Переменные:
_i 0
/Каждой переменной нужно присваивать значение
_Выбор 0
_Случ 0
_Кр 0
_Син 0
_Зел 0

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

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

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

~Клик _ББ.Позиция

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

2

А возможность самому получить информацию о поле? например о клетке 5,5 в Вашей системе отсчета? что там? камень, пусто, череп?

0

3

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

А возможность самому получить информацию о поле? например о клетке 5,5 в Вашей системе отсчета? что там? камень, пусто, череп?

нет, но можно добавить. Вопрос: Зачем? Пока не сталкивался с необходимостью. Все заклятья работают на основе комплексных сведений о поле.

0

4

Объясняю. мне не нравится работа встроенного сценария детонация. посему написал тупое до ужаса кликанье до окончания камней). НО хочется кликать в 4,4 и, если там пусто(чтоб не дисквал), то в 5,5. еще хорошо бы кликать в первый попавшийся череп... (это еще лучше, чем 4,4). честно говоря, ощущается, что автор играет за людей. Поэтому пользуюсь только своими скриптами. пусть просто, но глюков на порядок меньше....

ЗЫ неправильно поступил, предлагаю перенести эти сообщения в ветку "хорошо бы"

0

5

ЗЫ2 не понимаю разницы между "пауза боя" и "спать". пауза как-то странно для меня работает...

0

6

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

ЗЫ2 не понимаю разницы между "пауза боя" и "спать". пауза как-то странно для меня работает...

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

0

7

Можно как-нибудь иметь матрицу поля? это я думаю инт 5х5. было бы большо возможностей макрописателям)

0

8

Переменная _Красных_На_Поле не работает.
вернее работает, но все время меньше 1.

Пременной для камней на поле с учетом уровня нету(((

0

9

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

Переменная _Красных_На_Поле не работает.
вернее работает, но все время меньше 1.

Да, они не инициализировались, исправил. Качайте по правленую версию.

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

Пременной для камней на поле с учетом уровня нету(((

Они были неправильно написаны, исправил в справке и вот отдельно:
_Черепов_На_Поле_С_Ур
_Красных_На_Поле_С_Ур
_Синих_На_Поле_С_Ур
_Зеленых_На_Поле_С_Ур

0

10

Спасибо

В новой версии учтено, что 1.1.8 пыталась проигрывать скрипт в суперигре (за гномов)
просто пользуюсь 1.1.7с пока (из-за этого глюка)

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

0

11

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

В новой версии учтено, что 1.1.8 пыталась проигрывать скрипт в суперигре (за гномов)
просто пользуюсь 1.1.7с пока (из-за этого глюка)

Не понял, что за глюк. Вроде все предыдущие выловил.

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

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

Это было где то  в ранних версиях, убрал, т.к. все ставили на все поле. Слишком долго ищет (3-5 секунд).

0

12

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

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

    В новой версии учтено, что 1.1.8 пыталась проигрывать скрипт в суперигре (за гномов)
    просто пользуюсь 1.1.7с пока (из-за этого глюка)

Не понял, что за глюк. Вроде все предыдущие выловил.

сегодня проверю, доложу

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

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

Это было где то  в ранних версиях, убрал, т.к. все ставили на все поле. Слишком долго ищет (3-5 секунд).

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

0

13

люди напишите и выложите тут скрипт для бурлящей без всего чисто тока путём сложений или скрипт где бот будет собирать 4-ки а когда их нет просто смотрел а то я никак не разберусь.
что нужно знать чтоб правильно писать скрипты? а то я в этом деле НУБ

ВЫРУЧАЙТЕ НАРОД

0

14

поддерживаю,катастрофически нехватает новых сценариев((((

0

15

+1
а также, хотябы один для дитки или сдвига

0

16

Предлагаю создать новую тему для ИИ, в которой будут только  скрипты
Без флуда

Отредактировано POFF (2009-07-13 00:45:27)

0

17

ну ....
не стесняемся

0

18

Я за:) Но сам бота в основном в ручном режиме юзаю, авто не пользуюсь так как нет другим занят.Практически все свои сценарии тут выложил:)

Можешь создать тему, в нее перекопировать все Сценарии, что разбросаны по форуму( не забыв указать, что какой скрипт делает и разумеется автора). А я эту тему закреплю и буду резать флуд время от времени. Авось народ и проникнется идеей:)

0

19

Народ плиз объясните, как к скрипту прикрепить ~Клик_по_лотку (х), чтоб использовался елик перед магией, где его надо вставить, как его надо вставить.

Желательно кусочек кода, пожалуйста  очень надо.

Отредактировано POFF (2009-07-18 21:14:41)

0

20

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

Желательно кусочек кода, пожалуйста  очень надо.

Успешное_считывание_камней:
{
~Спать 1000   
~Клик_по_лотку 1
~Спать 1000
~Клик_по_лотку 2
}

0

21

у меня хз почему не пашет

0

22

давайте его попробуем вставить сюда

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

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


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



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

{

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


//Повесим Взрыв
ЕСЛИ ( ((_Красных_Моих > _Взрыв.Красные) | (_Красных_Моих = _Взрыв.Красные)) & 

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

~Клик _Взрыв.Позиция
~Спать 1500

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


}

Отредактировано POFF (2009-07-18 23:16:48)

0

23

вставляй перед Взрывом

0

24

нихрена не получается

0

25

выложи свой сценарий, посмотрю как ты вставил

0

26

В первом варианте убери 2 скобки красного цвета, и добавь закрывающую скобку в конце сценария.

Не забудь в начале сценария объявит магию Взрыв.

0

27

Хех, сам расчет поля во всех трех сценариях My_AI.txt, прилагаемых к боту, написан с несколькими ошибками. Я переписал его, вот этот сценарий работает без ошибок, проверил. Версия бота не имеет значения для сценариев.

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

Переменные:
_i 0
_Выбор 0
_Случ 0
_Кр 0
_Син 0
_Зел 0

Успешное_считывание_камней:
{
~Спать 1000   
~Клик_по_лотку 1
~Спать 1000
~Клик_по_лотку 2

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

Успешное_считывание_поля:
{
~Сортировка 1 6 5 4 Ч

_i -1
:начало
_i _i + 1
ЕСЛИ _i < _Вариантов_Ходов
{
        ЕСЛИ _Ход[_i].Число_6 > 0 | _Ход[_i].Число_5 > 0 | _Ход[_i].Число_4 > 0
        {
        _Выбор _i
        ИДТИ конец
        }

    ЕСЛИ ( _Ход[_i].Итог = 0)
        {
            _Выбор _i
            ИДТИ конец
        }
       
    ИНАЧЕ
    {
    ИДТИ начало
    }
}

    ИНАЧЕ
{
    _Выбор 0
    ИДТИ конец
}

:конец

~Случайное_Число 3000 _Случ
_Случ  _Случ + 4000
~Пауза_Боя _Случ

~Клик _Ход[_Выбор].Ячейка_11 _Ход[_Выбор].Ячейка_12
~Спать 300
~Клик _Ход[_Выбор].Ячейка_21 _Ход[_Выбор].Ячейка_22
}

0

28

в таком виде пишет - ошибка в выборе сценария

а если повставлять все коменты - запускается но не кликает

ппц млин

0

29

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

0

30

папка Scripts,  файл имя My_AI_Vzruv
Юникод, .txt
запускаю через виртульную машину, система хр

Отредактировано POFF (2009-07-19 18:24:57)

0


Вы здесь » tmgamebot.narod.ru - бот для игры Техномагия(tmgame.ru) » Ваши мнения » Справка по написанию Сценариев ИИ