Page 1 of 1

Фишинг

Posted: 2005-03-25 14:13:44
by Leo
Есть такой скрипт

Code: Select all

VAR Cont1 = '0x401AA0F9' ;сейф, где будут карты(id) 
VAR Runebook = '0x400C617E';руннбука(id) 
VAR Rune = '0x401F27EC' ;рунка к безопасмному месту(id) 
VAR pole = '0x0DBF' ;удочка(type) 
VAR foodT = '0x097B' ;еда(type) 
VAR walkwait=500 
var inWalk=1, inFishing=0 
var time, k=0, oldX, oldY, fizl=0, control=8, cel='', glX, glY, whGo=1, whRecall=1. 

sub main() 
DIM xM[4] 
xM[1] = 1053 
xM[2] = 1052 
xM[3] = 1065 
DIM yM[4] 
yM[1] = 3501 
yM[2] = 3475 
yM[3] = 3463 
var x, y, z=UO.GetZ("self") 
DIM text[8] 
text[1] = 'Tattered treasure' 
text[2] = 'You pull out a' 
text[3] = 'You fish a while' 
text[4] = 'That is too far away' 
text[5] = 'Try fishing in water' 
text[6] = 'There are no fish here' 
text[7] = 'location' 
UO.Set('finddistance','20') 
if UO.GetX()<>1053 OR UO.GetY()<>3501 then 
RunebookRecall(whRecall) 
endif 
While True 
if whGo<3 then 
whGo=whGo+1 
else 
whGo=1 
endif 
for x=-6 to 6 
for y=-6 to 6 
inFishing=0 
Repeat 
GoHome(0) 
UO.DeleteJournal() 
Careful() 
ToHide() 
UO.WaitTargetTile("1341",STR(UO.GetX()+x),STR(UO.GetY()+Y),z) 
UO.UseType(pole) 
time=UO.Timer() 
Repeat 
wait(500) 
Until UO.InJournal(text[2]) OR UO.InJournal(text[3]) OR UO.InJournal(text[4]) OR UO.InJournal(text[5]) OR UO.InJournal(text[6]) OR UO.InJournal(text[7]) OR UO.Timer()>time+250 
if UO.InJournal(Text[2]) then 
fizl=0 
endif 
if UO.InJournal(text[3]) then 
fizl=fizl+1 
endif 
if fizl==control then 
wait(8000) 
fizl=0 
FastLootCheck() 
endif 
if NOT (UO.InJournal(text[1]) OR UO.InJournal(text[3])) then 
inFishing=1 
else 
if UO.InJournal(text[1]) then 
Find() 
endif 
endif 
Food() 
Until inFishing==1 
next 
next 
if inWalk==1 then 
Walk(xM[whGo],yM[whGo],'') 
else 
if whRecall<3 then 
whRecall=whRecall+1 
else 
whRecall=1 
inWalk=1 
endif 
RunebookRecall(whRecall) 
endif 
Wend 
end sub 

sub ToHide() 
while NOT UO.Hidden() 
UO.DeleteJournal() 
UO.Exec('warmode 0') 
UO.UseSkill('Stealth') 
wait(2000) 
time=UO.Timer() 
repeat 
wait(500) 
until UO.InJournal('You have hidden') OR UO.InJournal('seem to') OR UO.InJournal('preoccupied') OR time+200<UO.Timer() 
Careful() 
wend 
end sub 

sub Careful() 
var count=0 
UO.IgnoreReset() 
UO.Ignore('self') 
UO.FindType('0x0190',-1,1) 
count=UO.FindCount() 
UO.FindType('0x0191',-1,1) 
count=count+UO.FindCount() 
if count>0 then 
RuneRecall() 
if whRecall<3 then 
whRecall=whRecall+1 
inWalk=0 
else 
whRecall=1 
inWalk=1 
endif 
GoHome(1) 
endif 
end sub 

sub Find() 
UO.Set('finddistance','2') 
DIM find[2] 
find[1] = '0x14EB' ;tattered map 
UO.Set('finddistance','2') 
UO.Findtype(find[1],-1,1) 
if UO.FindCount()>0 then 
UO.MoveItem('finditem',0,'backpack') 
endif 
UO.Set('finddistance','20') 
end sub 

sub GoHome(level) 
DIM razg[2] 
razg[1] = '0x14EB' ;tattered map 
if UO.Count(razg[1])>20 OR UO.Weight>UO.STR*4 OR level==1 then 
RunebookRecall(4) 
While UO.Count(razg[1])>0 
UO.FindType(razg[1],-1,-1) 
UO.MoveItem('finditem',0,Cont1) 
FastLootCheck() 
Wend 
RunebookRecall(whRecall) 
endif 
end sub 

sub CheckLag() 
UO.DeleteJournal() 
UO.Click('backpack') 
Repeat 
wait(200) 
Until UO.InJournal('backpack') 
end sub 

sub FastLootCheck() 
UO.DeleteJournal() 
wait(500) 
if UO.InJournal("FastLoot") OR UO.InJournal("World save") then 
CheckLag() 
endif 
end sub 

sub Food() 
if k==100 then 
UO.DeleteJournal() 
repeat 
UO.UseType(foodT) 
wait(500) 
until UO.InJournal('simply too full') 
k=1 
else 
k=k+1 
endif 
end sub 

sub RuneRecall() 
oldX=UO.GetX() 
oldY=UO.GetY() 
Repeat 
UO.DeleteJournal() 
UO.WaitTargetObject(Rune) 
UO.UseType('0x1F4C') 
time=UO.Timer() 
Repeat 
wait(500) 
Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR UO.InJournal('The spell fizzles') OR time+200<UO.Timer() 
Until oldX<>UO.GetX() and oldY<>UO.GetY() 
end sub 

sub RunebookRecall(n) 
oldX=UO.GetX() 
oldY=UO.GetY() 
UO.UseObject(Runebook) 
FastLootCheck() 
UO.LClick(135, n*15+55) 
time=UO.Timer() 
Repeat 
wait(500) 
Until oldX<>UO.GetX() OR oldY<>UO.GetY() OR time+200<UO.Timer() 
end sub 

sub Walk(x,y,Target) 
VAR Step, dX, dY, Exit=0, dirW=0, result 
While Exit<>1 
if Target<>"" then 
cel=Target 
dX=UO.GetX(Target)-UO.GetX() 
dY=UO.GetY(Target)-UO.GetY() 
if UO.GetDistance(Target)<2 then 
Exit=1 
endif 
else 
dX=x-UO.GetX() 
dY=y-UO.GetY() 
glX=dX 
glY=dY 
if dX==0 AND dY==0 then 
Exit=1 
endif 
endif 
if Exit==0 then 
if dX>0 AND dY>0 then 
dirW=9 ;number 2 
endif 
if dX>0 AND dY<0 then 
dirW=7 ;number 6 
endif 
if dX<0 AND dY>0 then 
dirW=3 ;number 4 
endif 
if dX<0 AND dY<0 then 
dirW=5 ;number 8 
endif 
if dX<>0 AND dY==0 then 
if dX>0 then 
dirW=8 ;number 3 
else 
dirW=4 ;number 7 
endif 
endif 
if dX==0 AND dY<>0 then 
if dY>0 then 
dirW=2 ;number 1 
else 
dirW=6 ;number 9 
endif 
endif 
result=Go(dirW) 
if result==0 then 
result=Go(dirW-2) 
if result==0 then 
result=Go(dirW+2) 
endif 
endif 
endif 
Wend 
endsub 

sub Go(dir) 
var xGo, yGo, check=1, dirStart=UO.GetDir() 
xGo=UO.GetX() 
yGo=UO.GetY() 
DIM key[12] 
key[0] = 34 ;number 3 
key[1] = 40 ;number 2 
key[2] = 35 ;number 1 
key[3] = 37 ;number 4 
key[4] = 36 ;number 7 
key[5] = 38 ;number 8 
key[6] = 33 ;number 9 
key[7] = 39 ;number 6 
key[8] = 34 ;number 3 
key[9] = 40 ;number 2 
key[10] = 35 ;number 1 
key[11] = 37 ;number 4 
DIM dirS[12] 
dirS[0] = 2 ;number 3 
dirS[1] = 3 ;number 2 
dirS[2] = 4 ;number 1 
dirS[3] = 5 ;number 4 
dirS[4] = 6 ;number 7 
dirS[5] = 7 ;number 8 
dirS[6] = 0 ;number 9 
dirS[7] = 1 ;number 6 
dirS[8] = 2 ;number 3 
dirS[9] = 3 ;number 2 
dirS[10] = 4 ;number 1 
dirS[11] = 5 ;number 4 

While UO.GetDir()<>dirS[dir] 
UO.Press(key[dir]) 
wait(walkwait) 
if UO.GetDir()==dirStart then 
CheckLag() 
endif 
if (cel<>"" AND UO.GetDistance(cel)<2) OR (glX==0 AND glY==0) then 
return 1 
endif 
Wend 

UO.Press(key[dir]) 
wait(walkwait) 
if xGo==UO.GetX() AND yGo==UO.GetY() then 
CheckLag() 
UO.Press(key[dir]) 
wait(walkwait) 
endif 
if xGo==UO.GetX() AND yGo==UO.GetY() then 
return 0 
else 
return 1 
endif 
end sub 
Просьба убрать из этого скрипта реколл.

Posted: 2005-03-25 23:38:05
by Sfagnum
убираешь код и всякое кпоминание ф-ий
sub RuneRecall()
sub RunebookRecall(n)

Posted: 2005-03-26 10:51:14
by Leo
Спасибо.