Чуток подправить скрипт на мининг.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Чуток подправить скрипт на мининг.

Post by Jekaaa »

Нашел вот такой скрипт

Code: Select all

#@include equip.scl
#@include unload.scl
#@include walker1.scl

################################################################################
#	НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ
#	1) запустить функцию setup
#	2) в качестве первой точки указать точку выгрузки руды
#	 на расстоянии не более 3х клеток от этой точки должны быть 
# прилоченны все виды выкапываемой руды	
#	3) 2 и 3 точки - опорные для прохода в шахт
#	4) далее указать до 100 точек в которых надо копать
#	5) для окончания разметки, указать на себя
#	6) после разметки, настройка закончена 
#	7) можно запускать функцию mining
#
#	при разметке важно не подходить близко к указываемой точке
################################################################################


sub mining()
var points = 0
dim mineX[100]
dim mineY[100]

points = loadPointsXY(mineX, mineY, FileName())

uo.say('.macro on')
equipForMining()

Walker(mineX[1], mineY[1])
Walker(mineX[2], mineY[2])

var f = 3
var i
var ret

uo.deleteJournal()

repeat
uo.print('walk to point ' + str(f))
Walker(mineX[f], mineY[f])
#ret = MiningHere()
ret = MiningHereDumb()

#если атакуют или много веса - на разгрузку
if ((ret == 2) or (uo.weight > uo.str*3.2)) then
uo.print('walk to unload')
for i = f to 0 step -1
Walker(mineX[i], mineY[i])
next

unloadOres()

Walker(mineX[1], mineY[1])
Walker(mineX[2], mineY[2])
f = 3
else
f = f + 1
#возвращаемся в первую точку
if (f >= points) then
for i = f-1 to 3 step -1
Walker(mineX[i], mineY[i])
next
f =3
end if
#fix "already doing"?
wait(2000)
end if

until uo.life == 0

end sub


sub setup()
uo.AddType('pickaxe', '0x0E85')
uo.AddType('ore', '0x19B9')
uo.saveconfig()

equipForMining()

dim tileArr[100]
dim xArr[100]
dim yArr[100]
dim zArr[100]

var points = markPoints(tileArr, xArr, yArr, zArr)
savePointsXY(xArr, yArr, FileName(), points)
end sub

#нормальный мининг с проверкой сообщений, нападения, зависания, ...
sub MiningHere()
var msg1 = 'You place'
var msg2 = 'You fail to find'
var msg3 = 'You cannot prospect'

var msg4 = 'There is no ore here to mine'
var msg5 = 'You cannot mine that'
var msg6 = 'attacking you'

var done = 0
var counter = 0
var delay = 500
var lastLife = uo.Life
var pickaxe = uo.ObjAtLayer('Rhand')

uo.deletejournal()

uo.useObject(pickaxe)
wait (400)
uo.press(119)


repeat
if (uo.injournal(msg1) or uo.injournal(msg2) or uo.injournal(msg3)) then #процесс идет
counter = 0
end if

if (uo.injournal(msg4) or uo.injournal(msg5)) then #процесс не идет
done = 1
end if

if (uo.injournal(msg6) or (uo.Life < lastLife)) then #кто-то нас аттачит
uo.print('under attack!')
done = 2
uo.deleteJournal()
end if

if (uo.Life > lastLife) then
lastLife = uo.Life
end if

if (counter > 15000) then #процесс не идет, пробуем начать снова
CheckLag()
if (uo.targeting()) then
wait (400)
uo.press(119)	
end if

uo.useObject(pickaxe)
wait (400)
uo.press(119)
counter = 0
end if

uo.deleteJournal()
wait(delay)
counter = counter + delay
until done or uo.Life == 0

return done
end sub

#тупой мининг - использовать 1 раз кирку и стоят 1 минуту
sub MiningHereDumb()
var counter = 0
var delay = 500
var pickaxe = uo.ObjAtLayer('Rhand')

uo.useObject(pickaxe)
wait (400)
uo.press(119)

repeat
wait(delay)
counter = counter + delay
until counter > 70000 or uo.Life == 0

return 0
end sub

#выгрузка руды
#если не сможет выгрузить хотя бы 1 тип руды - 
#зависнет в вечной попытке его выгрузить
sub unloadOres()
var idx = 0
var type = ''
var color = ''

uo.findType('ore')
while uo.findCount()
type = uo.GetGraphic('finditem')
color = uo.GetColor('finditem')
unLoad(type, color, 3)
uo.findType('0x19B9')
wend

end sub


sub equipForMining()
UnEquip('Rhand')
UnEquip('Lhand')
EquipT('Rhand', 'pickaxe')
end sub


sub FileName()
return 'minePoints-' + UO.GetSerial('self') + '.txt'
end sub


sub markPoints(tileArr, xArr, yArr, zArr)
var count = 0
var done = 0

var tile, x, y, z
var hatchet = uo.ObjAtLayer('Rhand')

repeat
uo.UseObject(hatchet)
wait(1000)
while uo.targeting()
wait(500)
wend
tile = uo.LastTile(0)
x = uo.LastTile(1)
y = uo.LastTile(2)
z = uo.LastTile(3)

if (x == uo.GetX() and y == uo.GetY()) then
done = 1
else
tileArr[count] = tile
xArr[count] = x
yArr[count] = y
zArr[count] = z
count = count + 1
uo.print('Added point ' + STR(count) + ' (' + STR(x) +', ' + STR(y) + ')')
end if
until done

uo.print('Done. ' + STR(count) + ' points added')

return count
end sub


sub savePointsXY(xArr, yArr, name, cnt)
var fl = File(name)
fl.open()
fl.create()

safecall fl.writeln(STR(cnt))

for var f = 0 to cnt - 1
safecall fl.writeln(STR(xArr[f]) + ' ' + STR(yArr[f]))
next
uo.print(STR(cnt) + ' points saved')

fl.close()
end sub


sub loadPointsXY(xArr, yArr, name)
var fl = File(name)
fl.open()
var cnt = safecall fl.ReadNumber()
for var f = 0 to cnt - 1
xArr[f] = safecall fl.ReadNumber()
yArr[f] = safecall fl.ReadNumber()
next
fl.close()
uo.print(STR(cnt) + ' points loaded')

return cnt
end sub


#@autocode
#------------------------------------------------
# included file equip.scl
#------------------------------------------------

#@include checklag.scl

sub UnEquip(layer)
uo.unequip(layer)
CheckLag()
while uo.ObjAtLayer(layer) <> ''
uo.unequip(layer)
CheckLag()
wait(1000)
wend
end sub


sub EquipT(layer, type)
uo.equipt(layer, type)
CheckLag()
while uo.ObjAtLayer(layer) == ''
uo.equipt(layer, type)
CheckLag()
wait(1000)
wend
end sub

#------------------------------------------------
# included file unload.scl
#------------------------------------------------

#@include checklag.scl

#выкладныванме из бекпака итемов с типом type 
#и цветом color на землю в прилоченную кучку 
#находящуюся на расстояние не больше distance

sub unLoad(type, color, distance)
var inBackpack = ''
var onGround = ''
uo.Set('finddistance', distance)

uo.FindType(type, color, 'ground')
onGround = uo.GetSerial('finditem')

uo.FindType(type, color)
inBackpack = uo.GetSerial('finditem')

if (onGround <> '0x00000000' and inBackpack <> '0x00000000') then
var x, y, z
x = uo.GetX(onGround)
y = uo.GetY(onGround)
z = uo.GetZ(onGround)
uo.Click(inBackpack)
CheckLag()
uo.print(uo.GetName(inBackpack))
uo.MoveItem(inBackpack, 0, onGround, x, y, z)
wait(1500)
CheckLag()
end if

uo.Set('finddistance', 14)
end sub


#------------------------------------------------
# included file walker1.scl
#------------------------------------------------

#@include math.scl

var prec = 0

sub Walker(x,y)
var ld=0,ldc=0
var dx,dy
var mx,my
var ox,oy,mk,k
start:
mx=UO.GetX()
my=UO.GetY()
dx=abs(mx-x)
dy=abs(my-y)
if dy>dx then
dx=dy
end if
if dx<=prec then
return
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=abs(mx-x)
dy=abs(my-y)

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.Press(33)
goto start
endif
UO.Press(35)
goto start
end if

if mx<x then
if my>y then
UO.Press(39)
goto start
endif
if my==y then
UO.Press(34)
goto start
endif
UO.Press(40)
goto start
end if
if my<y then
UO.Press(37)
goto start
endif
if my==y then
UO.Press(36)
goto start
endif
UO.Press(38)
goto start
end sub

#------------------------------------------------
# included file checklag.scl
#------------------------------------------------

#проверка на лаг. одиночный клик на backpack и ожидание в журнале
#слов "backpack"
sub CheckLag()
if (uo.Waiting() or uo.targeting()) then
uo.canceltarget()
end if

uo.DeleteJournal()
uo.Click('backpack')
repeat
wait(200)
until uo.InJournal('backpack')
uo.DeleteJournal()
end sub
#------------------------------------------------
# included file math.scl
#------------------------------------------------

#математические функции
#Abs - модуль числа
#Sign - знак числа (для отрицательтных чисел -1, для положительных +1)

Sub Abs(x)
if (x<0) then
x = -x
end if

return x
end sub

sub Sign(n)
if (n < 0) then
n = -1
end if

if (n > 0) then
n = 1
end if

return n
end sub

Сделайте плиз так что бы он клал руду не рядом с домам в кучки а складывал её в контейнер перед домом. Заранее благодарен!
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Чуток подправить скрипт на мининг.

Post by kostjan »

Code: Select all

Sub loot()
   var Chest = ' ' ; айди сундука
   if uo.waiting() then 
      uo.canceltarget() 
   endif 
   var i
   VAR a,Exit 
   DIM Ore[5] 
   Ore[0]=0x19B9 ; 4 and more ore 
   Ore[1]=0x19B7 ; 1 ore 
   Ore[2]=0x19BA ; 2 ore 
   Ore[3]=0x19B8 ; 3 ore 
   UO.SetReceivingContainer(Chest) 
   wait(500) 
   For a=0 to 3 
      Exit=0 
      repeat 
         UO.FindType(Ore[a]) 
         if UO.GetQuantity('finditem')>0 then 
            UO.Grab('0','finditem') 
            wait(1500)
         Else 
            Exit=1 
         endif 
      until Exit==1
   Next 
   UO.UnSetReceivingContainer()
end sub 
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Чуток подправить скрипт на мининг.

Post by Mirage »

помельче:

Code: Select all

var bag = '0x4018A728' ; сумка или сундук куда скидывать
var ore1 = '0x19B7'
var ore2 = '0x19BA'
var ore3 = '0x19B8'
var ore4 = '0x19B9'

Sub putore()
put(ore1,bag)
put(ore2,bag)
put(ore3,bag)
put(ore4,bag)
end sub
Sub PUT(item, cont)
	while UO.Count( item ) > 0
		UO.FindType( item, -1, -1 )
		UO.MoveItem( 'finditem', 0, cont )
		wait(1500)
	wend
end sub
в текст скрипта вставить putore() где надо скинуть
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

А ты не мог бы пометить куда именно это вставить?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Чуток подправить скрипт на мининг.

Post by Mirage »

Jekaaa wrote:А ты не мог бы пометить куда именно это вставить?
вместо unloadOres() вставить putore()

вместо (или лучше после)

Code: Select all

sub unloadOres()
блаблабла
end sub
добавить наши варианты прописав соответствующий контейнер
должно сработать :mrgreen:
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

Попробовал настроить, запустил setup почему то таргет не появляется..
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

Нашел новый скрипт:

Code: Select all

###################################### 
#  Antares /Revenant/ uoa.ru / ver 4
###################################### 
# в банке должны быть руны в пещеры, помеченные в инжекте как обьекты 
# (Закладка Objects !!!!  не путать c  Object type) 
# Mine , Mine1, Mine2, Mine3, Mine4, а в бекпаке обьект Bank - руна к банку 
# промаркировать каждую пещеру надо зарание, запустив процедуру MultyMark() 
# Для марка, обходя последовательно все точки копания набирать "set" 
# (точка копания - центр квадрата 5х5 тайлов, который выкапывается подчистую) 
# При окончании марка в текущей пещере набрать "stop" перереколиться в следующюю пещеру и продолжить 
# После марка 5 пещер появятся файлы C:\mine4.dat, C:\mine3.dat, C:\mine2.dat, C:\mine1.dat, C:\mine.dat 
# После этого можно начинать копку запустив процедуру main() стоя у банка. 
# И если в банке будут лежать жаренные фишстеки, чар не применет возможностью ими полакомиться. 
# при вероятности дисконнектов перед копкой запускать процедуру Reconnect 
#
#
# скрипт с авторесом (при стаке в Брит) Верхнее меню помощи должно быть открыто.
# процедуру minesh(PX,PY) поставить вместо mine(PX,PY) для копки лопатой и разбивания добытых камней на стоунблоки, в паке должна быть кирка
# процедура pod() для экстренного подьема выпавшей из банка руды. Контейнер куда собирать указать в самой процедуре.

################################
var Cont = '0x40698F03' ;ID контейнера в который будет складываться накопанное.
var RC = '0x402D4AD9'   ;ID контейнера с регами
var Dagg = '0x404C9683' ;ID контейнера с дагерами и бинтами (на случай если копаются элемы)
var food= '0x097B'      ;еда(type) по умолчанию жаренные фишстейки
var q, w, p
var f=file("D:\Ultima Online 2D\Injection\Scripts (Antares)\Mining\mine2.dat") 
;var f , mine
var mine

###############################        процедура запуска для  5 пещер
# количество пещер может быть уменьшено или увеличено 
# удалением или внесением троестрочий вида: 
#      f=file("C:\mine1.dat") 
#      mine='Mine1' 
#      one() 

sub main()

uo.Print('Укажите первую руну') 

uo.Exec('addobject mine') 

while uo.Targeting() 

wait(100) 

wend 


uo.Print('Укажите руну к банку') 

uo.Exec('addobject bank') 

while uo.Targeting() 

wait(100) 

wend 
repeat


f=file("D:\Ultima Online 2D\Injection\Scripts (Antares)\Mining\mine2.dat") 
mine='Mine2'
one()



until UO.Dead()
end sub
#########
sub tert()
  uo.print(str(uo.str*4))
end sub
################################       
sub one()
dim PX[50], PY[50]
var Minepoints=0
var i

uo.Print('Loading from file...') 
f.open() 
Minepoints=safe call f.ReadNumber() 
for i=1 to Minepoints 
  PX[i]=safe call f.ReadNumber() 
  PY[i]=safe call f.ReadNumber() 
next 
f.close() 
uo.Print('Loaded')
uo.say("Bank")
wait(100)
med()
takereg()
Recall('mine')
for p=1 to Minepoints 
  uo.Print('X: '+str(PX[p])+' Y: '+str(PY[p]))
  WalkN(PX[p],PY[p],'')
  q=PX[p]
  w=PY[p]
  uo.Print('Mining...')
  UO.Warmode("0")
  mine(PX,PY)
;minesh(PX,PY)
next
recall('Bank')  
Razg()
end sub
##########################
sub vozvrat(PX,PY)
var i
uo.Print('Move...')
for i=1 to p
  uo.Print('X: '+str(PX[p])+' Y: '+str(PY[p]))
  WalkN(PX[i],PY[i],'')
next
end sub
########################
sub Mark()
dim PX[50], PY[50]
var Minepoints=0
var i
uo.Print('Start marking...') 
for i=1 to 50
UO.DeleteJournal()
uo.Print('Set point '+ str(i))
repeat
   wait(500)
   if UO.InJournal('stop')then
      SaveToFile(i-1,PX,PY)
      return
   endif
until UO.InJournal('set')
  PX[i] = UO.GetX("self") 
  PY[i] = UO.GetY("self") 
  uo.Print('Point '+str(i)+' X: '+str(PX[i])+' Y: '+str(PY[i])+'taken')
next
end sub
########################
sub MultyMark()
uo.Print('Cove............ ') 
var f=file("D:\Ultima Online 2D\Injection\Scripts (Antares)\Mining\mine2.dat") 
Mark()
uo.Print('Marking finished. Ready for mine') 
end sub
#############################
sub SaveToFile(mp,PX,PY) 
var s=0,k=0 
f.open() 
f.create() 
uo.Print('points = '+ str(mp))
 s=safe call f.writeln(mp) 
for k=1 to mp 
 s=safe call f.writeln(str(PX[k])+' '+str(PY[k])) 
next 
f.close() 
end sub 

##################################
sub mine(PX,PY) 
 var x,y,z
 VAR LastTimer 
 UO.Set('finddistance','2') 
 z=UO.GetZ("self") 
    for x=-2 to 2 
       for y=-2 to 2 
        ;Hid()       
          UO.Print(str(x)+" "+str(y))
          Repeat 
             if UO.InJournal('TORMOZ') then
               pause()
             endif
             if uo.injournal('boulder')or UO.count('0x134F') then
                boulder()
             endif
;               if uo.dead() then
;                  wait(180000)
                if uo.dead() then
                   ressurect(PX,PY)
                endif
;               endif
             UO.DeleteJournal()
             UO.Warmode("0")
             UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+Y),str(z)) 
             UO.UseType('0x0F39')
             LastTimer=UO.Timer() 
             Repeat
                wait(500)
                lookout()
             Until UO.InJournal("You put") or UO.InJournal("can't see") or UO.InJournal("heavy") or UO.InJournal("location") or UO.InJournal("no ore") or UO.InJournal("but fail") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("must wait") or UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("where it") OR UO.Timer()>LastTimer+200
           ;lookout()
          Until UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("no ore here") or UO.InJournal("location") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("where it") or UO.InJournal("must wait")
             if UO.Weight>(uo.str*4) then
                unload(PX,PY)
             endif
        ;wait(4000)  ; раскоментировать при копке лопатой
       next 
    next
end sub
#########################################
sub lookout()
  if UO.InJournal("elemental") then
     killelem()
  endif
end sub
#######################################
sub check()
 var noto, ser, jor
     for jor = 0 to 9
         ser = uo.journalserial(jor)
         UO.Print(ser)
         uo.Print(str(uo.IsNPC("ser")))
         if not UO.IsNPC('ser') and not uo.injournal("elemental") and ser <> '0x00000000' then
            if uo.waiting() then
               uo.canceltarget()
            endif
            UO.DeleteJournal()
            UO.Print('PPPPPP')
          ;UO.Print(ser)
          ;recall('Bank')  
          ;Razg()
          ;wait(180000)
            return
         endif
         
      next
end sub
#######################################
sub Pause()
UO.DeleteJournal() 
REPEAT 
WAIT(3000) 
UO.Print("Paused") 
UNTIL UO.InJournal('GO') 
UO.Print("Continue") 
endif 
end sub 
############################################
sub heal()
UO.SetArm('arm')
UO.Exec('bandageself')
wait(500)
UO.Arm('arm')
wait(2000)
end sub
######################################
sub Razg()
VAR a
VAR LastTimer 
DIM Ore[12] 
Ore[1]=0x19B9; 4 and more ore 
Ore[2]=0x19B7; 1 ore 
Ore[3]=0x19BA; 2 ore 
Ore[4]=0x19B8; 3 ore 
Ore[5]=0x0EED; деньги
Ore[6]=0x09AA; пандоры
Ore[7]=0x19B9; руда
Ore[8]=0x0F26; диаманты
Ore[9]=0x0F8A; pig iron
Ore[10]=0x1422; plaster
Ore[11]=0x1BF2; marble
Ore[12]=0x14EB; map


uo.say("Bank")
wait(100)
For a=1 to 12 
  While UO.Count(ore[a])>0 
        UO.FindType(ore[a],-1,-1)
        UO.MoveItem('finditem',0,Cont) 
        wait(200)
        uo.print(ore[a])
  Wend 
next
eat()
  While UO.Count('0x0E20')>0 
        UO.FindType('0x0E20',-1,-1)
        UO.MoveItem('finditem',0,Dagg) 
        wait(200)
  Wend 
takereg()
if UO.Mana < 30 then
 while UO.Mana<UO.Int 
       LastTimer=UO.Timer() 
       UO.UseSkill('Meditation') 
       repeat 
          wait(100) 
       until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200 
       UO.DeleteJournal() 
       wait(200) 
 wend 
endif   
end sub


#######################################
sub eat()
VAR LastTimer 
  UO.DeleteJournal()
  repeat
  LastTimer=UO.Timer() 
  UO.findtype(food,-1,'0x4001ABF5')
    if UO.findcount('finditem') then
       uo.print('eat')
       UO.Useobject('finditem') 
       wait(500)
    else
       return
    end if
  Until UO.InJournal("stuffed!") OR UO.InJournal("think") or UO.InJournal("found") OR UO.Timer()>LastTimer+200 
end sub
################################
sub unload(PX,PY)
 uo.Print('Loaded')
 uo.say("Go")
 wait(100)
 Recall('bank')
 Razg()
 wait(100)
 takereg()
 wait(100)
 Recall('mine')
 uo.DeleteJournal()    
 vozvrat(PX,PY)
end sub
########################################
sub ressurect1(PX,PY)
 CheckLag()
 UO.LClick(17,13)
 wait(1000)
 CheckLag()
 UO.LClick(17,61)
 wait(1000)
 CheckLag()
 uo.useobject('0x40FD37A9')
 wait(100)
 uo.useobject('backpack')
 wait(1000)
 uo.say('bank')
 wait(500)
 takereg()
 wait(1000)
 eat()
 wait(180000)
 Recall('mine')
 uo.DeleteJournal()    
 vozvrat(PX,PY)   
end sub
#############################
sub ressurect(PX,PY)
 UO.Exec('warmode 0')
 CheckLag()
 UO.LClick(17,13)
 wait(1000)
 CheckLag()
 UO.LClick(17,61)
 wait(1000)
 CheckLag()
 WalkN(1483,1636,'')
 WalkN(1480,1639,'')
 WalkN(1480,1647,'')
 WalkN(1468,1649,'')
 WalkN(1460,1657,'')
 WalkN(1460,1684,'')
 WalkN(1463,1690,'')
 WalkN(1463,1697,'')
 WalkN(1442,1697,'')
 WalkN(1430,1697,'')
 WalkN(1430,1691,'')
 WalkN(1428,1689,'')
 WalkN(1428,1684,'')
 WalkN(1428,1680,'')
 WalkN(1426,1678,'')
 uo.useobject('0x40021D98')
 wait(100)
 uo.useobject('backpack')
 wait(1000)
 uo.say('bank')
 wait(500)
 takereg()
 wait(1000)
 eat()
 Recall('mine')
 uo.DeleteJournal()    
 vozvrat(PX,PY)   
end sub
##############################
sub med()
VAR LastTimer 
UO.DeleteJournal() 
while UO.Mana<UO.Int 
LastTimer=UO.Timer() 
UO.UseSkill('Meditation') 
repeat 
  wait(100) 
until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200 
UO.DeleteJournal() 
wait(200) 
wend 
end sub
#########################################
sub takereg()
DIM reg[3]
var i,n
reg[1]='0x0F86'; MR
reg[2]='0x0F7A'; BP
reg[3]='0x0F7B'; BM

UO.UseObject(RC)
for i=1 to 3
  while UO.Count(reg[i])<5
    UO.FindType(reg[i],-1,RC)
    n=UO.Count(reg[i])
    UO.Grab(str(5-n),'finditem')
    wait(200)
    CheckLag()
  wend  
next
;UO.UseObject(Dagg)
; if not UO.count('0x0F51') then
;      UO.FindType('0x0F51',-1,Dagg)
;      IF uo.findcount() then
;         UO.Grab(str(1),'finditem')
;         wait(200)
;         CheckLag() 
;      endif   
; endif
;  if not UO.count('0x0E21') then
;      UO.FindType('0x0E21',-1,Dagg)
;            n=UO.Count(reg[i])
;      IF uo.findcount() then
;         UO.Grab(str(12-n),'finditem')
;         wait(200)
;         CheckLag() 
;      endif   
; endif
end sub
#########################################
sub CheckLag() 
UO.DeleteJournal() 
UO.Click('backpack') 
repeat 
wait(500) 
until UO.InJournal('Backpack') 
end sub
######################################
sub Reconnect() 
var ReconnectTime,rFlag 
ReconnectTime='0' 
rFlag=1 
repeat 
while (uo.ObjAtLayer('Bpack')=='') 
if rFlag then 
ReconnectTime=MakeTime() 
rFlag=0 
end if 
wait(20000) 
uo.Say('') 
wait(3000) 
uo.Say('') 
wait(3000) 
uo.Say('') 
wait(3000) 
uo.LDblClick(357,164) 
uo.LClick(616,459) 
wait(3000) 
wend 
wait(3000) 
if (rFlag==0) and (ReconnectTime<>'0') then 
uo.TextOpen() 
uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
rFlag=1 
ReconnectTime='0' 
end if 
until false 
end sub 


sub MakeTime() 
 VAR D, T, Ret, i 
 Ret = STR(UO.Time()) 
 T = "" 
 For i = 0 To Len(Ret) 
    T = Ret[Len(Ret)-i] + T 
    If (I == 2) OR (I == 4) Then 
       T = ":" + T 
    EndIf 
 Next 
 Ret = STR(UO.Date()) 
 D = "" 
 For i = 0 To Len(Ret) 
    D = Ret[Len(Ret)-i] + D 
    If (I == 2) OR (I == 4) Then 
       D = "." + D 
    EndIf 
 Next    
 Ret = T + " @ " + D 
 RETURN Ret 
end sub 
####################################
sub Hid() 
while not uo.Hidden() 
uo.exec('warmode 0')
uo.Print('Hiding...') 
uo.UseSkill('Hiding') 
wait(4000) 
wend 
wait(100) 
end sub 
#################################
sub Recall(dest) 
var b 
uo.print('Recoll')
for b=1 to 1 
  uo.deletejournal() 
  uo.cast('Recall',dest) 
  if WaitForRecall()==1 then 
    return 1 
  end if 
next
return 0 
end sub 
###################################
sub WaitForRecall() 
var Text1=uo.getname()+": The spell fizzles." 
var mess='',lastX=uo.getX(),lastY=uo.getY() 
for var v=0 to 200 
  mess=uo.journal(0) 
  if uo.Journal(0)==Text1 then 
    return 0 
  end if 
  if uo.getX()<>lastX OR uo.getY()<>LastY then 
    return 1 
  end if 
  wait(50) 
next 
return 0 
end sub 
################################   
sub killelem() 
VAR LastTimer, Elem ,i
LastTimer=UO.Timer()
 UO.DeleteJournal() 
UO.FindType('0x000E',-1,'ground') 
Elem=UO.GetSerial('finditem')
UO.Exec('warmode 1')
UO.Attack(Elem)
;WalkN(0,0,Elem)
UO.Say('Dye, mother fucker!')
repeat 
     wait(2000)
 until UO.InJournal('Body') OR LastTimer+300<UO.Timer() or uo.dead(Elem)
UO.Exec('warmode 0') 
wait(100) 
LastTimer=UO.Timer() 
if UO.Life<50 and UO.Count('0x0E21') then
 repeat 
   UO.BandageSelf() 
   wait(4000) 
 until UO.Life>170 OR LastTimer+300<UO.Timer() 
endif
loot()
WalkN(q,w,'')
end sub 
##################################
sub loot() 
DIM R[5] 
var a 
R[1] = 0x0EED # деньги
R[2] = 0x09AA # пандоры
R[3] = 0x19B9 # руда
R[4] = 0x0F8A # pig iron
R[5] = 0x19BA # руда, 2 штучки

UO.UseObject('lastcorpse')
wait(100)
uo.exec("warmode '0'")
uo.waittargetobject('lastcorpse') 
uo.usetype(0x0F51) 
wait(500) 

for a=1 to 5 
uo.findtype(R[a],"-1","lastcorpse")
if UO.FindCount()>0 and Uo.GetDistance("lastcorpse")<=2 then 
UO.Grab("0","finditem") 
wait(1500) 
end if 
wait(10) 
next 
end sub
##############################
#============================================================== 
#  WalkN(X,Y,Serial) - char is walking by dX and dY step 
#                sub using Home, End, PgUp, PgDown keys 
#                d'not rebind this key from default action! 
#       serial - Serial of target or "" - string 
#     walkwait - delay after keypress 
#     Example: 
#     WalkN(2080,2113,'') - go to coordinates 
#     WalkN(0,0,'0x12345678') - go to target position 
#-------------------------------------------------------------- 
sub WalkN(x,y,Target) 
 VAR i,StepSucess 
 VAR dx,dy,Exit=0 
  
 While Exit<>1    
    If Target<>"" Then 
       dx=UO.GetX(Target)-UO.GetX() 
       dy=UO.GetY(Target)-UO.GetY() 
;         UO.Print("Target locked!") 
       If UO.GetDistance(Target)<2 Then 
          Exit=1 
       Endif 
    Else 
       dx=x-UO.GetX() 
       dy=y-UO.GetY() 
       If dx==0 AND dy==0 Then 
          Exit=1 
       Endif 

    Endif 
  
    If dx<>0 AND dy<>0 Then 
       If dx>0 AND dy>0 Then 
          StepSucess=Go(3,40,300);SE - DownArrow 
          If StepSucess==-1 Then 
             StepSucess=Go(7,38,300);WN - UpArrow 
             StepSucess=Go(1,39,300);NE - RightArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(5,37,300);SW - LeftArrow 
             Endif 
          Endif 
       Endif 

       If dx>0 AND dy<0 Then 
          StepSucess=Go(1,39,300);NE - RightArrow 
          If StepSucess==-1 Then 
             StepSucess=Go(5,37,300);SW - LeftArrow 
             StepSucess=Go(3,40,300);SE - DownArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(7,38,300);WN - UpArrow 
             Endif 
          Endif 
       Endif 

       If dx<0 AND dy>0 Then 
          StepSucess=Go(5,37,300);SW - LeftArrow 
          If StepSucess==-1 Then 
             StepSucess=Go(1,39,300);NE - RightArrow 
             StepSucess=Go(7,38,300);WN - UpArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(3,40,300);SE - DownArrow 
             Endif 
          Endif 
       Endif 

       If dx<0 AND dy<0 Then 
          StepSucess=Go(7,38,300);WN - UpArrow 
          If StepSucess==-1 Then 
             StepSucess=Go(3,40,300);SE - DownArrow 
             StepSucess=Go(5,37,300);SW - LeftArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(1,39,300);NE - RightArrow 
             Endif 
          Endif 
       Endif 

    Endif 
  
    If dx<>0 AND dy==0 Then 
       If dx>0 Then 
          StepSucess=Go(2,34,300);E - PgDown 
          If StepSucess==-1 Then 
             StepSucess=Go(3,40,300);SE - DownArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(1,39,300);NE - RightArrow 
             Endif 
             StepSucess=Go(2,34,300);E - PgDown 
          Endif 
       Endif 
        
       If dx<0 Then 
          StepSucess=Go(6,36,300);W - Home 
          If StepSucess==-1 Then 
             StepSucess=Go(7,38,300);WN - UpArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(5,37,300);SW - LeftArrow 
             Endif 
             StepSucess=Go(6,36,300);W - Home 
          Endif 
       Endif 
    Endif 


    If dx==0 AND dy<>0 Then 
       If dy>0 Then 
          StepSucess=Go(4,35,300);S - End 
          If StepSucess==-1 Then 
             StepSucess=Go(3,40,300);SE - DownArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(5,37,300);SW - LeftArrow 
             Endif 
             StepSucess=Go(4,35,300);S - End 
          Endif 
       Endif 
        
       If dy<0 Then 
          StepSucess=Go(0,33,300);N - PgUp 
          If StepSucess==-1 Then 
             StepSucess=Go(1,39,300);NE - RightArrow 
             If StepSucess==-1 Then 
                StepSucess=Go(7,38,300);WN - UpArrow 
             Endif 
             StepSucess=Go(0,33,300);N - PgUp 
          Endif 
       Endif 
    Endif 
 Wend 
end sub 


sub Go(dir,key,walkwait) 
 VAR x,y, OldDir 

 x=UO.GetX() 
 y=UO.GetY() 
 OldDir=UO.GetDir() 
;hid()
 If UO.GetDir()<>dir Then 
    UO.Press(key) 
    wait(walkwait) 
    If UO.GetDir()<>dir Then 
       CheckLag() 
    Endif 
 Endif 

 UO.Press(key) 
 wait(walkwait) 

 If x==UO.GetX() AND y==UO.GetY() Then 
    CheckLag() 
 Endif 

 If x==UO.GetX() AND y==UO.GetY() AND OldDir<>UO.GetDir() Then 
    UO.Press(key) 
    wait(walkwait) 
 Endif 

 If x==UO.GetX() AND y==UO.GetY() Then 
    CheckLag() 
 Endif 
  
 If x==UO.GetX() AND y==UO.GetY() Then 
    UO.Print("Zasada!") 
    return -1 
 Else 
    return 1 
 Endif 
end sub 
###########################################
sub pod()
UO.Say('Bank')
repeat
  uo.findtype('0x19B9',-1,'ground')
  if UO.FindCount() and Uo.GetDistance('finditem')<3 then 
    uo.moveitem('finditem','1000','0x40FA6B85')
    wait(100)
  end if
  wait(1000)
    uo.print("1")
 until not UO.FindCount()
end sub
################################################
sub boulder()
if uo.count('0x0E85') then
 while uo.count('0x134F')
    uo.waittargettype('0x134F')
    uo.usetype('0x0E85') 
    wait(100)
 wend
 uo.findtype('0x134F',-1,'ground')
    if uo.FindCount()then
      uo.waittargetobject('finditem')
      uo.usetype('0x0E85')
    endif
    wait(2000)
endif
end sub
################################################
sub minesh(PX,PY) 
 var x, y,z 
 VAR LastTimer 
 uo.LastTile()

 UO.Set('finddistance','2') 
 z=UO.GetZ("self") 
    for x=-2 to 2 
       for y=-2 to 2 
        ;Hid()       
          UO.Print(str(x)+" "+str(y))
          Repeat 
             if UO.InJournal('TORMOZ') then
               pause()
             endif
             if uo.injournal('boulder')or UO.count('0x134F') then
                boulder()
                UO.Print('boulder')
             endif
             If UO.targeting() then
                uo.canceltarget()
             endif
             UO.DeleteJournal()
             UO.Warmode("0")
             UO.WaitTargetTile("1339",STR(UO.GetX()+x),STR(UO.GetY()+Y),str(z))
             UO.UseType('0x0F39')
             LastTimer=UO.Timer() 
             Repeat 
                wait(500) 
             Until UO.InJournal("You put") or UO.InJournal("can't see") or uo.injournal('boulder') or UO.InJournal("heavy") or UO.InJournal("location") or UO.InJournal("no ore") or UO.InJournal("but fail") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("must wait") or UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("where it") OR UO.Timer()>LastTimer+200
             lookout()

          Until UO.InJournal("nothing") or UO.InJournal("elsewhere") or UO.InJournal("no ore here") or UO.InJournal("location") or UO.InJournal("far away") or UO.InJournal("in rock") or UO.InJournal("where it")
           
             if UO.Weight>(uo.str*4 - 20) then 
                unload(PX,PY)
             endif
        ;wait(2000)  ;на случай флуда в окне
       next 
    next
end sub
####################
Если проще его переделать то лучше его, что бы он не по руне копал а в шахте координаты которые укажу я и что бы не в банк летал а к дому ходил и клал в сундук руду.
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

А твой скрипт автоматически ищет шахту и местонахождение сундука? если нет, то ткни носом где прописывать координаты шахты и координаты сундука =)
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

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

Code: Select all

sub main() 
########################################## 
# Mining v1.02 # 
# By Scripts Writer # 
# icq : 424131028 # 
# Thx to Savage's WalkN() # 
# Thx to Mihail's date & time # 
########################################## 
# Antares. http://www.uoa.ru # 
########################################## 

var f=file('C:\mining.txt') #File where tile coordinates 
var FromFile=1 #1-From file, 0-From client 
var Hiding=1 #1-To hide before moving, 0-Don't hide 
var EatFood=1 #1-To eat food, 0-Don't eat 
var RuneToHome='0x40F6BCC5' #ID of rune to home 
var RuneToMine='0x401E02F1' #ID of rune to cave 
var Sunduk='0x404425AB' #ID of container where to put ores 
var PickAxe=0x0E85 #Type of Pickaxe 
var food=0x097B #Type of food to eat 
var MaxWeight=600 #MaxWeight when to go unload 

var msg1='Вы положили' #Msg 'You put' 
var msg2='Вам не удалось' #Msg 'You fail to mine' 
var msg3='Тут ничего нету' #Msg 'There is nothing ore' 

############################################################# 
#В бекпеке несколько кирок, руны в дом и шахту, реагенты. 
#Устанавливаем флаг FromFile=0 и запускаем скрипт.Прицелами 
#указываем на тайлы в шахте, собирая тем самым координаты 
#по которым будем ходить и обкапывать в дальнейшем. Как только 
#собрали, копируем информацию с тайлами и вставляем в ранее 
#созданный файл mining.txt в каталое C:\ . На последней пустой 
#строке помещаем 0 в начало строки-для определения конца файла. 
#Устанавливаем флаг FromFile=1, указываем все значения #переменных 
#и запускаем главную функцию main. 
############################################################# 
#In backpack there are some pickaxes, 
#runes to the house and mine, reagents. 
#We establish flag FromFile=0 and start a script. 
#By targets click on tiles in cave, 
#collecting that coordinates on which we shall go and 
#mine in the further. As soon as have collected, 
#we copy the information with tiles and it is 
#inserted into earlier created file "mining.txt" in 
#directory C:\. On last empty line it is placed 0 in the 
#beginning of a line-for of definition of the end of a file. 
#We establish flag FromFile=1, specify all 
#values of variables and start main function. 
############################################################# 
# 
# v1.01 Подправил медитацию. Добавил ведение лога в отдельном окне. 
# v1.02 Изменение скрипта на вывод времени в лог. 


DIM ore[4] 

ore[0]='0x19B7' 
ore[1]='0x19BA' 
ore[2]='0x19B8' 
ore[3]='0x19B9' 

DIM XTile[550],YTile[550],ZTile[550] 
var TileType 
var mx,my 
var i,k,l,mana 
k=0 

if FromFile==0 then 
uo.DeleteJournal() 
repeat 
uo.AddObject('Tile') 
wait(250) 
while uo.Targeting() 
wait(100) 
wend 
uo.WaitTargetTile('lasttile') 
uo.Say(',infotile') 
wait(500) 
until uo.InJournal('stop') 
return 
else 
f.Open() 
repeat 
TileType=safe call f.ReadNumber() 
XTile[k]=safe call f.ReadNumber() 
YTile[k]=safe call f.ReadNumber() 
ZTile[k]=safe call f.ReadNumber() 
if TileType<>0 then 
uo.Print(STR(XTile[k])+' '+STR(YTile[k])+' '+STR(ZTile[k])) 
end if 
k=k+1 
until TileType==0 
uo.Print('There are '+STR(k-1)+' tiles in a file.') 
f.Close() 
end if 
while not uo.Dead() 
for i=0 to k-2 
if Hiding==0 then 
while not uo.Hidden() 
uo.WarMode(0) 
uo.Print('Try to hide yourself...') 
uo.UseSkill('Hiding') 
wait(3500) 
wend 
end if 
if i==0 && uo.GetX('self')==358 && uo.GetY('self')==1443 then 
WalkN(364,1438,"") 
WalkN(382,1439,"") 
end if 
WalkN(XTile[i],YTile[i],"") 
uo.Print('Start to mine '+STR(XTile[i])+' '+STR(YTile[i])+' '+STR(ZTile[i])+' tile.') 
repeat 
uo.DeleteJournal() 
l=0 
uo.WaitTargetTile('-1',XTile[i],YTile[i],ZTile[i]) 
uo.UseType(PickAxe) 
repeat 
wait(100) 
l=l+1 
until uo.InJournal(msg1) || uo.InJournal(msg2) || uo.InJournal(msg3) || l>100 
until uo.InJournal(msg3) || l>100 
if uo.Weight>MaxWeight then 
repeat 
mx=uo.GetX('self') 
my=uo.GetY('self') 
mana=uo.mana 
if uo.mana < 30 then 
uo.Print('Start meditation ... ') 
uo.WarMode(0) 
repeat 
uo.UseSkill('Meditation') 
l=0 
uo.DeleteJournal() 
if uo.WarMode==1 then 
uo.WarMode(0) 
end if 
wait(250) 
repeat 
wait(100) 
l=l+1 
until uo.InJournal('Вы потеряли') || l>100 || uo.mana>=30 
until uo.mana >= 30 
end if 
l=0 
uo.Print('Start to recall home ...') 
uo.WaitTargetObject(RuneToHome) 
uo.Cast('Recall') 
repeat 
wait(100) 
l=l+1 
until mx<>uo.GetX('self') || my<>uo.GetY('self') || uo.mana<mana || l>100 
until mx<>uo.GetX('self') || my<>uo.GetY('self') 
uo.Print('We are at home.Start to unload...') 
WalkN(uo.GetX(Sunduk),uo.GetY(Sunduk),Sunduk) 
uo.UseObject(Sunduk) 
wait(500) 
uo.TextOpen() 
uo.TextPrint(date(uo.date(),'.')) 
uo.TextPrint(time(uo.time(),':')) 
uo.TextPrint('------------------------') 
for k = 0 to 3 
uo.FindType(ore[k],'-1','backpack') 
while uo.FindCount() 
uo.Click('finditem') 
wait(500) 
uo.TextPrint(uo.GetName('finditem')) 
uo.moveitem('finditem','all',Sunduk) 
wait(1000) 
uo.FindType(ore[k],'-1','backpack') 
wend 
next 
uo.TextPrint('------------------------') 
uo.IgnoreReset() 
uo.Print('Upload was complete. Would you like to eat something?') 
if EatFood==1 then 
uo.DeleteJournal() 
uo.FindType(food,'-1',Sunduk) 
if uo.FindCount() then 
uo.moveitem('finditem','30','backpack') 
wait(1000) 
repeat 
wait(1000) 
uo.UseType(food) 
until uo.InJournal('You are simply') 
end if 
uo.FindType(food,'-1','backpack') 
if uo.FindCount() then 
uo.moveitem('finditem','all',Sunduk) 
wait(1000) 
end if 
end if 
repeat 
mx=uo.GetX('self') 
my=uo.GetY('self') 
mana=uo.mana 
if uo.mana < 30 then 
uo.Print('Start meditation ... ') 
uo.WarMode(0) 
repeat 
uo.UseSkill('Meditation') 
l=0 
uo.DeleteJournal() 
if uo.WarMode==1 then 
uo.WarMode(0) 
end if 
wait(250) 
repeat 
wait(100) 
l=l+1 
until uo.InJournal('Вы потеряли') || l>100 || uo.mana>=30 
until uo.mana >= 30 
end if 
l=0 
uo.Print('Start to recall mine ...') 
uo.WaitTargetObject(RuneToMine) 
uo.Cast('Recall') 
repeat 
wait(100) 
l=l+1 
until mx<>uo.GetX('self') || my<>uo.GetY('self') || uo.mana<mana || l>100 
until mx<>uo.GetX('self') || my<>uo.GetY('self') 
end if 
next 
wait(600000) 
wend 
end sub 

sub WalkN(x,y,Target) 
VAR i,StepSucess 
VAR dx,dy,Exit=0 
While Exit<>1 
If Target<>"" Then 
dx=UO.GetX(Target)-UO.GetX() 
dy=UO.GetY(Target)-UO.GetY() 
If UO.GetDistance(Target)<3 Then 
Exit=1 
Endif 
Else 
dx=x-UO.GetX() 
dy=y-UO.GetY() 
If dx==0 AND dy==0 Then 
Exit=1 
Endif 
Endif 
If dx<>0 AND dy<>0 Then 
If dx>0 AND dy>0 Then 
StepSucess=Go(3,40,300) ;SE - DownArrow 
If StepSucess==-1 Then 
StepSucess=Go(7,38,300) ;WN - UpArrow 
StepSucess=Go(1,39,300) ;NE - RightArrow 
If StepSucess==-1 Then 
StepSucess=Go(5,37,300) ;SW - LeftArrow 
Endif 
Endif 
Endif 
If dx>0 AND dy<0 Then 
StepSucess=Go(1,39,300) ;NE - RightArrow 
If StepSucess==-1 Then 
StepSucess=Go(5,37,300) ;SW - LeftArrow 
StepSucess=Go(3,40,300) ;SE - DownArrow 
If StepSucess==-1 Then 
StepSucess=Go(7,38,300) ;WN - UpArrow 
Endif 
Endif 
Endif 
If dx<0 AND dy>0 Then 
StepSucess=Go(5,37,300) ;SW - LeftArrow 
If StepSucess==-1 Then 
StepSucess=Go(1,39,300) ;NE - RightArrow 
StepSucess=Go(7,38,300) ;WN - UpArrow 
If StepSucess==-1 Then 
StepSucess=Go(3,40,300) ;SE - DownArrow 
Endif 
Endif 
Endif 
If dx<0 AND dy<0 Then 
StepSucess=Go(7,38,300) ;WN - UpArrow 
If StepSucess==-1 Then 
StepSucess=Go(3,40,300) ;SE - DownArrow 
StepSucess=Go(5,37,300) ;SW - LeftArrow 
If StepSucess==-1 Then 
StepSucess=Go(1,39,300) ;NE - RightArrow 
Endif 
Endif 
Endif 
Endif 
If dx<>0 AND dy==0 Then 
If dx>0 Then 
StepSucess=Go(2,34,300) ;E - PgDown 
If StepSucess==-1 Then 
StepSucess=Go(3,40,300) ;SE - DownArrow 
If StepSucess==-1 Then 
StepSucess=Go(1,39,300) ;NE - RightArrow 
Endif 
StepSucess=Go(2,34,300) ;E - PgDown 
Endif 
Endif 
If dx<0 Then 
StepSucess=Go(6,36,300) ;W - Home 
If StepSucess==-1 Then 
StepSucess=Go(7,38,300) ;WN - UpArrow 
If StepSucess==-1 Then 
StepSucess=Go(5,37,300) ;SW - LeftArrow 
Endif 
StepSucess=Go(6,36,300) ;W - Home 
Endif 
Endif 
Endif 
If dx==0 AND dy<>0 Then 
If dy>0 Then 
StepSucess=Go(4,35,300) ;S - End 
If StepSucess==-1 Then 
StepSucess=Go(3,40,300) ;SE - DownArrow 
If StepSucess==-1 Then 
StepSucess=Go(5,37,300) ;SW - LeftArrow 
Endif 
StepSucess=Go(4,35,300) ;S - End 
Endif 
Endif 
If dy<0 Then 
StepSucess=Go(0,33,300) ;N - PgUp 
If StepSucess==-1 Then 
StepSucess=Go(1,39,300) ;NE - RightArrow 
If StepSucess==-1 Then 
StepSucess=Go(7,38,300) ;WN - UpArrow 
Endif 
StepSucess=Go(0,33,300) ;N - PgUp 
Endif 
Endif 
Endif 
Wend 
end sub 

sub Go(dir,key,walkwait) 
VAR x,y, OldDir 
x=UO.GetX() 
y=UO.GetY() 
OldDir=UO.GetDir() 
If UO.GetDir()<>dir Then 
UO.Press(key) 
wait(walkwait) 
If UO.GetDir()<>dir Then 
CheckLag() 
Endif 
Endif 
UO.Press(key) 
wait(walkwait) 
If x==UO.GetX() AND y==UO.GetY() Then 
CheckLag() 
Endif 
If x==UO.GetX() AND y==UO.GetY() AND OldDir<>UO.GetDir() Then 
UO.Press(key) 
wait(walkwait) 
Endif 
If x==UO.GetX() AND y==UO.GetY() Then 
CheckLag() 
Endif 
If x==UO.GetX() AND y==UO.GetY() Then 
UO.Print("Zasada!") 
return -1 
Else 
return 1 
Endif 
end sub 
######################################### 
sub CheckLag() 
UO.DeleteJournal() 
UO.Click('backpack') 
repeat 
wait(500) 
until UO.InJournal('Backpack') 
end sub 

sub date(jor,n) 
var ser=str(jor), t='' 
if len(ser)==5 then 
ser='0'+ser 
end if 
t=right(ser,2)+n+mid(ser,2,2)+n+left(ser,2) 
return t 
end sub 

sub time(jor,n) 
var ser=str(jor),t='' 
if len(ser)==5 then 
ser='0'+ser 
end if 
t=left(ser,2)+n+mid(ser,2,2)+n+right(ser,2) 
return t 
end sub
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

Ребят помогите пожалуйста переделать последний скрипт, уж очень покопать хочется... =)
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Чуток подправить скрипт на мининг.

Post by Beyonder »

Даже не смотрел скрипт но на 99% уверен что тебе нужно поменять это:

Code: Select all

var msg1='Вы положили' #Msg 'You put'
var msg2='Вам не удалось' #Msg 'You fail to mine'
var msg3='Тут ничего нету' #Msg 'There is nothing ore' 
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

Спасибо! пока все работает просто замечательно.
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

Скрипт обалденный, все работает ходит копает, только вот задержка между тайлами большая, можно как нибудь сделать что бы когда он все выкопал он побыстрее на следующий таил переходил? =)
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: Чуток подправить скрипт на мининг.

Post by Beyonder »

Снова-же, не смотрел скрипт но на 75% уверен что тебе нужно проверить правильно ли ты сюда прописал сообщение:

Code: Select all

var msg3='Тут ничего нету' #Msg 'There is nothing ore'
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Чуток подправить скрипт на мининг.

Post by Jekaaa »

Ты как всегда прав, спасибо =)
Post Reply