Помогите поправить скрипт на мининг

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Помогите поправить скрипт на мининг

Post by Jekaaa »

Доброго времени суток! Ув. форумчани помогите пожалуйста немного поправить скрипт. Суть в том что в данном скрипте он копает под собой, а на сервере где я играю копать под собой нельзя... Нужно что бы она также передвигался но копал таил рядом а не вставал на таил и пытался копать. Надеюсь это не сложно... Заранее благодарен! Вот собственно скрипт.

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
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите поправить скрипт на мининг

Post by Mirage »

когда копаешь под собой какое сообщение?
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Помогите поправить скрипт на мининг

Post by ZeroDX »

Да полюбасу что-то типо "Под себя копать нельзя" :lol:
Jekaaa
Posts: 89
Joined: 2008-12-12 04:30:22

Re: Помогите поправить скрипт на мининг

Post by Jekaaa »

You cannot mine so close to yourself.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Помогите поправить скрипт на мининг

Post by Mirage »

Вполне достаточно:
var msg3='Тут ничего нету|close to yourself'

PS # Antares Земляк? :roll: :mrgreen:
Post Reply