я взял значит первый блок, отредактировал его под шард, вроде должно работать.
из второго блока я мало что понял(
завтра еще посижу над вторым блоком, а так же постараюсь найти под наш шард реол по рунбуке, насколько я помню с этим возникали какие то траблы))))
а вот то что у меня получилось:
Code:
#####
#1. Запускаем авто хил, проверяем наличие необходимых вещей, если чтото отсутствует то добираем.
#2. Реколимся, как только прилетели начинаем искать животное, если находим то идём к нему,иначе ждём,- как только нашли и подошли
#3. Как только нашли и подошли начинается процесс убийства. Одеваем оружие и щит(малоли что) ,проверяем своё здоровье,вешаем атаку на животное и бьём,бьём,бьём пока в журнале не будет Body или животное будет трупиком(так же не забываем лечиться и всё время подходить к животному в случае увеличении дистанции + одевать необходимые вещи)... -3ий блок
#4. Как только в журнале боди или животное трупик, тогда по последнему трупу вешаем ловушку и юзаем режущее оружие. Лутаем... -4й блок.
#####
Sub start()
uo.exec("exec prov")
uo.exec("exec autoheal")
end sub
##########
#Проверка на реги, ножницы и пушку, если нет добираем
# из сундука (считаем что регов 4 вида).
#Если вещи в сундуке закончились то выход.
##########
sub prov()
var syndyk='000000'; ИД СУНДУКА!
var kolvo=55; по сколько брать регов
dim items[6]
items[0]='0000'; Тип пушки
items[1]='0000'; Тип ножниц
items[2]='0000'; Тип 1 рега
items[3]='0000'; ... 2 рега
items[4]='0000'; ... 3 рега
items[5]='0000'; бинты
var i
uo.useobject(syndyk)
wait(900)
for i=0 to 1
uo.findtype(items[i],'-1','backpack')
if uo.findcount()>0 then
wait(100)
else
uo.findtype(items[i],'-1',syndyk)
if uo.findcount() then
uo.moveitem('finditem',1,'backpack')
wait(1000)
else
uo.closeuo()
endif
endif
next
wait(500)
end if
for i=2 to 4
uo.findtype(items[i],'-1','backpack')
if uo.findcount()>49 then
wait(100)
else
uo.findtype(items[i],'-1',syndyk)
if uo.findcount() then
uo.moveitem('finditem',kolvo,'backpack')
wait(1000)
else
uo.closeuo()
endif
endif
next
for i=6 to 6
uo.findtype(items[i],'-1','backpack')
if uo.findcount()>200 then
wait(100)
else
uo.findtype(items[i],'-1',syndyk)
if uo.findcount() then
uo.moveitem('finditem',kolvo,'backpack')
wait(1000)
else
uo.closeuo()
endif
endif
next
uo.exec("exec rekol")
endsub
########
#Чар портится по рунбуке(и далее только рунбука)
# в место где гуляют животные, если животных нет, то чар
# встает в хайд и ждет респа животинки. Как животинка
# появилась узнаем ее ИД и далее следущий блок.
#Для простоты считаем что тип у животин один.
#Рунбук надо настраивать под свой шард!!!(ДРВ изначально)
########
sub rekol()
var animal='0000'; Тип животного
var book='0000000'; ИД рунбуки
var n=1; Номер руны в буке где животные
var givka
var oldX=UO.GetX()
var oldY=UO.GetY()
uo.set('finddistance','14')
NoTarget()
UO.UseObject(book)
FastLootCheck()
CheckLag()
UO.LClick(135, n*15+55)
Repeat
wait(500)
Until oldX<>UO.GetX() OR oldY<>UO.GetY()
uo.findtype(animal,'-1','ground')
while not uo.findcount()
wait(1000)
ToHide()
uo.findtype(animal,'-1','ground')
wend
givka=uo.getserial('finditem')
endsub
Sub FastLootCheck()
UO.DeleteJournal()
wait(600)
if (UO.InJournal("FastLoot") OR UO.InJournal("World save")) then
CheckLag()
endif
end sub
Sub NoTarget()
if UO.Waiting() then
UO.CancelTarget()
endif
end sub
Sub CheckLag()
uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal('backpack') or UO.Dead()
end Sub
Sub ToHide()
while not UO.Hidden()
CheckLag()
uo.WarMode(0)
uo.UseSkill('Hiding')
repeat
wait(200)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preocopured') or UO.Dead()
wend
end Sub
sub autoheal()
#####
#Далее у нас авто хил, который будет запущен постоянно
#Отсюда => в автохиле незя делить журнал, незя с маленьким стлбом реколиться
#тоесть в макре на хиты должен быть вэйт до восстановления
#тобишь пока не отхилимся, так же должен быть макр который палит бинты и если их нету,
#автохил нуно выключить и идти за бинтами.
#####
repeat
if uo.gethp()< 80 then
uo.setarm("default")
wait(100)
uo.bandageself()
wait(900)
uo.arm("default")
wait(3100)
end if
wait(1000)
until false
end sub
### Ходилка ###
sub gotoxy(x,y,prec)
var ld=0,ldc=0
var dx,dy
var mx,my
var ox,oy,mk,k
#uo.print(">")
#uo.track("1",str(x),str(y))
start:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if not ldc then
uo.print(STR(dx))
end if
if dx<3 then
mk=70
else
mk=15
end if
ox=mx
oy=my
for k=1 to mk
mx=UO.GetX()
my=UO.GetY()
if mx<>ox or my<>oy then
goto sdidapl
end if
wait(10)
next
sdidapl:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if ld==dx then
ldc=ldc+1
if ldc>100 then
uo.print("Can not reach location!")
return
end if
else
ld=dx
end if
if mx==x then
if my==y then
return
endif
if my>y then
#UO.Print("UR")
UO.Press(33)
goto start
endif
#UO.Print("DL")
UO.Press(35)
goto start
end if
if mx<x then
if my>y then
#UO.Print("R")
UO.Press(39)
goto start
endif
if my==y then
#UO.Print("DR")
UO.Press(34)
goto start
endif
#UO.Print("D")
UO.Press(40)
goto start
end if
if my<y then
#UO.Print("L")
UO.Press(37)
goto start
endif
if my==y then
#UO.Print("LU")
UO.Press(36)
goto start
endif
#UO.Print("U")
UO.Press(38)
goto start
end sub
я добавил автохил и впиндюрил сюда нормходилку, т.к. за животинкой придется побегать.
перемещение осуществляется командой gotoxy(координата Х,координата Y,'')