Тема: МАКРОСЫ
Показать сообщение отдельно
Re: МАКРОСЫ
Старый 27.01.2010, 10:41   #14
Sindo
The Hero
 
Регистрация: 02.02.2007
Адрес: KIDs
Возраст: 35
Сообщений: 969
Репутация: 52 [+/-]
имеет хорошую репутацию (от 26 до 75)
Sindo имеет хорошую репутацию (от 26 до 75)
Чар: Sindoatan
Гильдия: KIDs
По умолчанию Re: МАКРОСЫ

Раньше копал этим на базе, теперь, вероятно, пригодится лишь в Т2А
[PHP]// Mining near wall by Sindo
// Интервал между строк 20
set #napravl 3 // направление на обкапываемую скалу (0=N,1=E,2=S,3=W)
set $miningbtn01 F10 // кнопка с биндом LastObject/WFT в клиенте
set $miningbtn2 F11 // кнопка с биндом LastTarget в клиенте
set #wstep 1500 // задержка до перехода чара на новый тайл после подачи команды к этому
set #wmine 4300 // задержка до окончания вскапывания чаром указанного тэйла после вызова $miningbtn2
set #pich 1 // индикатор необходимости поддержки замены кирки при поломке (0=нужно, 1=не нужно)
set %pickaxe[1] 0 // ID первой запасной кирки
set %pickaxe[2] 0 // ID второй запасной кирки
set %pickaxe[3] 0 // ID третьей запасной кирки
set #pickaxetype 0 // итемтайп кирок

set $s1 is no ore here
set $s2 have no line
set $s3 try mining
set $s4 too far away
set $s5 has changed
set $s6 loosen some rocks
set $s7 has increased
set $s8 put the
set $broke broke // сообщение при поломке кирки
set $loose reach that // собщение при потере кирки (в том числе при поломке)
set #broke 0 // счетчик поломок кирки
set #a 0 // индикатор необходимости разворота
set #ston 0 // индикатор застоя на месте
set #superston 0 // индикатор капитального застоя на месте

if (#napravl = 0)
set $correctx + 0
set $correcty - 1
set $nexttilebtn Home
set $otskalibtn End
set $kskalebtn PageUp
end_if
if (#napravl = 1)
set $correctx + 1
set $correcty + 0
set $nexttilebtn PageUp
set $otskalibtn Home
set $kskalebtn PageDown
end_if
if (#napravl = 2)
set $correctx + 0
set $correcty + 1
set $nexttilebtn Home
set $otskalibtn PageUp
set $kskalebtn End
end_if
if (#napravl = 3)
set $correctx - 1
set $correcty + 0
set $nexttilebtn PageUp
set $otskalibtn PageDown
set $kskalebtn Home
end_if

:start

set lasttargetx charposx $correctx
set lasttargety charposy $correcty
set lasttargetkind 2
send $miningbtn01 300
set $prevmsg lastmsg
if (lastmsg = $broke) or (lastmsg = $loose)
if (#pich = 0)
set #broke #broke + 1
if (#broke <= 3)
set LastObjectID %pickaxe[#broke]
set LastObjectType #pickaxetype
goto start
else
msg У вас закончились запасные кирки!
end_if
else
msg У вас сломалась кирка!
end_if
end_if
send $miningbtn2 #wmine
if (lastmsg = $prevmsg)
alarm
say Ping troubles! Либо вы лагаете, либо неправильно выставлена "#wmine", либо вылез антимакрос.
end_if
set timer
while_not (lastmsg = $s1) or (lastmsg = $s2) or (lastmsg = $s4) // or (timer > 800)
while_not (lastmsg = $s5) or (lastmsg = $s6) or (lastmsg = $s7) or (lastmsg = $s8) or (timer > 7000)
if (lastmsg = $s3) // подход к скале, если линия вскапывания отдалилась от нас (срабатывает на отсутствие скалы)
repeat 2
send $kskalebtn #wstep
end_repeat
goto start
end_if
set #a 1
end_while
goto start
end_while

:nextstep
set #prevx charposx
set #prevy charposy
if (#a >< 0)
send $nexttilebtn #wstep
set #a 0
end_if
send $nexttilebtn #wstep

if (charposx = #prevx) and (charposy = #prevy) // обход припятствия от скалы в сторону чара (срабатывает на застой на месте (в том числе при упирании в скалу))
set #ston #ston + 1
set #superston #superston + 1
if (#ston > 2)
repeat 2
send $otskalibtn #wstep
end_repeat
set #ston 0
set #superston 0
set #a 1
goto nextstep
else
goto nextstep
end_if
else
set #ston 0
set #superston 0
end_if

goto start



// Перед использованием скрипта необходимо:
// Проверить чтобы не было препятствий для перпендикулярного отхода от скалы на всем ее протяжении
// Учесть что копать следует с ~юга на ~север, а не наоборот (позволяет обойти большинство багов текстур)
// не забываем юзать кирку ручками перед каждым новым стартом скрипта
[/PHP]
__________________
May the Force be with you..
Sindo вне форума   Ответить с цитированием