Помогите тут подправить вот... Мининг

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Saigon
Posts: 7
Joined: 2007-04-19 16:47:21

Помогите тут подправить вот... Мининг

Post by Saigon »

Code: Select all

################## 
### Переменные ### 
################################################################################################### 
var Reconnect=0 ##  1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.(не проверял работает или нет с этим скриптом) 
### 
var Food=1 ## - Кушать после сброса руды или нет? 1 - да, 0 - нет. 
### 
var Status=0 ## - Статус руды, показывает скока накопали (для опытных скриптёров) 1 - да, 0 - нет. 
### 
var Chest='0x416ED746' ## - ID сундука куда будут выгружаться руду, где должны лежать реги и еда. 
### 
var TypeFood='0x160A' ## - Type еды которую будем кушать.(сейчас фиштейки) 
### 
var CountReg=20 ## - Кол-во регов для подзарядки. 
### 
var OreQty=600 ## - Максимальный вес при котором домой с рудой 
### 
var maxjamp=8 ## - Для рекола (изменять не нужно) 
var rune=1    ## - Для рекола (изменять не нужно) 
################################################################################################### 
### Wait - Ждёт сообшения после замаха кирки, чтобы повторить.                                   ## 
### Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать.                   ## 
################################################################################################### 
var Wait1="You put" 
var Wait2="heavy" 
var Wait3="location" 
var Wait4="no ore" 
var Wait5="but fail" 
var Wait6="far away" 
var Wait7="in rock" 
var Wait8="You can't" 
var Wait9="nothing here" 
var Wait10="You have found some" 
### 
var Fizzle1="There is nothing here to mine for." 
var Fizzle2="You can't use the" 
var Fizzle3="Try mining elsewhere." 
var Fizzle4="location" 
################################################################################################### 
################# 
### Включалка ### 
################# 
sub Start() 
If    UO.GetGlobal('Maningcheck')=='on' Then 
   UO.SetGlobal('Maningcheck','off') 
   UO.Exec('Exec Terminate') 
Else 
   UO.Exec('Exec Maning') 
   UO.SetGlobal('Maningcheck','on') 
EndIf 
End sub 
############### 
### Майнинг ### 
############### 
Sub Maning() 
var Mine=1 
UO.print('!!!SELECT YOU PICKAXE!!!') 
UO.exec('addobject Shovel') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('!!!SELECT YOU RUNE TO HOME!!!') 
UO.exec('addobject Home') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (1)') 
UO.exec('addobject Mine1') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (2)') 
UO.exec('addobject Mine2') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (3)') 
UO.exec('addobject Mine3') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (4)') 
UO.exec('addobject Mine4') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (5)') 
UO.exec('addobject Mine5') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (6)') 
UO.exec('addobject Mine6') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (7)') 
UO.exec('addobject Mine7') 
while UO.targeting() 
wait(100) 
wend 

If Reconnect==1 Then 
UO.Exec('Exec Reconnect') 
EndIf 
############################## 
### Копаем руду возле себя ### 
############################## 
If Mine==1 Then 
REPEAT 
JumpToRune() 
GetOre() 
wait(2000) 
Until UO.Dead() 
End sub 

Sub GetOre() 
var CheckTime 
var mx, my, mz, i, j 
mx = UO.GetX("self") 
my = UO.GetY("self") 
mz = UO.GetZ("self") 
for i = mx-2 to mx+2 
for j = my-2 to my+2 
ToHide() 
UO.Print("Get Coordinate: "+str(mx-i)+' '+str(my-j)) 
If UO.waiting() Then 
UO.canceltarget() 
EndIf 
REPEAT 
If UO.weight >= OreQty Then 
ToRecall() 
EndIf 
ToHide() 
UO.Waittargettile("1341",str(i),str(j),str(mz)) 
UO.Useobject("Shovel") 
CheckTime=UO.Timer() 
UO.DeleteJournal() 
REPEAT 
wait(300) 
Until UO.InJournal(Wait1) or UO.InJournal(Wait2) or UO.InJournal(Wait3) or UO.InJournal(Wait4) or UO.InJournal(Wait5) or UO.InJournal(Wait6) or UO.InJournal(Wait7)  or UO.InJournal(Wait8) or UO.InJournal(Wait9) or UO.InJournal(Wait10) or CheckTime+200<uo.Timer() or UO.Dead() 
Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.Dead() 
If UO.weight >= OreQty Then 
ToRecall() 
EndIf 
Next 
Next 
End sub 
################### 
### Рекол домой ### 
################### 
Sub ToRecall() 
RecallToHome() 
ToHide() 
DropOre() 
CheckReg() 
If Food==1 Then 
ToEat() 
EndIf 
If Status==1 Then 
InfoOre() 
EndIf 
BackToMine() 
End sub 
######################################################## 
### Система реколов по рунам (с проверкой на прыжки) ### 
######################################################## 
Sub JumpToRune() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
RecallMana() 
If rune==maxjamp Then 
rune=1 
EndIf 
UO.Print("Go to Mine: "+str(rune)) 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
If UO.getx()==mx and UO.gety()==my Then 
REPEAT 
x=x+1 
RecallMana() 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() 
EndIf 
CheckMark() 
rune=rune+1 
End sub 

Sub BackToMine() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
If rune==1 Then 
rune=2 
EndIf 
rune=rune-1 
RecallMana() 
UO.Print("Go back to Mine: "+str(rune)) 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
If UO.getx()==mx and UO.gety()==my Then 
REPEAT 
x=x+1 
RecallMana() 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() 
EndIf 
CheckMark() 
rune=rune+1 
End sub 

Sub CheckMark() 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
If UO.InJournal('The recall rune is starting to fade') Then 
UO.print("Mark Rune: "+str(rune)) 
REPEAT 
UO.DeleteJournal() 
MarkMana() 
UO.Cast('Mark',runes[rune]) 
wait(5000) 
Until NOT UO.InJournal('The spell fizzles') or UO.Dead() 
UO.DeleteJournal() 
EndIf 
End sub 
####################################################### 
### Реколимся домой по рунам (с проверкой на прыжки) ## 
####################################################### 
Sub RecallToHome() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
REPEAT 
x=x+1 
RecallMana() 
UO.Print('Go to Home') 
UO.Cast('Recall','Home') 
wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==3) or UO.Dead() 
If UO.InJournal('The recall rune is starting to fade') Then 
UO.print("Mark Rune") 
REPEAT 
UO.DeleteJournal() 
MarkMana() 
UO.Cast('Mark','Home') 
wait(5000) 
Until NOT UO.InJournal('The spell fizzles') or UO.Dead() 
UO.DeleteJournal() 
EndIf 
End sub 
#################################### 
### Выкладываем руду в контейнер ### 
#################################### 
Sub DropOre() 
If UO.waiting() Then 
UO.canceltarget() 
EndIf 
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 or UO.Dead() 
Next 
UO.UnSetReceivingContainer() 
End sub 
##################################### 
### Проверяем кол-во регов в паке ### 
##################################### 
Sub CheckReg() 
If UO.MR <= 10 or UO.BM <= 10 or UO.BP <= 10 Then 
UO.Print("!!!Download Regs!!!") 
UO.SetReceivingContainer('backpack') 
UO.UseObject(Chest) 
wait(5000) 
UO.FindType('0x0F86','-1',Chest) ; MR 
UO.Grab(STR(CountReg-UO.MR),'finditem') 
wait(5000) 
UO.FindType('0x0F7B','-1',Chest) ; BM 
UO.Grab(STR(CountReg-UO.BM),'finditem') 
wait(5000) 
UO.FindType('0x0F7A','-1',Chest) ; BP 
UO.Grab(STR(CountReg-UO.BP),'finditem') 
wait(5000) 
UO.UnsetReceivingContainer() 
UO.Print("!!!Download Regs: Done!!!") 
EndIf 
End sub 
########################################## 
### Берём хавку из контейнера и кушаем ### 
########################################## 
Sub ToEat() 
UO.UseObject(Chest) 
wait(5000) 
UO.FindType(TypeFood,'-1',Chest) 
If UO.FindCount() > 0 Then 
UO.SetReceivingContainer('backpack') 
UO.Grab('25','finditem') 
wait(2000) 
REPEAT 
UO.UseType(TypeFood) 
wait(1000) 
Until UO.InJournal('You are simply too full to eat any more!') or UO.Dead() 
Else 
UO.print("!!! Not Food !!!") 
EndIf 
DropFood() 
End sub 

Sub DropFood() 
var f,Exit 
dim Food[1] 
Food[0]=TypeFood 
If UO.Waiting() Then 
UO.CancelTarget() 
EndIf 
UO.SetReceivingContainer(Chest) 
for f=0 to 0 
Exit=0 
repeat 
UO.FindType(Food[f]) 
If UO.GetQuantity('finditem') > 0 Then 
UO.Grab('0','finditem') 
wait(1500) 
Else 
Exit=1 
EndIf 
Until Exit==1 or UO.Dead() 
next 
UO.UnsetReceivingContainer() 
End sub 
#################################### 
### Проверяем ману перед кастами ### 
#################################### 
Sub RecallMana() 
If UO.mana <= 11 Then 
UO.print('!!!Meditation!!!') 
UO.Exec('warmode 0') 
wait(1000) 
REPEAT 
UO.UseSkill('Meditation') 
wait(15000); 15 секунд медетируем. 
Until UO.mana > 50 or UO.Dead() 
EndIf 
End sub 

Sub MarkMana() 
If UO.mana <= 17 Then 
UO.print('!!!Meditation!!!') 
UO.Exec('warmode 0') 
wait(1000) 
REPEAT 
UO.UseSkill('Meditation') 
wait(15000); 15 секунд медетируем. 
Until UO.mana > 50 or UO.Dead() 
EndIf 
End sub 
####################### 
### Прячимся в хайд ### 
####################### 
Sub ToHide() 
var CheckTime 
while NOT UO.Hidden() 
UO.Print('Hidden...') 
UO.Exec("warmode 0") 
wait(1000) 
UO.UseSkill('Stealth') 
CheckTime=UO.Timer() 
REPEAT 
wait(300) 
Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead() 
Wend 
End sub 
################################### 
### Смотрим скока накопали руды ### 
################################### 
Sub InfoOre() 
var LogsTime=PrintTime() 
UO.FindType('0x1BDD','-1',Chest) 
UO.TextOpen() 
UO.TextPrint('#####################') 
UO.TextPrint('## Время: '+LogsTime+' ##') 
UO.TextPrint('#####################') 
UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest))) 
UO.TextPrint('Rose Ore: '+STR(GetAmount('0x19B9','0x0665',Chest))) 
UO.TextPrint('Golden Ore: '+STR(GetAmount('0x19B9','0x084D',Chest))) 
UO.TextPrint('Orion Ore: '+STR(GetAmount('0x19B9','0x048A',Chest))) 
UO.TextPrint('Dwarf Ore: '+STR(GetAmount('0x19B9','0x0488',Chest))) 
UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0482',Chest))) 
UO.TextPrint('Shadow Ore: '+STR(GetAmount('0x19B9','0x0770',Chest))) 
UO.TextPrint('Valorite Ore: '+STR(GetAmount('0x19B9','0x0515',Chest))) 
UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0487',Chest))) 
UO.TextPrint('Magma Ore: '+STR(GetAmount('0x19B9','0x0486',Chest))) 
UO.TextPrint('Obsidian Ore: '+STR(GetAmount('0x19B9','0x0485',Chest))) 
UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x048D',Chest))) 
UO.TextPrint('#####################') 
End sub 

Sub GetAmount(Type, Color, Cont) 
Var item_amount = 0 
UO.IgnoreReset() 
Repeat 
UO.FindType(Type, Color, Cont) 
If UO.FindCount() > 0 Then 
If UO.GetQuantity('finditem')==0 Then 
item_amount = item_amount + 1 
Else 
item_amount = item_amount + UO.GetQuantity('finditem') 
EndIf 
UO.Ignore('finditem') 
UO.FindType(Type, Color, Cont) 
EndIf 
Until UO.FindCount() < 1 or UO.Dead() 
UO.IgnoreReset() 
Return item_amount 
End sub 

Sub PrintTime() 
Var HR  = '' 
Var MIN = '' 
Var SEC = '' 
Var CurrentTime = UO.Time()  
If CurrentTime>99999 Then 
HR  = Mid(STR(CurrentTime),0,2) 
MIN = Mid(STR(CurrentTime),2,2) 
SEC = Mid(STR(CurrentTime),4,2) 
Else 
If CurrentTime > 9999 Then 
HR  = '0'+Mid(STR(CurrentTime),0,1) 
MIN = Mid(STR(CurrentTime),1,2) 
SEC = Mid(STR(CurrentTime),3,2) 
Else 
If CurrentTime > 999 Then 
HR  = '00' 
MIN = Mid(STR(CurrentTime),0,2) 
SEC = Mid(STR(CurrentTime),2,2) 
Else 
If CurrentTime > 99 Then 
HR  = '00' 
MIN = '0'+Mid(STR(CurrentTime),0,1) 
SEC = Mid(STR(CurrentTime),1,2) 
Else 
If CurrentTime > 9  Then 
HR  = '00' 
MIN = '00'  
SEC = STR(CurrentTime) 
Else 
HR  = '00' 
MIN = '00'  
SEC = '0'+STR(CurrentTime)          
EndIf 
EndIf 
EndIf 
EndIf 
EndIf 
UO.TextPrint(STR(CurrentTime )) 
Return (HR+':'+MIN+':'+SEC)    
End sub 
################## 
### РЕКОНЕКТОР ### 
################## 
Sub Reconnect() 
var ReconnectTime,rFlag 
ReconnectTime='0' 
rFlag=1 
repeat 
while (UO.ObjAtLayer('Bpack')=='') 
If rFlag Then 
ReconnectTime=MakeTime() 
rFlag=0 
EndIf 
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' 
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 Terminate() 
UO.Print("Mining script: Off!") 
UO.DeleteJournal() 
UO.Exec('terminate all') 
wait(100) 
UO.Exec('terminate all') 
wait(100) 
UO.Exec('terminate all') 
wait(100) 
End sub

Етот скрипт работает но,когда обкопает чучуть вокруг себя и начинает копать под собой,пишет что нельзя типа копать под собой,может ето на шарде у нас так а может чтото нетак в скриптею. Подправте плиз ?? Спасибо
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Code: Select all

[code]
[/code]
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
Saigon
Posts: 7
Joined: 2007-04-19 16:47:21

Re: Помогите тут подправить вот... Мининг

Post by Saigon »

[quote="Saigon"]

Code: Select all

################## 
### Переменные ### 
################################################################################################### 
var Reconnect=0 ##  1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.(не проверял работает или нет с этим скриптом) 
### 
var Food=1 ## - Кушать после сброса руды или нет? 1 - да, 0 - нет. 
### 
var Status=0 ## - Статус руды, показывает скока накопали (для опытных скриптёров) 1 - да, 0 - нет. 
### 
var Chest='0x416ED746' ## - ID сундука куда будут выгружаться руду, где должны лежать реги и еда. 
### 
var TypeFood='0x160A' ## - Type еды которую будем кушать.(сейчас фиштейки) 
### 
var CountReg=20 ## - Кол-во регов для подзарядки. 
### 
var OreQty=600 ## - Максимальный вес при котором домой с рудой 
### 
var maxjamp=8 ## - Для рекола (изменять не нужно) 
var rune=1    ## - Для рекола (изменять не нужно) 
################################################################################################### 
### Wait - Ждёт сообшения после замаха кирки, чтобы повторить.                                   ## 
### Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать.                   ## 
################################################################################################### 
var Wait1="You put" 
var Wait2="heavy" 
var Wait3="location" 
var Wait4="no ore" 
var Wait5="but fail" 
var Wait6="far away" 
var Wait7="in rock" 
var Wait8="You can't" 
var Wait9="nothing here" 
var Wait10="You have found some" 
### 
var Fizzle1="There is nothing here to mine for." 
var Fizzle2="You can't use the" 
var Fizzle3="Try mining elsewhere." 
var Fizzle4="location" 
################################################################################################### 
################# 
### Включалка ### 
################# 
sub Start() 
If    UO.GetGlobal('Maningcheck')=='on' Then 
   UO.SetGlobal('Maningcheck','off') 
   UO.Exec('Exec Terminate') 
Else 
   UO.Exec('Exec Maning') 
   UO.SetGlobal('Maningcheck','on') 
EndIf 
End sub 
############### 
### Майнинг ### 
############### 
Sub Maning() 
var Mine=1 
UO.print('!!!SELECT YOU PICKAXE!!!') 
UO.exec('addobject Shovel') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('!!!SELECT YOU RUNE TO HOME!!!') 
UO.exec('addobject Home') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (1)') 
UO.exec('addobject Mine1') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (2)') 
UO.exec('addobject Mine2') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (3)') 
UO.exec('addobject Mine3') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (4)') 
UO.exec('addobject Mine4') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (5)') 
UO.exec('addobject Mine5') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (6)') 
UO.exec('addobject Mine6') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (7)') 
UO.exec('addobject Mine7') 
while UO.targeting() 
wait(100) 
wend 

If Reconnect==1 Then 
UO.Exec('Exec Reconnect') 
EndIf 
############################## 
### Копаем руду возле себя ### 
############################## 
If Mine==1 Then 
REPEAT 
JumpToRune() 
GetOre() 
wait(2000) 
Until UO.Dead() 
End sub 

Sub GetOre() 
var CheckTime 
var mx, my, mz, i, j 
mx = UO.GetX("self") 
my = UO.GetY("self") 
mz = UO.GetZ("self") 
for i = mx-2 to mx+2 
for j = my-2 to my+2 
ToHide() 
UO.Print("Get Coordinate: "+str(mx-i)+' '+str(my-j)) 
If UO.waiting() Then 
UO.canceltarget() 
EndIf 
REPEAT 
If UO.weight >= OreQty Then 
ToRecall() 
EndIf 
ToHide() 
UO.Waittargettile("1341",str(i),str(j),str(mz)) 
UO.Useobject("Shovel") 
CheckTime=UO.Timer() 
UO.DeleteJournal() 
REPEAT 
wait(300) 
Until UO.InJournal(Wait1) or UO.InJournal(Wait2) or UO.InJournal(Wait3) or UO.InJournal(Wait4) or UO.InJournal(Wait5) or UO.InJournal(Wait6) or UO.InJournal(Wait7)  or UO.InJournal(Wait8) or UO.InJournal(Wait9) or UO.InJournal(Wait10) or CheckTime+200<uo.Timer() or UO.Dead() 
Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.Dead() 
If UO.weight >= OreQty Then 
ToRecall() 
EndIf 
Next 
Next 
End sub 
################### 
### Рекол домой ### 
################### 
Sub ToRecall() 
RecallToHome() 
ToHide() 
DropOre() 
CheckReg() 
If Food==1 Then 
ToEat() 
EndIf 
If Status==1 Then 
InfoOre() 
EndIf 
BackToMine() 
End sub 
######################################################## 
### Система реколов по рунам (с проверкой на прыжки) ### 
######################################################## 
Sub JumpToRune() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
RecallMana() 
If rune==maxjamp Then 
rune=1 
EndIf 
UO.Print("Go to Mine: "+str(rune)) 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
If UO.getx()==mx and UO.gety()==my Then 
REPEAT 
x=x+1 
RecallMana() 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() 
EndIf 
CheckMark() 
rune=rune+1 
End sub 

Sub BackToMine() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
If rune==1 Then 
rune=2 
EndIf 
rune=rune-1 
RecallMana() 
UO.Print("Go back to Mine: "+str(rune)) 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
If UO.getx()==mx and UO.gety()==my Then 
REPEAT 
x=x+1 
RecallMana() 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() 
EndIf 
CheckMark() 
rune=rune+1 
End sub 

Sub CheckMark() 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
If UO.InJournal('The recall rune is starting to fade') Then 
UO.print("Mark Rune: "+str(rune)) 
REPEAT 
UO.DeleteJournal() 
MarkMana() 
UO.Cast('Mark',runes[rune]) 
wait(5000) 
Until NOT UO.InJournal('The spell fizzles') or UO.Dead() 
UO.DeleteJournal() 
EndIf 
End sub 
####################################################### 
### Реколимся домой по рунам (с проверкой на прыжки) ## 
####################################################### 
Sub RecallToHome() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
REPEAT 
x=x+1 
RecallMana() 
UO.Print('Go to Home') 
UO.Cast('Recall','Home') 
wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==3) or UO.Dead() 
If UO.InJournal('The recall rune is starting to fade') Then 
UO.print("Mark Rune") 
REPEAT 
UO.DeleteJournal() 
MarkMana() 
UO.Cast('Mark','Home') 
wait(5000) 
Until NOT UO.InJournal('The spell fizzles') or UO.Dead() 
UO.DeleteJournal() 
EndIf 
End sub 
#################################### 
### Выкладываем руду в контейнер ### 
#################################### 
Sub DropOre() 
If UO.waiting() Then 
UO.canceltarget() 
EndIf 
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 or UO.Dead() 
Next 
UO.UnSetReceivingContainer() 
End sub 
##################################### 
### Проверяем кол-во регов в паке ### 
##################################### 
Sub CheckReg() 
If UO.MR <= 10 or UO.BM <= 10 or UO.BP <= 10 Then 
UO.Print("!!!Download Regs!!!") 
UO.SetReceivingContainer('backpack') 
UO.UseObject(Chest) 
wait(5000) 
UO.FindType('0x0F86','-1',Chest) ; MR 
UO.Grab(STR(CountReg-UO.MR),'finditem') 
wait(5000) 
UO.FindType('0x0F7B','-1',Chest) ; BM 
UO.Grab(STR(CountReg-UO.BM),'finditem') 
wait(5000) 
UO.FindType('0x0F7A','-1',Chest) ; BP 
UO.Grab(STR(CountReg-UO.BP),'finditem') 
wait(5000) 
UO.UnsetReceivingContainer() 
UO.Print("!!!Download Regs: Done!!!") 
EndIf 
End sub 
########################################## 
### Берём хавку из контейнера и кушаем ### 
########################################## 
Sub ToEat() 
UO.UseObject(Chest) 
wait(5000) 
UO.FindType(TypeFood,'-1',Chest) 
If UO.FindCount() > 0 Then 
UO.SetReceivingContainer('backpack') 
UO.Grab('25','finditem') 
wait(2000) 
REPEAT 
UO.UseType(TypeFood) 
wait(1000) 
Until UO.InJournal('You are simply too full to eat any more!') or UO.Dead() 
Else 
UO.print("!!! Not Food !!!") 
EndIf 
DropFood() 
End sub 

Sub DropFood() 
var f,Exit 
dim Food[1] 
Food[0]=TypeFood 
If UO.Waiting() Then 
UO.CancelTarget() 
EndIf 
UO.SetReceivingContainer(Chest) 
for f=0 to 0 
Exit=0 
repeat 
UO.FindType(Food[f]) 
If UO.GetQuantity('finditem') > 0 Then 
UO.Grab('0','finditem') 
wait(1500) 
Else 
Exit=1 
EndIf 
Until Exit==1 or UO.Dead() 
next 
UO.UnsetReceivingContainer() 
End sub 
#################################### 
### Проверяем ману перед кастами ### 
#################################### 
Sub RecallMana() 
If UO.mana <= 11 Then 
UO.print('!!!Meditation!!!') 
UO.Exec('warmode 0') 
wait(1000) 
REPEAT 
UO.UseSkill('Meditation') 
wait(15000); 15 секунд медетируем. 
Until UO.mana > 50 or UO.Dead() 
EndIf 
End sub 

Sub MarkMana() 
If UO.mana <= 17 Then 
UO.print('!!!Meditation!!!') 
UO.Exec('warmode 0') 
wait(1000) 
REPEAT 
UO.UseSkill('Meditation') 
wait(15000); 15 секунд медетируем. 
Until UO.mana > 50 or UO.Dead() 
EndIf 
End sub 
####################### 
### Прячимся в хайд ### 
####################### 
Sub ToHide() 
var CheckTime 
while NOT UO.Hidden() 
UO.Print('Hidden...') 
UO.Exec("warmode 0") 
wait(1000) 
UO.UseSkill('Stealth') 
CheckTime=UO.Timer() 
REPEAT 
wait(300) 
Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead() 
Wend 
End sub 
################################### 
### Смотрим скока накопали руды ### 
################################### 
Sub InfoOre() 
var LogsTime=PrintTime() 
UO.FindType('0x1BDD','-1',Chest) 
UO.TextOpen() 
UO.TextPrint('#####################') 
UO.TextPrint('## Время: '+LogsTime+' ##') 
UO.TextPrint('#####################') 
UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest))) 
UO.TextPrint('Rose Ore: '+STR(GetAmount('0x19B9','0x0665',Chest))) 
UO.TextPrint('Golden Ore: '+STR(GetAmount('0x19B9','0x084D',Chest))) 
UO.TextPrint('Orion Ore: '+STR(GetAmount('0x19B9','0x048A',Chest))) 
UO.TextPrint('Dwarf Ore: '+STR(GetAmount('0x19B9','0x0488',Chest))) 
UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0482',Chest))) 
UO.TextPrint('Shadow Ore: '+STR(GetAmount('0x19B9','0x0770',Chest))) 
UO.TextPrint('Valorite Ore: '+STR(GetAmount('0x19B9','0x0515',Chest))) 
UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0487',Chest))) 
UO.TextPrint('Magma Ore: '+STR(GetAmount('0x19B9','0x0486',Chest))) 
UO.TextPrint('Obsidian Ore: '+STR(GetAmount('0x19B9','0x0485',Chest))) 
UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x048D',Chest))) 
UO.TextPrint('#####################') 
End sub 

Sub GetAmount(Type, Color, Cont) 
Var item_amount = 0 
UO.IgnoreReset() 
Repeat 
UO.FindType(Type, Color, Cont) 
If UO.FindCount() > 0 Then 
If UO.GetQuantity('finditem')==0 Then 
item_amount = item_amount + 1 
Else 
item_amount = item_amount + UO.GetQuantity('finditem') 
EndIf 
UO.Ignore('finditem') 
UO.FindType(Type, Color, Cont) 
EndIf 
Until UO.FindCount() < 1 or UO.Dead() 
UO.IgnoreReset() 
Return item_amount 
End sub 

Sub PrintTime() 
Var HR  = '' 
Var MIN = '' 
Var SEC = '' 
Var CurrentTime = UO.Time()  
If CurrentTime>99999 Then 
HR  = Mid(STR(CurrentTime),0,2) 
MIN = Mid(STR(CurrentTime),2,2) 
SEC = Mid(STR(CurrentTime),4,2) 
Else 
If CurrentTime > 9999 Then 
HR  = '0'+Mid(STR(CurrentTime),0,1) 
MIN = Mid(STR(CurrentTime),1,2) 
SEC = Mid(STR(CurrentTime),3,2) 
Else 
If CurrentTime > 999 Then 
HR  = '00' 
MIN = Mid(STR(CurrentTime),0,2) 
SEC = Mid(STR(CurrentTime),2,2) 
Else 
If CurrentTime > 99 Then 
HR  = '00' 
MIN = '0'+Mid(STR(CurrentTime),0,1) 
SEC = Mid(STR(CurrentTime),1,2) 
Else 
If CurrentTime > 9  Then 
HR  = '00' 
MIN = '00'  
SEC = STR(CurrentTime) 
Else 
HR  = '00' 
MIN = '00'  
SEC = '0'+STR(CurrentTime)          
EndIf 
EndIf 
EndIf 
EndIf 
EndIf 
UO.TextPrint(STR(CurrentTime )) 
Return (HR+':'+MIN+':'+SEC)    
End sub 
################## 
### РЕКОНЕКТОР ### 
################## 
Sub Reconnect() 
var ReconnectTime,rFlag 
ReconnectTime='0' 
rFlag=1 
repeat 
while (UO.ObjAtLayer('Bpack')=='') 
If rFlag Then 
ReconnectTime=MakeTime() 
rFlag=0 
EndIf 
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' 
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 Terminate() 
UO.Print("Mining script: Off!") 
UO.DeleteJournal() 
UO.Exec('terminate all') 
wait(100) 
UO.Exec('terminate all') 
wait(100) 
UO.Exec('terminate all') 
wait(100) 
End sub

Етот скрипт работает но,когда обкопает чучуть вокруг себя и начинает копать под собой,пишет что нельзя типа копать под собой,может ето на шарде у нас так а может чтото нетак в скриптею. Подправте плиз ?? Спасибо
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

попробуй в ручную под собой копнуть. что пишет в этот момент?
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
Saigon
Posts: 7
Joined: 2007-04-19 16:47:21

Post by Saigon »

Code: Select all

You cannot mine so close to yourself ,это копнул вручную под себя.     
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Code: Select all

################## 
### Переменные ### 
################################################################################################### 
var Reconnect=0 ##  1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.(не проверял работает или нет с этим скриптом) 
### 
var Food=1 ## - Кушать после сброса руды или нет? 1 - да, 0 - нет. 
### 
var Status=0 ## - Статус руды, показывает скока накопали (для опытных скриптёров) 1 - да, 0 - нет. 
### 
var Chest='0x416ED746' ## - ID сундука куда будут выгружаться руду, где должны лежать реги и еда. 
### 
var TypeFood='0x160A' ## - Type еды которую будем кушать.(сейчас фиштейки) 
### 
var CountReg=20 ## - Кол-во регов для подзарядки. 
### 
var OreQty=600 ## - Максимальный вес при котором домой с рудой 
### 
var maxjamp=8 ## - Для рекола (изменять не нужно) 
var rune=1    ## - Для рекола (изменять не нужно) 
################################################################################################### 
### Wait - Ждёт сообшения после замаха кирки, чтобы повторить.                                   ## 
### Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать.                   ## 
################################################################################################### 
var Wait1="You put" 
var Wait2="heavy" 
var Wait3="location" 
var Wait4="no ore" 
var Wait5="but fail" 
var Wait6="far away" 
var Wait7="in rock" 
var Wait8="You can't" 
var Wait9="nothing here" 
var Wait10="You have found some" 
### 
var Fizzle1="There is nothing here to mine for." 
var Fizzle2="You can't use the" 
var Fizzle3="Try mining elsewhere." 
var Fizzle4="location"
var Fizzle5="You cannot mine so close to yourself"
################################################################################################### 
################# 
### Включалка ### 
################# 
sub Start() 
If    UO.GetGlobal('Maningcheck')=='on' Then 
   UO.SetGlobal('Maningcheck','off') 
   UO.Exec('Exec Terminate') 
Else 
   UO.Exec('Exec Maning') 
   UO.SetGlobal('Maningcheck','on') 
EndIf 
End sub 
############### 
### Майнинг ### 
############### 
Sub Maning() 
var Mine=1 
UO.print('!!!SELECT YOU PICKAXE!!!') 
UO.exec('addobject Shovel') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('!!!SELECT YOU RUNE TO HOME!!!') 
UO.exec('addobject Home') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (1)') 
UO.exec('addobject Mine1') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (2)') 
UO.exec('addobject Mine2') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (3)') 
UO.exec('addobject Mine3') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (4)') 
UO.exec('addobject Mine4') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (5)') 
UO.exec('addobject Mine5') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (6)') 
UO.exec('addobject Mine6') 
while UO.targeting() 
wait(100) 
wend 

wait(1000) 
UO.print('SELECT YOU RUNE TO MINE (7)') 
UO.exec('addobject Mine7') 
while UO.targeting() 
wait(100) 
wend 

If Reconnect==1 Then 
UO.Exec('Exec Reconnect') 
EndIf 
############################## 
### Копаем руду возле себя ### 
############################## 
If Mine==1 Then 
REPEAT 
JumpToRune() 
GetOre() 
wait(2000) 
Until UO.Dead() 
End sub 

Sub GetOre() 
var CheckTime 
var mx, my, mz, i, j 
mx = UO.GetX("self") 
my = UO.GetY("self") 
mz = UO.GetZ("self") 
for i = mx-2 to mx+2 
for j = my-2 to my+2 
ToHide() 
UO.Print("Get Coordinate: "+str(mx-i)+' '+str(my-j)) 
If UO.waiting() Then 
UO.canceltarget() 
EndIf 
REPEAT 
If UO.weight >= OreQty Then 
ToRecall() 
EndIf 
ToHide() 
UO.Waittargettile("1341",str(i),str(j),str(mz)) 
UO.Useobject("Shovel") 
CheckTime=UO.Timer() 
UO.DeleteJournal() 
REPEAT 
wait(300) 
Until UO.InJournal(Wait1) or UO.InJournal(Wait2) or UO.InJournal(Wait3) or UO.InJournal(Wait4) or UO.InJournal(Wait5) or UO.InJournal(Wait6) or UO.InJournal(Wait7)  or UO.InJournal(Wait8) or UO.InJournal(Wait9) or UO.InJournal(Wait10) or CheckTime+200<uo.Timer() or UO.Dead() 
Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.InJournal(Fizzle5) or UO.Dead() 
If UO.weight >= OreQty Then 
ToRecall() 
EndIf 
Next 
Next 
End sub 
################### 
### Рекол домой ### 
################### 
Sub ToRecall() 
RecallToHome() 
ToHide() 
DropOre() 
CheckReg() 
If Food==1 Then 
ToEat() 
EndIf 
If Status==1 Then 
InfoOre() 
EndIf 
BackToMine() 
End sub 
######################################################## 
### Система реколов по рунам (с проверкой на прыжки) ### 
######################################################## 
Sub JumpToRune() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
RecallMana() 
If rune==maxjamp Then 
rune=1 
EndIf 
UO.Print("Go to Mine: "+str(rune)) 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
If UO.getx()==mx and UO.gety()==my Then 
REPEAT 
x=x+1 
RecallMana() 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() 
EndIf 
CheckMark() 
rune=rune+1 
End sub 

Sub BackToMine() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
If rune==1 Then 
rune=2 
EndIf 
rune=rune-1 
RecallMana() 
UO.Print("Go back to Mine: "+str(rune)) 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
If UO.getx()==mx and UO.gety()==my Then 
REPEAT 
x=x+1 
RecallMana() 
UO.Cast('Recall',runes[rune]) 
Wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead() 
EndIf 
CheckMark() 
rune=rune+1 
End sub 

Sub CheckMark() 
dim runes[7] 
runes[1]='Mine1' 
runes[2]='Mine2' 
runes[3]='Mine3' 
runes[4]='Mine4' 
runes[5]='Mine5' 
runes[6]='Mine6' 
runes[7]='Mine7' 
If UO.InJournal('The recall rune is starting to fade') Then 
UO.print("Mark Rune: "+str(rune)) 
REPEAT 
UO.DeleteJournal() 
MarkMana() 
UO.Cast('Mark',runes[rune]) 
wait(5000) 
Until NOT UO.InJournal('The spell fizzles') or UO.Dead() 
UO.DeleteJournal() 
EndIf 
End sub 
####################################################### 
### Реколимся домой по рунам (с проверкой на прыжки) ## 
####################################################### 
Sub RecallToHome() 
var x=0 
var mx, my 
mx = UO.GetX("self") 
my = UO.GetY("self") 
REPEAT 
x=x+1 
RecallMana() 
UO.Print('Go to Home') 
UO.Cast('Recall','Home') 
wait(5000) 
Until UO.getx()<>mx and UO.gety()<>my or (x==3) or UO.Dead() 
If UO.InJournal('The recall rune is starting to fade') Then 
UO.print("Mark Rune") 
REPEAT 
UO.DeleteJournal() 
MarkMana() 
UO.Cast('Mark','Home') 
wait(5000) 
Until NOT UO.InJournal('The spell fizzles') or UO.Dead() 
UO.DeleteJournal() 
EndIf 
End sub 
#################################### 
### Выкладываем руду в контейнер ### 
#################################### 
Sub DropOre() 
If UO.waiting() Then 
UO.canceltarget() 
EndIf 
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 or UO.Dead() 
Next 
UO.UnSetReceivingContainer() 
End sub 
##################################### 
### Проверяем кол-во регов в паке ### 
##################################### 
Sub CheckReg() 
If UO.MR <= 10 or UO.BM <= 10 or UO.BP <= 10 Then 
UO.Print("!!!Download Regs!!!") 
UO.SetReceivingContainer('backpack') 
UO.UseObject(Chest) 
wait(5000) 
UO.FindType('0x0F86','-1',Chest) ; MR 
UO.Grab(STR(CountReg-UO.MR),'finditem') 
wait(5000) 
UO.FindType('0x0F7B','-1',Chest) ; BM 
UO.Grab(STR(CountReg-UO.BM),'finditem') 
wait(5000) 
UO.FindType('0x0F7A','-1',Chest) ; BP 
UO.Grab(STR(CountReg-UO.BP),'finditem') 
wait(5000) 
UO.UnsetReceivingContainer() 
UO.Print("!!!Download Regs: Done!!!") 
EndIf 
End sub 
########################################## 
### Берём хавку из контейнера и кушаем ### 
########################################## 
Sub ToEat() 
UO.UseObject(Chest) 
wait(5000) 
UO.FindType(TypeFood,'-1',Chest) 
If UO.FindCount() > 0 Then 
UO.SetReceivingContainer('backpack') 
UO.Grab('25','finditem') 
wait(2000) 
REPEAT 
UO.UseType(TypeFood) 
wait(1000) 
Until UO.InJournal('You are simply too full to eat any more!') or UO.Dead() 
Else 
UO.print("!!! Not Food !!!") 
EndIf 
DropFood() 
End sub 

Sub DropFood() 
var f,Exit 
dim Food[1] 
Food[0]=TypeFood 
If UO.Waiting() Then 
UO.CancelTarget() 
EndIf 
UO.SetReceivingContainer(Chest) 
for f=0 to 0 
Exit=0 
repeat 
UO.FindType(Food[f]) 
If UO.GetQuantity('finditem') > 0 Then 
UO.Grab('0','finditem') 
wait(1500) 
Else 
Exit=1 
EndIf 
Until Exit==1 or UO.Dead() 
next 
UO.UnsetReceivingContainer() 
End sub 
#################################### 
### Проверяем ману перед кастами ### 
#################################### 
Sub RecallMana() 
If UO.mana <= 11 Then 
UO.print('!!!Meditation!!!') 
UO.Exec('warmode 0') 
wait(1000) 
REPEAT 
UO.UseSkill('Meditation') 
wait(15000); 15 секунд медетируем. 
Until UO.mana > 50 or UO.Dead() 
EndIf 
End sub 

Sub MarkMana() 
If UO.mana <= 17 Then 
UO.print('!!!Meditation!!!') 
UO.Exec('warmode 0') 
wait(1000) 
REPEAT 
UO.UseSkill('Meditation') 
wait(15000); 15 секунд медетируем. 
Until UO.mana > 50 or UO.Dead() 
EndIf 
End sub 
####################### 
### Прячимся в хайд ### 
####################### 
Sub ToHide() 
var CheckTime 
while NOT UO.Hidden() 
UO.Print('Hidden...') 
UO.Exec("warmode 0") 
wait(1000) 
UO.UseSkill('Stealth') 
CheckTime=UO.Timer() 
REPEAT 
wait(300) 
Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead() 
Wend 
End sub 
################################### 
### Смотрим скока накопали руды ### 
################################### 
Sub InfoOre() 
var LogsTime=PrintTime() 
UO.FindType('0x1BDD','-1',Chest) 
UO.TextOpen() 
UO.TextPrint('#####################') 
UO.TextPrint('## Время: '+LogsTime+' ##') 
UO.TextPrint('#####################') 
UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest))) 
UO.TextPrint('Rose Ore: '+STR(GetAmount('0x19B9','0x0665',Chest))) 
UO.TextPrint('Golden Ore: '+STR(GetAmount('0x19B9','0x084D',Chest))) 
UO.TextPrint('Orion Ore: '+STR(GetAmount('0x19B9','0x048A',Chest))) 
UO.TextPrint('Dwarf Ore: '+STR(GetAmount('0x19B9','0x0488',Chest))) 
UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0482',Chest))) 
UO.TextPrint('Shadow Ore: '+STR(GetAmount('0x19B9','0x0770',Chest))) 
UO.TextPrint('Valorite Ore: '+STR(GetAmount('0x19B9','0x0515',Chest))) 
UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0487',Chest))) 
UO.TextPrint('Magma Ore: '+STR(GetAmount('0x19B9','0x0486',Chest))) 
UO.TextPrint('Obsidian Ore: '+STR(GetAmount('0x19B9','0x0485',Chest))) 
UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x048D',Chest))) 
UO.TextPrint('#####################') 
End sub 

Sub GetAmount(Type, Color, Cont) 
Var item_amount = 0 
UO.IgnoreReset() 
Repeat 
UO.FindType(Type, Color, Cont) 
If UO.FindCount() > 0 Then 
If UO.GetQuantity('finditem')==0 Then 
item_amount = item_amount + 1 
Else 
item_amount = item_amount + UO.GetQuantity('finditem') 
EndIf 
UO.Ignore('finditem') 
UO.FindType(Type, Color, Cont) 
EndIf 
Until UO.FindCount() < 1 or UO.Dead() 
UO.IgnoreReset() 
Return item_amount 
End sub 

Sub PrintTime() 
Var HR  = '' 
Var MIN = '' 
Var SEC = '' 
Var CurrentTime = UO.Time()  
If CurrentTime>99999 Then 
HR  = Mid(STR(CurrentTime),0,2) 
MIN = Mid(STR(CurrentTime),2,2) 
SEC = Mid(STR(CurrentTime),4,2) 
Else 
If CurrentTime > 9999 Then 
HR  = '0'+Mid(STR(CurrentTime),0,1) 
MIN = Mid(STR(CurrentTime),1,2) 
SEC = Mid(STR(CurrentTime),3,2) 
Else 
If CurrentTime > 999 Then 
HR  = '00' 
MIN = Mid(STR(CurrentTime),0,2) 
SEC = Mid(STR(CurrentTime),2,2) 
Else 
If CurrentTime > 99 Then 
HR  = '00' 
MIN = '0'+Mid(STR(CurrentTime),0,1) 
SEC = Mid(STR(CurrentTime),1,2) 
Else 
If CurrentTime > 9  Then 
HR  = '00' 
MIN = '00'  
SEC = STR(CurrentTime) 
Else 
HR  = '00' 
MIN = '00'  
SEC = '0'+STR(CurrentTime)          
EndIf 
EndIf 
EndIf 
EndIf 
EndIf 
UO.TextPrint(STR(CurrentTime )) 
Return (HR+':'+MIN+':'+SEC)    
End sub 
################## 
### РЕКОНЕКТОР ### 
################## 
Sub Reconnect() 
var ReconnectTime,rFlag 
ReconnectTime='0' 
rFlag=1 
repeat 
while (UO.ObjAtLayer('Bpack')=='') 
If rFlag Then 
ReconnectTime=MakeTime() 
rFlag=0 
EndIf 
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' 
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 Terminate() 
UO.Print("Mining script: Off!") 
UO.DeleteJournal() 
UO.Exec('terminate all') 
wait(100) 
UO.Exec('terminate all') 
wait(100) 
UO.Exec('terminate all') 
wait(100) 
End sub
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
Saigon
Posts: 7
Joined: 2007-04-19 16:47:21

Post by Saigon »

Code: Select all

Спасибо,а ты мне скажы что ты изменил??
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Прочитал описание

Code: Select all

Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать
Присвоил имя сообщению

Code: Select all

var Fizzle5="You cannot mine so close to yourself"
Добавил условие

Code: Select all

Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.InJournal(Fizzle5) or UO.Dead()
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
Saigon
Posts: 7
Joined: 2007-04-19 16:47:21

Post by Saigon »

Code: Select all

Спасибо тебе теперь все ок! 
Post Reply