Page 1 of 1

Копание ввипке

Posted: 2005-05-28 09:32:21
by Stainless
Юзал поиск, и скал в ручную но подходящего скрипта не нашёл, поэтому у меня есть последний шанс чтоб вы помогли переделать скрипт. Он хорош для меня тем что он складывает руду в мешок который в сундуке. - этого скрипта заключаеться втом что он копает всё что видит и не киляет элемов.... Надо чтоб чар переходил к другой точки копания при выкапывании руды от айрона до купера. (Как во всех скриптах Ветера) это я и прошу вавс изменить в моём скрипте... Сам я тоже пытался это сделать... Хотел как лучше а получилось как всегда...
Вот и сам скрипт:

Code: Select all

######################### 
#### GooD VIPMining ##### 
###### Crafted by ####### 
#### Coal aka Brona ##### 
## All rights reserved ## 
## Copyright by Guild of Black Sun [GoBS] - DRW## 
######################### 

sub Mining() 
VAR MaxWeight=600 ; vash maksimal'niy ves 
VAR UnloadBox='0x4013D973' ; ID containera 
VAR UnloadBag='0x4034A24E' ; ID Meshka 
VAR Lopata='0x40339433' ; ID kirki&lopati 
VAR Timer=0 
  
VAR MyX, MyY, MyZ, i, j 
  
MyX = UO.GetX() 
MyY = UO.GetY() 
MyZ = UO.GetZ() 
  
ToHide() 
Wait(1000) 
While NOT UO.Dead() 
For i = MyX-4 to MyX+4 
For j = MyY-4 to MyY+4 
  
UO.DeleteJournal() 
UO.Print("Now Mining In: "+str(MyX-i)+" "+str(MyY-j)) 
While NOT UO.InJournal("no ore") AND NOT UO.InJournal("far away") AND NOT UO.InJournal("in rock")# AND NOT UO.InJournal("Iron") AND NOT UO.InJournal("Copper") AND NOT UO.InJournal("Bronze") AND NOT UO.InJournal("Rusty") AND NOT UO.InJournal("no line") AND NOT UO.InJournal("Elemental") 
CheckLag() 
ToHide() 
UO.DeleteJournal() 
UO.WaitTargetTile("6044", str(i), str(j), str(MyZ)) 
UO.UseObject(Lopata) 
  
Timer=0 
While NOT UO.InJournal("You put") AND NOT UO.InJournal("but fail") AND NOT UO.InJournal("no ore") AND NOT UO.InJournal("far away") AND NOT UO.InJournal("in rock") AND NOT UO.InJournal("no line") AND NOT UO.InJournal("Elemental") AND NOT Timer>=600 
Wait(500) 
Timer=Timer+1 
Wend 
  
If UO.InJournal('Elemental') then 
repeat 
  
While NOT UO.Hidden() 
UO.DeleteJournal() 
UO.Exec('warmode 0') 
UO.UseSkill('Stealth') 
Repeat 
Wait(100) 
Until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') OR UO.Dead() 
Wend 
  
  
wait(1000) 
uo.set("finddistance","22") 
  
uo.ignorereset() 
uo.findtype("0x0010","-1","ground") 
  
UO.DeleteJournal() 
  
until NOT uo.findcount() 
  
UO.DeleteJournal() 
EndIf 
  
If UO.Weight>MaxWeight then 
WalkN(0,0,UnloadBox) 
Unload(UnloadBag) 
WalkN(MyX,MyY,'') 
Endif 
Wend 
Next 
Next 
Wend 
end sub 
  
sub Unload(UnloadBox) 
VAR Exit,i 
DIM Ore[4] 
Ore[0]='0x19B7' ; 1 ore 
Ore[1]='0x19BA' ; 2 ore 
Ore[2]='0x19B8' ; 3 ore 
Ore[3]='0x19B9' ; 4 and more ore 
UO.SetReceivingContainer(UnloadBox) 
ToHide() 
For i=0 to 3 
Exit=0 
While Exit<>1 
UO.FindType(Ore[i]) 
If UO.GetQuantity('finditem')>0 then 
UO.Grab('all','finditem') 
CheckLag() 
Wait(1000) 
Else 
Exit=1 
Endif 
Wend 
Next 
UO.UnSetReceivingContainer() 
end sub 
  
sub ToHide() 
While NOT UO.Hidden() 
UO.DeleteJournal() 
UO.Exec('warmode 0') 
UO.UseSkill('Stealth') 
Repeat 
Wait(100) 
Until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') OR UO.Dead() 
Wend 
end sub 
  
sub CheckLag() 
UO.DeleteJournal() 
UO.Click('backpack') 
repeat 
Wait(50) 
until UO.InJournal('backpack') 
end sub 
  
#=================================================   ============= 
# WalkN(X,Y,Serial) - char is walking by dX and dY step 
# sub using Home, End, PgUp, PgDown keys 
# d'not rebind this key from default action! 
# serial - Serial of target or "" - string 
# walkwait - delay after keypress 
# Example: 
# WalkN(2080,2113,'') - go to coordinates 
# WalkN(0,0,'0x12345678') - go to target position 
#-------------------------------------------------------------- 
sub WalkN(x,y,Target) 
VAR i,StepSucess 
VAR dx,dy,Exit=0 
  
While Exit<>1 
ToHide() 
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() 
  
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("Palevo!") 
return -1 
Else 
return 1 
Endif 
end sub 
  
  
#=================================================   ============= 
# Healing() - memoryzed current weapon, bandageself, armed 
#-------------------------------------------------------------- 
sub Healing() 
UO.SetArm('CWeapon') 
UO.Exec("bandageself") 
wait(500) 
UO.Arm('CWeapon') 
end sub 
  
#=================================================   ============= 
# Recconector 
#-------------------------------------------------------------- 
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

Code: Select all

Блин неужели это сложно?
[code]
...
Ну научитесь вы юзать теги!
I'm
[/code]

Posted: 2005-05-28 11:02:37
by I'm
Я думаю тебе надо рыть строки с:

Code: Select all

no ore
you put
...
Изменить сообщения и добавить те что попадаются в журнале.

Posted: 2005-05-28 13:34:16
by Stainless
Ок........ ты можешь поподробней описать чё мне надо сделать....
И можешь ли ты добавиь в него убийства Элемов...

Posted: 2005-05-30 11:27:10
by I'm
Дописываеш условие

Code: Select all

NOT UO.InJournal("iron") 
NOT UO.InJournal("copper")
к остальным сообщениям :) поэксперементируй куда ;)
как ты намерен убивать элема?

Posted: 2005-05-30 11:28:36
by I'm
Посмотри скрипт от Savage я думаю на какиенить мысли он теюя натолкнет.