Code: Select all
//задание переменных
:step1 //называем блок step2
set $not there is
set $try try mining in rock
set $can't you can't see
set $noline you have no
set $put you put the
set $loos you loosen
//определяем позицию персонажа по координатам x и y
set #x charposx
set #y charposy
set #x #x - 2
set #y #y + 2
for #ii 1 5 1
for #i 1 5 1
set lasttargetx #x
set lasttargety #y
:step2 //называем этот блок скрипта - step4
send F6 //прожатие кирки на пол
waitfortarget 5000 //ждём пока выкопает тайтл
set timer
end_for
while_not ( lastmsg $not ) or ( lastmsg $try ) or ( lastmsg $can't ) or ( lastmsg $noline ) //если не увидели одно из этих сообщений
if ( lastmsg $put ) or ( lastmsg $loos ) //если увидели одно из этих сообщений
gosub step2 //возвращаемся на наш блок step4
end_if
if timer > 5000 or ( lastmsg sight ) //если прошло 5 сек. или вылезло сообщение о том,что мы вышли за экран
gosub step3 //переходим на блок step5
end_if
end_while
:step3 //называем блок step5
set #x #x
set #y #y - 1
set timer
end_for
set #x #x + 1
set #y #y + 5
:step4 //называем блок step6
repeat 3 //повторяем 3 раза
send down //делаем два шага вниз
wait 1000 //ждём 1 сек.
end_repeat
end_if
goto step1 //возвращаемся к началу скрипта
__
Описание скрипта: ходит сверху вниз,есть проверки сообщений,
типо "тут нечего копать"
F6 Lastobj WFT LastTarg
Интересует ни сколько - тотальная автоматизация процесса,сколько - как это вообще реализовать и на сколько это сложно...просто пытаюсь вникнуть в "язык пилота" (хотя знаю,что большая часть там от бейсика) и интересно - как это там реализовать...не только для мининга....
А если подробнее - есть шахта на 10 клеток от верхней точки до нижней,надо в начальной точке обкопать всё (под собой можно копать ?),т.е. все 8 клеток (если под собой нельзя копать...просто даже не знаю,как эту точку в макросе задать),потом спуститься на 2 клетки вниз (почему именно 2 клетки ?,потому-что там начнётся новый круг),тоже обкопать всё вокруг и так до самого низа,т.е. 5*2 (в пяти клетках из 10 остановится и копать),а потом вернуться назад (правда тут ещё думаю - как лучше сделать - возвращаться тоже по 2 клетки или резко рвануть вверх...второй вариант - предпочтительнее,да и реализовать его не особо трудно.
Проблема в том,что я не весь синтаксис пилота понимаю,из того,что понял - сделал примечания,остальное для меня - "тёмный лес",да и как вокруг точки копать - вообще понятия не имею,ну и плюс,почему-то проверка на то,что персонаж "ушёл за границы экрана" и то,что "тут больше нечего копать" - почему-то не работают...может надо их полностью написать,а не в сокращённом виде ? в общем,интересуют именно пояснения по каждому пункту,а не написание макроса за меня,т.к. нужно будет потом ещё его изменить,чтоб он ходил справа налево.
На всякий случай напишу ещё раз алгоритм действий,чтоб не было путаницы:
полоска из 10 клеток (12,если с поворотами),надо обкопать вокруг изначальной точки (с проверкой на каждой,что там больше ничего нету),потом спустится на 2 клетки вниз,там сделать всё тоже самое и так до самого низа (5*2),потом вернуться наверх и повторить сначала (хотя,если учитывать просто возвращение к началу скрипта,то второй вариант даже проще получается).