Page 1 of 1

Mining и выкидывание не нужной руды.

Posted: 2005-04-07 21:14:51
by prof
Есть такой скрипт:

Code: Select all

sub minround() 
VAR Kirka = '0x0E85'   ; Тип Кирки
VAR MaxVes = 550   ; Максимальный вес, подымаемый чаром минус 10-15 стоунов
VAR TileNum = '1339'   ; Тайл пола пещеры (наиболее распространенный тип)
VAR x, y, t, k
VAR MaxTime = 100   ; измеряется в 1/10 сек.
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen some rocks"
VAR ms5 = "You are too far away"
VAR ms6 = "Try mining in rock"
VAR ms7 = "You can't see that"
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
      k = 0
      repeat
         UO.DeleteJournal()
         t = UO.Timer()
         k = k + 1
         UO.CancelTarget()
         wait(300)
         UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
         UO.UseType( Kirka )
         repeat
            wait(300)
         until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer())
         If UO.Weight > MaxVes Then
            UO.Print(" Overweight!" )
            return
         Endif
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
   next
next
endsub

и есть такая проверка руды:

Code: Select all

; Проверка нужности руды. Закоментировать то что нужно копать. 
sub CheckOre()
   VAR Cont=1, i=0, Exit=0
   VAR Count=6   ; Сколько элементов в массиве.
   DIM Ores[15]   

   Ores[0]="Rusty"
   Ores[1]="Old Copper"
   Ores[2]="Dull Copper"
   Ores[3]="Copper"
   Ores[4]="Bronze"
   Ores[5]="Silver"
;   Ores[6]="Iron"
;   Ores[7]="Shadow"
;   Ores[8]="Rose"
;   Ores[9]="Gold"
;   Ores[10]="Agapite"
;   Ores[11]="Blood Rock"
;   Ores[12]="Verite"
;   Ores[13]="Valorite"
;   Ores[14]="Mytheril"
end sub

Что мне нужно вставить в mining, что бы он выкидывал не нужную руду?!

Re: Mining и выкидывание не нужной руды.

Posted: 2005-04-07 23:12:31
by Denton
prof wrote:Есть такой скрипт:
sub minround()
VAR Kirka = '0x0E85' ; Тип Кирки
VAR MaxVes = 550 ; Максимальный вес, подымаемый чаром минус 10-15 стоунов
VAR TileNum = '1339' ; Тайл пола пещеры (наиболее распространенный тип)
VAR x, y, t, k
VAR MaxTime = 100 ; измеряется в 1/10 сек.
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen some rocks"
VAR ms5 = "You are too far away"
VAR ms6 = "Try mining in rock"
VAR ms7 = "You can't see that"
for y=-2 to 2
for x=-2 to 2
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
k = 0
repeat
UO.DeleteJournal()
t = UO.Timer()
k = k + 1
UO.CancelTarget()
wait(300)
UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
UO.UseType( Kirka )
repeat
wait(300)
until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer())
If UO.Weight > MaxVes Then
UO.Print(" Overweight!" )
return
Endif
until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )

Code: Select all

Razg()

next
next
endsub

Code: Select all

sub Razg() 
VAR a
var x=uo.getx()
var y=uo.gety()
var z=uo.getz()
DIM Ore[11]
Ore[0]=0x0000 # цвет металла (берется командой ,info цвет стоит рядом со словом "color=*****") дальше в массив вбиваешь цвет каждой руды которую хочешь выбрасывать
Ore[1]=
Ore[2]=
Ore[3]=
Ore[4]=
Ore[5]=
Ore[6]=
Ore[7]=
Ore[8]=
Ore[9]=
Ore[10]=
wait(100)
For a=0 to 10 # если массив закончится на ore[6] например, то тут поставить "For a=0 to 6" и т.д.
UO.FindType('0x19B9',Ore[a],'backpack')
while UO.GetQuantity('finditem')<>0
         uo.drop("-1",str(x),str(y),str(z),"finditem")
      wait(50)
wend
next
end sub

Posted: 2005-04-08 02:05:42
by prof
Вот что у меня получилось

Code: Select all

sub minround() 
VAR Kirka = '0x0F3A'   ; Тип Кирки
VAR MaxVes = 500   ; Максимальный вес, подымаемый чаром минус 10-15 стоунов
VAR TileNum = '1339'   ; Тайл пола пещеры (наиболее распространенный тип)
VAR x, y, t, k
VAR MaxTime = 100   ; измеряется в 1/10 сек.
VAR ms1 = "There is no ore here to mine"
VAR ms2 = "You can't use"
VAR ms3 = "You put the"
VAR ms4 = "You loosen some rocks"
VAR ms5 = "You are too far away"
VAR ms6 = "Try mining in rock"
VAR ms7 = "You can't see that"
for y=-2 to 2
for x=-2 to 2
;while not UO.Hidden()
;UO.Warmode("0")
;uo.print("Прячемся...")
;UO.UseSkill("Hiding")
;wait(4000)
;wend
      k = 0
      repeat
         UO.DeleteJournal()
         t = UO.Timer()
         k = k + 1
         wait(300)
         UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0)
         UO.UseType( Kirka )
         repeat
            wait(300)
         until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR ((t + MaxTime) < UO.Timer())
         If UO.Weight > MaxVes Then
            UO.Print(" Overweight!" )
            return
         Endif
      until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10) )
      CheckOre()
   next
next
endsub


sub CheckOre()
VAR a
var x=uo.getx()
var y=uo.gety()
var z=uo.getz()
DIM Ore[4]
Ore[0]=0x060A # цвет металла (берется командой ,info цвет стоит рядом со словом "color=*****") дальше в массив вбиваешь цвет каждой руды которую хочешь выбрасывать
Ore[1]=0x0088
Ore[2]=0x0590
Ore[3]=0x0750
Ore[4]=0x0488
;Ore[5]=
;Ore[6]=
;Ore[7]=
;Ore[8]=
;Ore[9]=
;Ore[10]=
wait(500)
For a=0 to 4 # если массив закончится на ore[6] например, то тут поставить "For a=0 to 6" и т.д.
UO.FindType('0x19B9',Ore[a],'backpack')
while UO.GetQuantity('finditem')<>0
         uo.drop("-1",str(x),str(y),str(z),"finditem")
      wait(1000)
wend
next
end sub

Но он руду выкидывает и дальше не капает. :(

Posted: 2005-04-08 17:54:17
by Edred
prof wrote:Вот что у меня получилось

Code: Select all

...................................
sub CheckOre()
...................................
next
return
end sub

Но он руду выкидывает и дальше не капает. :(


Добавь куда я указал команду return