Помогите с Минингом

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Gashish379
Posts: 6
Joined: 2009-10-06 11:59:24

Помогите с Минингом

Post by Gashish379 »

Всем привет у меня проблема со скриптом, чар иногда не идет к следующей точке.

Code: Select all

sub Mark() 
dim PX[500], PY[500] 
var Minepoints=0 
var i 
uo.Print('Start marking...')  
for i=1 to 500 
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 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  

var f=file('E:\UO\Injection\MinocMine3.dat')
######### 
sub main() 
repeat 
;perexodtuda() 
ToHide()
mining() 
;perexodobratno() 
until UO.Dead() 
end sub 
######### 
sub perexodtuda() 
walkn(2517,554,'') 
walkn(2524,554,'') 
walkn(2524,553,'') 
UO.Press(33) 
wait(200) 
UO.Press(33) 
wait(200) 
end sub 
######### 
sub perexodobratno() 
walkn(2571,481,'') 
walkn(2580,481,'') 
UO.Press(34) 
wait(200) 
UO.Press(34) 
wait(200) 
end sub 
######### 
sub mining()
ToHide()
dim PX[150], PY[150]  
var Minepoints=0  
var i,q,p,w 
uo.Print('Loading from file...')  
f.open()  
uo.Print('file loaded')  
Minepoints=safe call f.ReadNumber()  
uo.Print('minepoints')  
for i=1 to Minepoints  
PX[i]=safe call f.ReadNumber()  
PY[i]=safe call f.ReadNumber()  
next  
f.close()  
uo.Print('file closed') 
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.Exec("warmode 0")  
mine(PX,PY,p)  
next  
end sub 

sub tohide() 
while NOT UO.Hidden() 
UO.DeleteJournal() 
UO.FindType('0x0F0E','0x0631','my') 
if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then 
UO.UseType('0x0E86','0x0E86') 
UO.Exec('warmode 0') 
wait(2000) 
else 
UO.Exec('warmode 0') 
UO.UseSkill('Stealth') 
repeat 
wait(50) 
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') 
endif 
wend 
end sub 
######### 
sub mine(PX,PY,p)
tohide()
var x, y,z,t 
var LastTimer  
z=UO.GetZ("self")  
for x=-2 to 2  
for y=-2 to 2  
t=0 
Repeat  
UO.DeleteJournal()  
UO.Exec("warmode 0")  
UO.WaitTargetTile("1339",STR(UO.GetX()+x),STR(UO.GetY()+Y),z)  
;UO.WaitTargetTile("1342",STR(UO.GetX()+x),STR(UO.GetY()+Y),z) 
UO.UseType('0x0E85') 
UO.DeleteJournal()  
wait(200) 
LastTimer=UO.Timer()  
Repeat  
wait(500) 
;UO.Print('aaa') 
Until UO.InJournal('Try mining') or UO.InJournal('There is nothing') or UO.InJournal('You put') or UO.InJournal('There is no metal') or UO.InJournal("You loosen some") or UO.InJournal("You can") or UO.InJournal("Target cannot") or UO.InJournal("Âû âûêîïàëè") or UO.InJournal("That is too") or UO.InJournal("You have moved") or UO.Timer()>LastTimer+200  
wait(2000) 
t=t+1 
Until UO.InJournal('Try mining') or UO.InJournal('There is nothing') or UO.InJournal("There is no metal") or UO.InJournal("You can") or UO.InJournal("Target cannot") or UO.InJournal("That is too") or UO.InJournal("You have moved") or  UO.Timer()>LastTimer+200 or t>2 
check(PX,PY,p) 
next  
next  
end sub  
######### 
sub check(PX,PY,p) 
var Che 
Che=0 
if UO.Weight>600 then 
Che=Che+1 
endif 
if UO.Count('0x0E85')<1 then 
Che=Che+1 
endif 
if Che > 0 then 
unload(PX,PY,p)  
endif 
end sub 
######### 
sub unload(PX,PY,p) 
var i 
for i=p to 1 step -1 
walkn(PX[i],PY[i],'') 
next 
;perexodobratno() 

;perexodtuda() 
vozvrat(PX,PY,p)  
end sub 
######### 
sub vozvrat(PX,PY,p)  
var i  
for i=1 to p 
uo.Print('X: '+str(PX[p])+' Y: '+str(PY[p]))  
WalkN(PX[i],PY[i],'')  
next  
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()  
; 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  
Endif  
Endif  
UO.Press(key)  
wait(walkwait)  
end sub  
Gashish379
Posts: 6
Joined: 2009-10-06 11:59:24

Post by Gashish379 »

Что, никто не скажет в чем проблема?(((
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

у всех опытных скриптеров тоже проблема - читать долбаные мининги и ламберы на 300+ строк
[url=http://coop.myftp.org/utils/codesweeper.htm]**Выставляем отступы в скриптах***[/url] ©Destruction
Feel the Power of Dark Side
Gashish379
Posts: 6
Joined: 2009-10-06 11:59:24

Post by Gashish379 »

Ну посмотрите плиз, оч надо. Просто раньше у меня был хороший скрипт с марком точек, а этот какаято жалкая пародия на него((((
Если есть таковой может поделитесь, если не трудно конечно.
Gashish379
Posts: 6
Joined: 2009-10-06 11:59:24

Post by Gashish379 »

Ну что никто не поможет с ходилкой?(((
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

так какой те надо мининг исправлять, этот или в другом разделе?)
[url=http://coop.myftp.org/utils/codesweeper.htm]**Выставляем отступы в скриптах***[/url] ©Destruction
Feel the Power of Dark Side
Gashish379
Posts: 6
Joined: 2009-10-06 11:59:24

Post by Gashish379 »

Все спасибо)))) Я сам разобрался))))
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

ай молодца, хвалю!
[url=http://coop.myftp.org/utils/codesweeper.htm]**Выставляем отступы в скриптах***[/url] ©Destruction
Feel the Power of Dark Side
Post Reply