Page 1 of 1

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

Posted: 2010-05-11 00:12:36
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



Сделайте плиз так что бы он клал руду не рядом с домам в кучки а складывал её в контейнер перед домом. Заранее благодарен!

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

Posted: 2010-05-11 11:11:37
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

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

Posted: 2010-05-11 12:47:46
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() где надо скинуть

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

Posted: 2010-05-11 23:25:58
by Jekaaa
А ты не мог бы пометить куда именно это вставить?

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

Posted: 2010-05-12 07:51:31
by Mirage
Jekaaa wrote:А ты не мог бы пометить куда именно это вставить?

вместо unloadOres() вставить putore()

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

Code: Select all

sub unloadOres()
блаблабла
end sub

добавить наши варианты прописав соответствующий контейнер
должно сработать :mrgreen:

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

Posted: 2010-05-12 13:46:50
by Jekaaa
Попробовал настроить, запустил setup почему то таргет не появляется..

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

Posted: 2010-05-12 14:00:58
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
####################


Если проще его переделать то лучше его, что бы он не по руне копал а в шахте координаты которые укажу я и что бы не в банк летал а к дому ходил и клал в сундук руду.

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

Posted: 2010-05-12 15:36:37
by Mirage
чтобы просто ходил без полетов я выкладывал скрипт

http://forum.yoko.com.ua/viewtopic.php?f=17&t=15710&start=20

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

Posted: 2010-05-12 21:34:02
by Jekaaa
А твой скрипт автоматически ищет шахту и местонахождение сундука? если нет, то ткни носом где прописывать координаты шахты и координаты сундука =)

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

Posted: 2010-05-13 00:26:32
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

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

Posted: 2010-05-13 12:57:27
by Jekaaa
Ребят помогите пожалуйста переделать последний скрипт, уж очень покопать хочется... =)

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

Posted: 2010-05-13 15:40:24
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'

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

Posted: 2010-05-13 20:56:47
by Jekaaa
Спасибо! пока все работает просто замечательно.

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

Posted: 2010-05-16 18:05:06
by Jekaaa
Скрипт обалденный, все работает ходит копает, только вот задержка между тайлами большая, можно как нибудь сделать что бы когда он все выкопал он побыстрее на следующий таил переходил? =)

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

Posted: 2010-05-16 21:24:36
by Beyonder
Снова-же, не смотрел скрипт но на 75% уверен что тебе нужно проверить правильно ли ты сюда прописал сообщение:

Code: Select all

var msg3='Тут ничего нету' #Msg 'There is nothing ore'

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

Posted: 2010-05-17 00:31:16
by Jekaaa
Ты как всегда прав, спасибо =)