Народ, кто может помочь, плз...очень надо, короче скрипт отличный, но тока когда хочу замарчить координаты у скалы, нифига не марчит их, хотя в шахте всё отлично работает, кто знает в чём дело?
Плиз помогите
Code: ######################################################### ### Mining Mountains / Êîïàíèå ñêàëë v5.1.7 Full ### ######################################################### ### Øàðä Dragon World / www.drw.ru ### ######################################################### ################## ### Ïåðåìåííûå ### ################## ################################################################################ ################### var f=file('C:\ore.dat') ## - Ïóòü ê ôàéëó â êîòîðîì áóäóò õðàíèòñÿ ### êîîðäèíàòû ãäå êîïàòü. ### var TryHiding=1 ## 1 - Ïåðåä òåì êàê êîïàòü ðóäó, áóäåò ïûòàòüñÿ óéòè â õàéä, ### 0 - íå áóäåò . ### var TryRecall=1 ## 1 - Ïîñëå òîãî êàê ñîáåðåò äîñòàòî÷íûé âåñ, áóäåò ïûòàòüñÿ ### ðåêîëèòüñÿ äîìîé, ### ñêëàäûâàòü ðóäó â ñóíäóê è ðåêîëèòüñÿ îáðàòíî , 0 - íå áóäåò.(DropOnVip ### äîëæíî áûòü 0) ### var GetFromFile=0 ## 1 - Êîîðäèíàòû ãäå êîïàòü áóäóò ñ÷èòûâàòñÿ èç ôàéëà, 0 - ### ñîáèðàòñÿ èç êëèåíòà ### (ñíà÷àëà ñîáåðèòå à ïîòîì ñ÷èòûâàéòå èç ôàéëà). ### var OreQty=250 ## - Ìàêñèìàëüíûé âåñ, äîáûâ êîòîðûé íàäî ðåêîëèòüñÿ äîìîé. ### (ñåé÷àñ 600 ñòîóíîâ) ### var ControlOfDanger=1 ## 1 - Âêëþ÷èòü ðåêîë ïî ðóíå(â ïàêå) ïðè àòàêå, 0 - ### îòêëþ÷èòü ðåêîë. ### var ElementalKill=0 ## 1 - Âûëþ÷èòü êèëë ýëåìåíòàëà, 0 - îòêëþ÷èòü(ðåêîë). ### var DangerousTime=70000 ## - Âðåìÿ â ñåêóíäàõ êîòîðîå ÷àð áóäåò æäàòü(ïîñëå ### ðåêîëà) ïîêà óéäåò ÏÊ èëè Ýëåìåíò.(ñåé÷àñ 50 ñåêóíä) ### var CycleScript=1 ## 1 - Ñêðèïò íå îòêëþ÷àåòñÿ ïîñëå ðåêîëà îò àòàêóþùåãî, 0 - ### îòêëþ÷àåòñÿè çàêðûâàåò UO. ### var Reconnect=1 ## 1 - Âêëþ÷èòü ðåêîííåêò íà ñåðâåð åñëè âûêèíåò, 0 - îòêëþ÷èòü ### ðåêîííåêò. ### var DisturbingSound=('C:\ding.wav') ## - Çâóê êîòîðû áóäåò ïðèãðàí ïðè àòàêå. ### (çàìåíèòå íà ñâîé) ### var RecallDrop=1 ## 1 - Âêëþ÷èòü ðåêîë ïîñëå ïîáåãà îò åíòà äîìîé è âûëîæèòü ëîãè, 0 -âûêëþ÷èòü. ### var DropY=566 ## - Êîîðäèíàòà ïåðåä ñóíäóêîì ïî Y. ### var oldX,oldY,time ## - Äëÿ ðåêîëà. ### var Pickaxe='0x0e85' ################################################################################ ################### ### ### Ïîñëå íàñòðîéêè: ### Èäèòå â ìåñòî ãäå áóäåì êîïàòü. ### Çàïóñòèòå cêðèïò GoMining(), èíæåêò ïîïðîñèò âàñ óêàçàòü Êèðêó(ïîÿâèòñÿ ### ïðèöåë, ïðèöåëîì íà íå¸), ### Ðóíáóê(ïîÿâèòñÿ ïðèöåë, ïðèöåëîì íà íåãî) ,Ðóíó(ïðèöåëîì íà íåå) è Ñóíäóê ### äëÿ ëîãîâ. ### Ïîñëå ýòîãî ÷àð ïîéäåò ïî êîîðäèíàòàì è áóäåò êîïàòü ðóäó. ########### ### Êîä ### ########### sub GoMining()
if Reconnect==1 then uo.Exec('exec Reconnect') end if
if ControlOfDanger==1 then uo.Exec('exec ControlOfDanger') end if
uo.Exec('exec Mining') end sub
sub Mining() var i=0,j=0,k=0,r=0,q=0,ii,jj var TopX=324,TopY=65 dim OreX[5000],OreY[5000],OreT[5000] dim OreTile[27] var flag=0,OreCount=0,clicks=0,flag2=0 #################### ### Ãðàôèêà ðóäû ### #################### OreTile[0]=1339 OreTile[1]=1355 OreTile[2]=1354 OreTile[3]=1359 OreTile[4]=1358 OreTile[5]=1357 OreTile[6]=1352 OreTile[7]=1341 OreTile[8]=1363 OreTile[9]=1359 OreTile[10]=1339 OreTile[11]=1354 OreTile[12]=1386 OreTile[13]=1353 OreTile[14]=2278 OreTile[15]=2282 OreTile[16]=2281 OreTile[17]=2277 OreTile[18]=2278 OreTile[19]=2275 OreTile[20]=1351 OreTile[21]=6007 OreTile[22]=6012 OreTile[23]=6004 OreTile[24]=6011 OreTile[25]=6008 OreTile[26]=6003
uo.FilterSpeech('on') uo.FilterSpeech('add', 'Where do you want to use ')
##################################### ### Çàãðóæàåì êîîðäèíàòû èç ôàéëà ### ##################################### if GetFromFile==1 then uo.Print('Çàãðóæàåì êîîðäèíàòû èç ôàéëà...') f.Open() OreCount=safe call f.ReadNumber() for i=1 to OreCount OreT[i]=safe call f.ReadNumber() OreX[i]=safe call f.ReadNumber() OreY[i]=safe call f.ReadNumber() next f.Close() else ###################################### ### Ñîáèðàåì êîîðäèíàòû èç êëèåíòà ### ###################################### uo.Print('Ñîáèðàåì êîîðäèíàòû ðóäû â îêðóãå...') repeat clicks=0 flag=0 uo.DeleteJournal() ####################### ### Êëèêàåì íà òàéë ### ####################### uo.UseType( 0x0e85 ) wait(500) uo.DeleteJournal() while uo.Targeting() wait(100) wend ########################### ### Ïðîâåðÿåì òî ëè ýòî ### ########################### flag=0 for k=0 to 27 if uo.LastTile(0)==OreTile[k]+1 then flag=2 end if next if flag==0 then for k=0 to 27 if uo.LastTile(0)==OreTile[k] then flag=1 end if next end if if uo.Lasttile(1)==uo.GetX() and uo.Lasttile(2)==uo.Gety() then flag=3 end if ######################## ### Êëèêíóëè íà òàéë ### ######################## if flag==1 then flag2=0 if OreCount>0 then for ii=1 to OreCount if OreX[ii]==uo.LastTile(1) and OreY[ii]==uo.LastTile(2) then flag2=1 end if next end if if flag2==0 then OreCount=OreCount+1 OreX[OreCount]=uo.LastTile(1) OreY[OreCount]=uo.LastTile(2) OreT[OreCount]=uo.LastTile(0) uo.Print('Íàéäåíà ðóäà íîìåð '+str(OreCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))) end if end if ##################### ### Êëèêíóëè âûøå ### ##################### if flag==2 then flag2=0 if OreCount>0 then for ii=1 to OreCount if OreX[ii]==uo.LastTile(1) and OreY[ii]==uo.LastTile(2) then flag2=1 end if next end if if flag2==0 then OreCount=OreCount+1 OreX[OreCount]=uo.LastTile(1) OreY[OreCount]=uo.LastTile(2) OreT[OreCount]=uo.LastTile(0)-1 uo.print('Íàéäåíà ðóäà íîìåð '+str(OreCount)+' : x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2))) end if end if until (Flag==3) or (OreCount==5000) uo.FilterSpeech('off') uo.Print('Àíàëèç çàêîí÷åí, êîîðäèíàòû ðóäû çàïèñàíû â ôàéë C:\ore.dat') SaveToFile(OreCount,OreX,OreY,OreT) end if uo.Print('Êîîðäèíàò íàéäåíî: '+str(OreCount)) wait(2000) ###################################### ### Õîäèì ïî ñîáðàííûì êîîðäèíàòàì ### ###################################### while 1==1 if OreCount>0 then for i=1 to OreCount if TryRecall==1 and uo.Weight>250 then ToRecall() end if uo.Print('Èä¸ì ê êîîðäèíàòå ðóäû íîìåð '+str(i)+': x='+str(OreX[i])+' y='+str (OreY[i])) InfoOre() flag=GotoXY(OreX[i],OreY[i]) if flag==1 then if TryHiding==1 then ToHide() end if GetOre(str(OreT[i]),str(OreX[i]),str(OreY[i]),str(uo.GetZ())) end if next end if wend end sub
sub GetOre(Type,X,Y,Z) var i uo.Print('Íà÷èíàåì êîïàòü...') for i=1 to 20 if uo.Warmode()==1 then return 0 end if wait(200) uo.DeleteJournal() CheckLag() wait(100) uo.WaitTargetTile(Type,X,Y,Z) uo.UseType(Pickaxe) wait(500) if WaitForChange()==1 then return 1 end if next return 0 end sub
sub ToRecall() RecallToHome() DropOre() InfoOre() RecallToOre() end sub
sub RecallToHome() var i uo.print('Ðåêîëèìñÿ äîìîé...') for i=1 to 10 uo.deletejournal() uo.waittargetobject(0x403a5efa) uo.cast('Recall') if WaitForRecall()==1 then return 1 end if next return 0 end sub
sub RecallToOre() var i uo.print('Ðåêîëèìñÿ îáðàòíî...') for i=1 to 10 uo.deletejournal() uo.waittargetobject(0x40346396) uo.cast('Recall') if waitForRecall()==1 then return 1 end if next return 0 end sub
sub ToHide() while not uo.Hidden() uo.Print('Ïûòàåìñÿ óéòè â õàéä...') uo.DeleteJournal() uo.UseSkill('Stealth') wait(3000) wend wait(100) end sub
sub WaitForRecall() var Text1=uo.GetName()+": The spell fizzles." var mess='',lastX=uo.getX(),lastY=uo.getY() for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text1 then return 0 end if if uo.getX()<>lastX or uo.getY()<>LastY then return 1 end if wait(50) next return 0 end sub
sub WaitForHide() var Text1=uo.GetName()+": You have hidden yourself well" var Text2=uo.GetName()+": You can't seem to hide here." var mess for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text1 then return 1 end if if uo.Journal(0)==Text2 then return 0 end if wait(50) next return 0 end sub
sub WaitForChange() var Text1=uo.GetName()+': You loosen some rocks but fail to find any useable ore.' var Text2='There is no ore here to mine.' var Text3="You can't reach this." var Text4="That is too far away." var Text5="You can't do much in your current state." var Text6="You have no line of sight to that location" var Text7="You can't see the target" var Text8="Try mining in rock." var mess for var i=0 to 200 mess=uo.Journal(0) if uo.Journal(0)==Text2 or uo.Journal(0)==Text3 or uo.Journal(0)==Text4 or uo.Journal(0)==Text6 or uo.Journal(0)==Text7 or uo.Journal(0)==Text8 then return 1 end if if uo.Journal(0)==Text1 then wait(500) return 0 end if if mess[0]=='Y' and mess[1]=='o' and mess[2]=='u' and mess[4]=='p' and mess[5]=='u' and mess[6]=='t' then return 0 end if wait(50) next return 0 end sub
sub WaitForTarget() for var i=0 to 50 if uo.Targeting()==1 then return 1 end if wait(200) next return 0 end sub
sub WaitForChangeXY(myX,myY,lastX,lastY) for var i=1 to 50 if lastX<>myX or lastY<>myY then return 1 end if wait(200) next return 0 end sub
sub GotoXY(x,y) var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0 for i=1 to 60 myX=uo.getX(); myY=uo.getY(); if LastX==myX and LastY==myY then halt=halt+1 else halt=0 end if if halt>=10 then if uo.GetDir()==1 then for z=0 to 8 uo.Press(40) next end if if uo.GetDir()==3 then for z=0 to 8 uo.Press(37) next end if if uo.GetDir()==5 then for z=0 to 8 uo.Press(38) next end if if uo.GetDir()==7 then for z=0 to 8 uo.Press(39) next end if halt=15 end if if Numb(x-myX)<=1 and Numb(y-myY)<=2 then return 1 end if if x<=myX then if y<=myY then for z=0 to 3 uo.Press(38) next else for z=0 to 3 uo.Press(37) next end if else if y<=myY then for z=0 to 3 uo.Press(39) next else for z=0 to 3 uo.Press(40) next end if end if lastX=myX lastY=myY wait(200) next return 0 end sub
sub Numb(num) if num>=0 then return num else return num*(-1) end if end sub
sub SaveToFile(OreCount,OreX,OreY,OreT) var s=0,i=0 var f=file("D:\ore.dat") f.Open() f.Create() s=safe call f.Writeln(OreCount) for i=1 to OreCount s=safe call f.Writeln(str(OreT[i])+' '+str(OreX[i])+' '+str(OreY[i])) next f.Close() end sub
sub DropOre() ToHide() if uo.Waiting() then uo.CancelTarget() end if var a,Exit dim Ore[14] Ore[0]=0x19B9 Ore[1]=0x19B7 Ore[2]=0x19BA Ore[3]=0x19B8 Ore[4]=0x0F11 Ore[5]=0x0F16 Ore[6]=0x0F18 Ore[7]=0x0F15 Ore[8]=0x0F10 Ore[9]=0x0F0F Ore[10]=0x0F26 Ore[11]=0x0F4C Ore[12]=0x0EED Ore[13]=0x0F20 uo.Print('Âûêëàäûâàåì ðóäó.') uo.SetReceivingContainer(0x403e12a1) wait(500) for a=0 to 13 Exit=0 repeat uo.FindType(Ore[a]) if uo.GetQuantity('finditem')>0 then uo.Grab('0','finditem') wait(1500) else Exit=1 end if until Exit==1 next uo.UnSetReceivingContainer(0x403e12a1) uo.Print('Ðóäà âûëîæåíà.') end sub
sub InfoOre() uo.Print('Ó âàñ âñåãî '+str(uo.Count('0x19B7')+uo.Count('0x19B8')+uo.Count('0x19B9')+uo.Count('0x19BA'))+' ðóäû â ñóìêå') uo.Print('Èç íåå '+str(uo.Count('0x19B7','0x0000')+uo.Count('0x19B8','0x0000') +uo.Count('0x19B9','0x0000')+uo.Count('0x19BA','0x0000'))+' æåëåçî è ' +str (uo.Count('0x19B7')+uo.Count('0x19B8')+uo.Count('0x19B9')+uo.Count('0x19BA')- (uo.Count('0x19B7','0x0000')+uo.Count('0x19B8','0x0000')+uo.Count ('0x19B9','0x0000')+uo.Count('0x19BA','0x0000')))+' öâåòìåò') end sub
sub Open(Container) uo.DeleteJournal() uo.UseObject(Container) repeat wait(500) until uo.InJournal('Contains') end sub
sub ControlOfDanger() var danger var RecallPhysicalDanger=1 var RecallSeenDanger=0 var RecallBluePlayer=0 while 1 uo.DeleteJournal() while not uo.InJournal(':') wait(100) wend danger=uo.GetNotoriety(uo.JournalSerial(0)) if uo.InJournal('Guardian') then if ElementalKill==0 then uo.Exec('exec RecallRune') end if end if if RecallPhysicalDanger==1 then if uo.InJournal('attacking you') or uo.InJournal('An Mani') or uo.InJournal('Por Ort Grav') or uo.InJournal('In Por ') or uo.InJournal('An Ex Por') or uo.InJournal('ppN') or uo.InJournal('Adios') or uo.InJournal('MAKC') or uo.InJournal('Man') then uo.Exec('exec RecallRune') end if end if if RecallSeenDanger==1 then if danger==6 and uo.JournalSerial(0)<>uo.GetSerial() then uo.Exec('exec RecallRune') end if if danger==4 and uo.JournalSerial(0)<>uo.GetSerial() then uo.Exec('exec RecallRune') end if end if if RecallBluePlayer==1 then if danger==1 and uo.JournalSerial(0)<>uo.GetSerial() then uo.Exec('exec RecallRune') end if end if wend end sub
sub RecallRune() var MX=uo.GetX('self') var MY=uo.GetY('self') uo.UseType('0x0F08') wait(100) Recall: uo.DeleteJournal() if uo.Waiting() then uo.CancelTarget() end if uo.WaittargetObject('0x403a5efa') wait(100) uo.UseType('0x1F4C') wait(3000) if not uo.GetX('self')<>MX and not uo.GetY('self')<>MY then goto Recall end if if uo.Life<uo.STR then LifeUp('Bottle') wait(100) end if if CycleScript==1 then wait(DangerousTime) DropOre() RecallToOre() end if if CycleScript==0 then uo.Exec('exec ExitUO') end if end sub
sub Reconnect() var ReconnectTime,rFlag ReconnectTime='0' rFlag=1 repeat while (uo.ObjAtLayer('Bpack')=='') if rFlag then ReconnectTime=MakeTime() rFlag=0 end if 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' end if 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 end if 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 end if next ret=t+" @ "+d return ret end sub
sub Terminate() uo.Print('Âñå ôóíêöèè ñêðèïòà îòêëþ÷åíû!') uo.DeleteJournal() uo.Exec('terminate all') wait(100) uo.Exec('terminate all') wait(100) uo.Exec('terminate all') wait(100) end sub
sub CheckLag() if uo.Waiting()>0 then uo.Exec('canceltarget') end if uo.DeleteJournal() uo.Click('backpack') repeat wait(50) until uo.InJournal('backpack') #BETEP™# end sub
|