Что нового

Дракон + AutoIt

lukoas

Знающий
Сообщения
16
Репутация
9
Блуждая по просторам сети в поисках UML-редактора както наткнулася на ДРАКОН и возникла идея интегрировать бота с драконом, для более простого изменения сценария поведения бота (в конечном итоге боты оперируют одинаковым набором функций)

Пока был в коммандировке набросал заготовку бота, ну и конвертер для него из DRT-формата.
Что есть:
- динамическое отслеживание числа окон-клиентов;
- отдельное задание типа сценария для каждого окна;
- подерживает многопоточность (несколько окон);
- урезаная ДРАКНО система (подерживает примитивы: Заголовок, Действие, Развилка и Конец);
- запуск/остановка обработки по кнопке ScrollLock,
- что-то типа ООП ( модульная структура ) :whistle:.

Чего нет:
- нет функций обслуживания окна-клиента ;)

./DraconIt_Bot/main.au3 - основной файл бота
./DRTtoINI/DraconIt_Convert.au3 - конвертер
./Пример сценария/BoMiner.drt - Пример алгоритма бота (он же на картинке)

Dragon.exe - ИС Дракон (с) автор: Тышов Г.Н.,2007-2011 (ключевые слова для поиска ;))



OffTopic:

PS: почему дракон, а не UML - да просто не нашел адекватного UML-редактора.
PSS: теперь думаю как запихать ДРАКОН в микроконтролер :laugh:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 593
Репутация
938
Выглядит интересно, но я если честно не понял. В этой штуке что, можно прописать сценарий и указать файлик который она будет вызывать в зависимости от результата? Можно поподробнее в чем заключается интеграция дракона и автоита.
 
Автор
L

lukoas

Знающий
Сообщения
16
Репутация
9
Для начала.
[box title=main.au3]для подключения бота к проекту вызывается
Код:
#include "Crosbusher_Script.au3"
[/box]
[box title=Crosbusher_Script.au3]
Файл Crosbusher_Script.au3 - имеет определеную структуру:
Регистрация бота в ядре задач:
Код:
AddScript("Имперский рудокоп", "Crosbusher")

Должны быть определены функции:
Crosbusher_init - создание GUI (органы управления и контроля) и инициализация ядра бота
Crosbusher_delete - удаление GUI и подчистка за ботом (например удаление Signal)
Crosbusher - собствено сам бот, сюда передается управление из ядра
[/box]
А теперь сам дракон:
[box title=Crosbusher_Script.au3]
Загрузка скрипта/сценария... кароче дракон схемы
Код:
Global $DI_PGM_Crosbusher = DraconIt_Load( "Crosbusher.ini" ); формат *.ini

Исполнение дракон схемы:
Код:
DraconIT_Core_Execute( $DI_PGM_Crosbusher, $stack[$DraconIT_Index] )

т.е. программа хранится в $DI_PGM_Crosbusher, второй параметр это "указатель" на текущий исполняемый блок, "указатель" - модифицируется в процессе исполнения
[/box]

Дракон-схема - полностью законченый алгоритм, функции вызова других дракон-алгоритмов непредусмотрено хотя и возможно. Фактически это способ задания последовательности вызова "базовых" функций управления клиентом, таких как WarpTo(), inDoc(), PressF1() и т.д. Такой способ крайне ресурсоемок, но зато сильно упрощает принцип создания "программ ботов", ведь суть Дракона какраз и заключается в исключении кодеров из разработки конечных управляющих программ. Такой способ создания ботов позволит создавать их даже очень далеким от программирования людей, достаточно просто уметь нарисовать алгоритм поведения.

и .. Нет, сразу что-то написать тут не удастся, поскольку нет функций управления клиентом(WarpTo(), inDoc(), PressF1().... ), их можно набрать в этом разделе и незначительно переделать.

PS: для запуска и просмотра возможностей запустите notepad... ну небуду я запускать EVEonline на работе, не буду :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 593
Репутация
938
Как дракон узнает о результате работы проверочной функции? Например функция должна вернуть состояние корабля. Это происходит че6рез обычный Return?
 
Автор
L

lukoas

Знающий
Сообщения
16
Репутация
9
В соответсвие с идеологией дракона, функция может возвращать некоторые значения, которые анадизируются, поскольку у меня реализован только один из пимитивов требующих результатов, а иммено РАЗВИЛКА, то анализируется только два варианта ответа True или False, по идее там еще должен быть аналог case, но его я не реализовал.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 593
Репутация
938
Звучит конечно интересно :smile:
 
Верх