Page 1 of 1

Майнинг

Posted: 2006-07-18 18:10:12
by euphoria
вот скрипт на майнинг с ходилкой, но чего то не могу настроить... когда должен начинать копаь пишет "ю кент си таргет"

Code: Select all

sub MiningForeva()

var Pickaxe="0x0E85"
var container="0x40028AF8"


uo.exec('exec Hiding') 


begin:


enter()
gotoxy(3255,2221,1)
mine()
leave()

gruz()

enter()
gotoxy(3255,2214,1)
mine()
leave()

gruz()

enter()
gotoxy(3255,2207,1)
mine()
leave()

gruz()

enter()
gotoxy(3255,2200,1)
mine()
leave()

gruz()

enter()
gotoxy(3250,2200,1)
mine()
leave()

gruz()

enter()
gotoxy(3250,2207,1)
mine()
leave()

gruz()

enter()
gotoxy(3250,2214,1)
mine()
leave()

gruz()

enter()
gotoxy(3250,2221,1)
mine()
leave()

gruz()

enter()
gotoxy(3250,2196,1)
mine()
leave()

gruz()

enter()
gotoxy(3243,2214,1)
mine()
leave()

gruz()

enter()
gotoxy(3244,2222,1)
mine()
leave()

gruz()

enter()
gotoxy(3259,2221,1)
mine()
leave()








goto begin

end sub

########################################################



sub Hidding()
ggg:
while not UO.Hidden() 
UO.Warmode("0") 
uo.print("Zimbo(C)2006") 
UO.UseSkill("Hiding") 
wait(6000) 
wend
goto ggg
end sub

sub mine()
var MaxVes=300 ##- miksimalniy ves - nabrav ego 4ar razgru}I{aets9. 
#wait(1000)
#until uo.hidden()
var y, x, i
for x=-2 to 2
for y=-2 to 2
while not UO.Hidden() 
   UO.Warmode("0") 
   uo.print("????????...") 
   UO.UseSkill("Hiding") 
   wait(6000) 
   wend 
try:
UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+y),"0") 
UO.Useobject('Pickaxe')
i=0


while i< 100 
if UO.InJournal("but fail") then 
wait (1000) 
i=200 
UO.DeleteJournal() 
goto try 
endif 
if UO.InJournal("You put") then 
i=200 
UO.DeleteJournal() 
goto try 
endif 
if UO.InJournal("стоющего") then 
i=200 
UO.DeleteJournal() 
goto try 
endif 
if UO.InJournal("You must wait to perform another action") then 
wait (100) 
i=200 
UO.DeleteJournal() 
goto try 
endif 
if UO.InJournal("nothing here") or UO.InJournal("Try mining") then 
wait (100) 
i=200 
UO.DeleteJournal() 
endif 
if UO.InJournal("location") or uo.InJournal("in rock") then 
wait (100) 
i=200 
UO.DeleteJournal() 
endif 
wait (500) 
i=i+1 
wend 


if uo.weight>=MaxVes then 
wait (1000)
goto nex0
UO.DeleteJournal() 
endif 
   next
   next
nex0:
end sub


sub gruz()
UO.SetReceivingContainer('container')
  var i, k

  DIM Loot[6] 
  Loot[0]=0x19b9  
  Loot[1]=0x19b7
  Loot[2]=0x19b8  
  Loot[3]=0x19ba  
  Loot[4]=0x0F8c  
  Loot[5]=0x0F26  
  Loot[6]=0x0F29


    For i=0 to 6 
k=0 
repeat 
UO.FindType(loot[i]) 
if UO.GetQuantity('finditem')>0 then 
UO.Grab('0','finditem') 
wait(1500) 
Else 
k=1 
endif 
until k==1 
Next
end sub

##############################################################


sub gotoxy(x,y,prec)
var ld=0,ldc=0 
var dx,dy 
var mx,my 
var ox,oy,mk,k 
#uo.print(">") 
#uo.track("1",str(x),str(y)) 
start: 
mx=UO.GetX() 
my=UO.GetY() 
dx=mx-x 
if dx<0 then 
dx=0-dx 
endif 
dy=my-y 
if dy<0 then 
dy=0-dy 
endif 
if dy>dx then 
dx=dy 
end if 
if dx<=prec then 
return 
end if 
if not ldc then 
uo.print(STR(dx)) 
end if 
if dx<3 then 
mk=70 
else 
mk=15 
end if 

ox=mx 
oy=my 
for k=1 to mk 
mx=UO.GetX() 
my=UO.GetY() 
if mx<>ox or my<>oy then 
goto sdidapl 
end if 
wait(10) 
next 
sdidapl: 

mx=UO.GetX() 
my=UO.GetY() 
dx=mx-x 
if dx<0 then 
dx=0-dx 
endif 
dy=my-y 
if dy<0 then 
dy=0-dy 
endif 
if dy>dx then 
dx=dy 
end if 

if dx<=prec then 
return 
end if 
if ld==dx then 
ldc=ldc+1 
if ldc>100 then 
uo.print("Can not reach location!") 
return 
end if 
else 
ld=dx 
end if 

if mx==x then 
if my==y then 
return 
endif 
if my>y then 
#UO.Print("UR") 
UO.Press(33) 
goto start 
endif 
#UO.Print("DL") 
UO.Press(35) 
goto start 
end if 
if mx<x then 
if my>y then 
#UO.Print("R") 
UO.Press(39) 
goto start 
endif 
if my==y then 
#UO.Print("DR") 
UO.Press(34) 
goto start 
endif 
#UO.Print("D") 
UO.Press(40) 
goto start 
end if 
if my<y then 
#UO.Print("L") 
UO.Press(37) 
goto start 
endif 
if my==y then 
#UO.Print("LU") 
UO.Press(36) 
goto start 
endif 
#UO.Print("U") 
UO.Press(38) 
goto start 
end sub


###############################################################


sub enter()
gotoxy(3291,2266,1)
gotoxy(3288,2267,1)
gotoxy(3284,2253,1)
gotoxy(3264,2235,1)
gotoxy(3264,2215,1)
end sub

sub leave()
gotoxy(3264,2215,1)
gotoxy(3264,2235,1)
gotoxy(3284,2253,1)
gotoxy(3288,2267,1)
gotoxy(3291,2266,1)
end sub



########################################




sub hgb()




gotoxy(2351,811,0)
gotoxy(2351,839,0)
gotoxy(2362,849,0)
gotoxy(2351,866,0)

gruz()

gotoxy(2362,849,0)
gotoxy(2351,839,0)
gotoxy(2351,811,0)

##########################################
end sub

sub Reconnector() 
var ReconnectTime, RFlag 
ReconnectTime = '0' 
RFlag = 1 
Repeat 
While (UO.ObjAtLayer('Bpack') == '') 
if RFlag Then 
ReconnectTime = MakeTime() 
RFlag = 0 
endif 
Wait(20000) # WorldSave Protection 
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.Exec('terminate all') 
;UO.Exec('exec autoload') 
UO.TextOpen() 
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
RFlag = 1 
ReconnectTime = '0' 
endif 
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 Hiding()
var i=1 
repeat 
for i=1 to 8 
if not uo.hidden() then 
UO.UseSkill("Hiding") 
UO.DeleteJournal() 
Repeat 
Wait(10) 
Until UO.InJournal("You have hidden yourself well") or UO.InJournal("You can't seem to hide here.") 
end if 
next 
for i=1 to 8 
wait(200) 
if not uo.hidden() then 
UO.UseSkill("Hiding") 
UO.DeleteJournal() 
Repeat 
Wait(10) 
Until UO.InJournal("You have hidden yourself well") or UO.InJournal("You can't seem to hide here.") 
end if 
next 
Wait(100) 
until UO.Dead() 
end sub 

Posted: 2006-07-18 18:25:14
by Leo
Тип кирки проверь, может флипнутая.

Posted: 2006-07-18 18:40:29
by ShadowX
Думаю врядли из-за типа кирки, тогда бы писало No Item Found или чото подобное, а тут будто чар или не доходит то точки призначения, либо он пытается копать дето в левом месте. Ошибка по-моему дето в этом районе:

Code: Select all

UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+y),"0")
Попробуй кароче взять uo.infotile() с точки, где копать и первую цифру впиши на место "1341", может поможет :roll:

Posted: 2006-07-18 18:49:04
by euphoria
ShadowX wrote:Думаю врядли из-за типа кирки, тогда бы писало No Item Found или чото подобное, а тут будто чар или не доходит то точки призначения, либо он пытается копать дето в левом месте. Ошибка по-моему дето в этом районе:

Code: Select all

UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+y),"0")
Попробуй кароче взять uo.infotile() с точки, где копать и первую цифру впиши на место "1341", может поможет :roll:
я тоже думаю что в этом проблема. но как ни странно в 1 шахте ,infotile в разных клетках выдает разные тайлы...

Posted: 2006-07-18 18:56:54
by ShadowX
Тогда может быть проблема в последней координате Z, может шахта горбатая? :D

Posted: 2006-07-19 17:16:18
by Nmy
1339 попробуй

Posted: 2006-07-19 22:11:45
by ShadowX
Если на каждом тайле выдает новую графику, то переделай скрипт, чтобы собирал тайлы в файл из которого потом будет в будущем читаться все координаты и графика. А то такой скрипт как у тебя он ненадежен и занимает больше места, можно хорошо подрезать, сделав так как я посоветовал. Так работают практически все скрипты :D

Posted: 2006-07-27 15:33:24
by pelmeska
А я думаю что если ненайду я скрипт ГОТОВЫЙ то срехнусь :roll: