майнинг господа снова мининг

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Admeral
Posts: 40
Joined: 2004-04-13 19:05:40
Contact:

майнинг господа снова мининг

Post by Admeral »

эитак переделал скрипт севгева да так што мне
плохо стало! точнее скрипту!!!
вобшим к делу решил я зделат модуль убийства элей
при помоши драка и штобы было совсем харашо зделал
штобы чар кушал и драка кормил но тут проблема
и я немогу её вычислить по неопытности!!!
вобшем чар при попытке похавать залагивает игру до
дисконекта!!! а драка на элей не травит!!!
помогите люди добрые!!!

вот модуль разгрузки с кушанием:

Code: Select all

sub unloadore() 
   VAR TempX,TempY,i,Exit, Exit1, ConTainer, j 
   VAR SundukX=5520 
   VAR SundukY=1594 
   VAR Index=14 ; ?????????? ????????? ??????? 
   DIM Ore[5], Colors[20] 

   Colors[0]="0x09F0" ; Gorgan 
   Colors[1]="0x09D3" ; Steel 
   Colors[3]="0x0BA7" ; Eldar 
   Colors[4]="0x08AF" ; Plut 
   Colors[5]="0x0085" ; Dragon 
   Colors[6]="0x0060" ; Aqua 
   Colors[7]="0x09E6" ; Elvin 
   Colors[8]="0x010F" ; Krinit 
   Colors[9]="0x09DA" ; Vulkan 
   Colors[10]="0x09EC" ; Blood Crest 
   Colors[11]="0x008F" ; Sand Rock 
   Colors[12]="0x09B9" ; Acid 
   Colors[13]="0x09A4" ; Crystaline 


   TempX=UO.GetX() 
   TempY=UO.GetY() 
    
   walkn(SundukX,SundukY,"") 
   ToHide() 
   UO.UseObject("Sunduk") 
   Wait(500) 
   UO.UseObject('0x4024D8C8')

   Ore[0]=0x19B9 ; 4 and more ore 
   Ore[1]=0x19B7 ; 1 ore 
   Ore[2]=0x19BA ; 2 ore 
   Ore[3]=0x19B8 ; 3 ore 

   For i=0 to 3 
      Exit=0 
      repeat 
         UO.FindType(Ore[i]) 
          
         if UO.GetQuantity('finditem')>0 then 
            If UO.GetColor('finditem')=='0x0000' Then 
               Container=UO.GetSerial('IronBag') 
            Else 
               Container=UO.GetSerial('OtherBag') 
               Exit1=0 
               j=0 
               While j<Index AND Exit1<>1 
                  If UO.GetColor('finditem')==Colors[j] Then 
                     Container=UO.GetSerial('BestBag') 
                     Exit1=1 
                  Endif 
                  j=j+1 
               Wend 
            Endif 
            UO.MoveItem('finditem',0,Container) 
            CheckLag() 
            wait(1000) 
         Else 
            Exit=1 
         endif 
      until Exit==1 
   Next

UO.FindType('0x097B')  
if UO.GetQuantity('finditem')>0 then 
repeat     
   uo.UseType('0x097B') 
   while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead() 
      wait(100) 
   wend 
until uo.InJournal('too full') or UO.Dead() or uo.InJournal("can't")

else
   UO.FindType('0x097B',-1,'0x4024D8C8')  
   if UO.GetQuantity('finditem')>0 then
      UO.Grab('20','finditem')
   endif
endif

UO.FindType('0x09F1')  
if UO.GetQuantity('finditem')>0 then
   If UO.GetDistance('TOT')>1 Then 
      walkn(0,0,'TOT') 
   Endif
else
   UO.FindType('0x09F1',-1,'0x4024D8C8')  
   if UO.GetQuantity('finditem')>0 then
      UO.Grab('20','finditem')
   endif
endif

If UO.GetDistance('TOT')>1 Then 
   walkn(0,0,'TOT') 
Endif

UO.FindType('0x09F1')
UO.MoveItem('finditem',0,'TOT')
 
   walkn(TempX,TempY,"") 
   ToHide() 
end sub
при запуске уо зависает наверно с задержкой проблем
может ктонит оптимизирует етот вариант

а вот мудуль килла эльки:

Code: Select all

sub killelem() 
   VAR Count, LastTimer, Elem 
    
     
   LastTimer=UO.Timer() 

   UO.FindType('0x0010',-1,'ground') 
   Elem=UO.GetSerial('finditem') 
   UO.Attack(Elem) 
   UO.Set('lasttarget','laststatus') 
   UO.WaitTargetObject('lasttarget')
   Wait(100)
   UO.Say('All Kill')
   Wait(100)
   UO.WaitTargetObject('lasttarget')
   Wait(100)
   UO.Say('All Kill')   
   wait(300)
   UO.UseType('0x0F0E','0x0631') ; inviz potion

   repeat
   wait(50)
   until UO.IsNPC(Elem)==0

   UO.Say('All Stop') 

   If UO.GetDistance('TOT')>1 Then 
      walkn(0,0,'TOT') 
   Endif 

   UO.WaitTargetGround('0x19B9') ; 4 and more ore 
   wait(1500) 
   UO.Grab('all') 
   UO.WaitTargetGround('0x19B8') ; 3 ore 
   wait(1500) 
   UO.Grab('all') 
   UO.WaitTargetGround('0x0EED') ; gold coins 
   wait(500) 
   UO.Grab('all') 


   UO.FindType('0x0010',-1,'ground') 
   If UO.GetQuantity('finditem')>0 Then 
      KillElem() 
   Endif 

   UO.Exec('warmode 0') 
   wait(1000) 

   UO.Print("Sdoh skotina!") 

   LastTimer=UO.Timer() 
   if UO.Life<200 then ; U'r max HP 
      repeat 
         UO.BandageSelf() 
         wait(4000) 
      until UO.Life>200 OR LastTimer+300<UO.Timer() 
   endif 
   UO.DeleteJournal() 

end sub 
обект ТОТ прописан и неработает драка 4ар не травит а просто продолжаыет копат

и сам скрипт

Code: Select all

############################################################### 
#===---====----===---===---= Mining =---=-=-=-=-=--=-=-=-=-=-=# 
#    Single char mining for VIP Mine. DRW Shard www.drw.ru    # 
#           Scripted by Savage (c) 2005 ICQ:33336141          # 
#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# 
#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# 
# To start script use ",exec mine" command from client window # 
############################################################### 

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
;==================== Main mining script ====================== 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
sub mine() 
   VAR DigDistance, TileNum, KillElemental 
   VAR ElemSignal, LastTimer 
   DIM BaseX[4], BaseY[4] 
   VAR BaseZ, WayPoint, WayPoints 
   VAR MaxWeight 

   VAR i,j,TileY,TileX,DirX,DirY 
   VAR Delta,BeginX,EndX,BeginY,EndY 
    

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; TileNum='Num' - Use ",infotile" command on the floor 
; ????? ????? ? ??????? ????? ?????? ,????????? ???????? 
; ",infotile" ?? ?????? ?????? ? ?????????? ?? ?????????? ?? ?? 
; ??????. 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
   TileNum='1339' 
    

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; ???????????? ???, ??????? ????? ??????? ???. ??????? ??? 
; ??????? ?????? ?????????. ?? ???? ???? ??? ????????? 760, ?? 
; ?????? 730. 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
   MaxWeight=700

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; DigDistance=4 - Distance from tile where pickaxe targeting 
; ?????? ????? ?? ???????? ????? ?????? ???, ?? ???? ?????????? 
; ?? ?????? ???? ????? ?????????? ??????. 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
   DigDistance=4 

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; KillElemental='Yes'/'No' - Use 'Yes' if char skilled to morph 
;                            in daemon and wrestling > 50 
; ???? ??? ?????????? ???????? ???? ???? ??????, ??????? 'Yes' 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
   KillElemental='Yes' 

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; ElemSignal='Off'/'On' - Play sound when elemental is digged 
; ????????? ??? ????????? ????? 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
   ElemSignal='On' 


;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; ????? ????????? ?????????? ????? ???????. ????? ?????? ?? 
; ??????? ? ?????????? ?????????? ? ???????. ?? ? ????? 
; ?????????? ?????? ????. ???? ??????? ?? 4 ?????? ?? ????. 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

   BaseX[0]=5522 
   BaseY[0]=1590 
   BaseZ=0 

   BaseX[1]=5530 
   BaseY[1]=1590 

   BaseX[2]=5521 
   BaseY[2]=1430 

   BaseX[3]=5532 
   BaseY[3]=1430 

;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
; ????????? ?????????? ????? ??????? 
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

   WayPoints=2 


   CheckLag() 
   UO.UseObject('Sunduk')
   Wait(500) 
   UO.UseObject('0x4024D8C8')
   LastTimer=UO.Timer() 
   Repeat 
      wait(500) 
   Until UO.InJournal('You can') OR UO.InJournal('What is the') OR UO.Timer()>LastTimer+100 
    
   If UO.InJournal('see the') Then 
      UO.Say("Podoydi k sunduku i tkni v nego pricelom!") 
      UO.AddObject('Sunduk')
      While UO.Targeting()==2 
         wait(500) 
      Wend 
      UO.SaveConfig() 
      UO.UseObject('Sunduk')
      Wait(500) 
      UO.UseObject('0x4024D8C8')
   Else 
;      UO.Say("Ok! Viju sunduk.") 
   Endif 


   CheckLag() 
   UO.UseObject('IronBag') 
   LastTimer=UO.Timer() 
   Repeat 
      wait(500) 
   Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 
    
   If UO.InJournal('see the') Then 
      UO.Say("V kakoy meshok kidat' Iron Ore") 
      UO.AddObject('IronBag') 
      While UO.Targeting()==2 
         wait(500) 
      Wend 
      UO.SaveConfig() 
   Else 
;      UO.Say("Meshok dlya Iron Ore viju") 
   Endif 


   CheckLag() 
   UO.UseObject('OtherBag') 
   LastTimer=UO.Timer() 
   Repeat 
      wait(500) 
   Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 
    
   If UO.InJournal('see the') Then 
      UO.Say("V kakoy meshok kidat' rudu?") 
      UO.AddObject('OtherBag') 
      While UO.Targeting()==2 
         wait(500) 
      Wend 
      UO.SaveConfig() 
   Else 
;      UO.Say("Meshok dlya rudy viju.") 
   Endif 


   CheckLag() 
   UO.UseObject('BestBag') 
   LastTimer=UO.Timer() 
   Repeat 
      wait(500) 
   Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 
    
   If UO.InJournal('see the') Then 
      UO.Say("V kakoy meshok kidat' vihu?") 
      UO.AddObject('BestBag') 
      While UO.Targeting()==2 
         wait(500) 
      Wend 
      UO.SaveConfig() 
   Else 
;      UO.Say("Meshok dlya vihi viju.") 
   Endif 

   While NOT UO.Dead() 
    
      For WayPoint=0 to WayPoints-1 
         walkn(BaseX[WayPoint],BaseY[WayPoint],"") 
         digitstay(MaxWeight,DigDistance,KillElemental,ElemSignal,BaseX[WayPoint],BaseY[WayPoint]) 
      Next 
   wend 
end sub 


; ???????? ???????? ????. ??????????????? ?? ??? ????? ??????. 
sub CheckOre() 
   VAR Cont=1, i=0, Exit=0 
   VAR Count=0   ; ??????? ????????? ? ???????. 
   DIM Ores[15]    

;   Ores[0]="Iron" 
;   Ores[1]="Rusty" 
;   Ores[2]="Old Copper" 
;   Ores[3]="Dull Copper" 
;   Ores[4]="Copper" 
;   Ores[5]="Bronze" 
;   Ores[6]="Silver" 
;   Ores[7]="Shadow" 
;   Ores[8]="Rose" 
;   Ores[9]="Gold" 
;   Ores[10]="Agapite" 
;   Ores[11]="Blood Rock" 
;   Ores[12]="Verite" 
;   Ores[13]="Valorite" 
;   Ores[14]="Mytheril" 

   While i<Count AND Exit==0 
      If UO.InJournal(Ores[i]) Then 
         Cont=0 
         Exit=1 
      Endif 
;      UO.Print(STR(i)) 
;      UO.Print(Ores[i]) 
      i=i+1 
   Wend 
    
   return Cont 
end sub 


;-------------------- Try to mine under self ------------------ 
sub digitstay(MaxWeight,MaxDistance,KillElemental,ElemSignal,BaseX,BaseY) 
   VAR x,y,z='0',TileNum='1339' 
   VAR Last=0,LastTimer, ContFlag=1 
   VAR MaxTimer=110 

   For x=-MaxDistance to MaxDistance 
      For y=-MaxDistance to MaxDistance 
         Repeat 
            CheckLag() ; deleting journal 
            ToHide() 
             
            UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z) 
            UO.UseType('0x0E85') 

            LastTimer=UO.Timer() 

            Repeat 
               wait(500) 
            until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+200<UO.Timer() 

            If NOT UO.InJournal('There is no') then 
               ContFlag=CheckOre() 
            Endif 

            If UO.InJournal('You loosen') then 
               repeat 
                  wait(500) 
               until UO.InJournal("You put") OR LastTimer+MaxTimer<UO.Timer() 
            Endif 

            If UO.InJournal('something with ore') OR UO.InJournal("attacking you") then 
               If ElemSignal=='On' Then 
                  Gong(2) 
               Endif 

               If KillElemental=='Yes' Then 
                  KillElem() 
                  walkn(BaseX,BaseY,"") 
               Else 
; any user defined command when char digget elemental 

               Endif 
            Endif 
             
            If UO.InJournal("attacking you") then 
               gong(3) 
            Endif 

            If UO.Weight>=MaxWeight then 
               unloadore() 
            Endif 
         Until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining") OR ContFlag==0 
      Next 
   Next 
end sub 


;------------------------- Unload ore ------------------------- 
sub unloadore() 
   VAR TempX,TempY,i,Exit, Exit1, ConTainer, j 
   VAR SundukX=5520 
   VAR SundukY=1594 
   VAR Index=14 ; ?????????? ????????? ??????? 
   DIM Ore[5], Colors[20] 

   Colors[0]="0x09F0" ; Gorgan 
   Colors[1]="0x09D3" ; Steel 
   Colors[3]="0x0BA7" ; Eldar 
   Colors[4]="0x08AF" ; Plut 
   Colors[5]="0x0085" ; Dragon 
   Colors[6]="0x0060" ; Aqua 
   Colors[7]="0x09E6" ; Elvin 
   Colors[8]="0x010F" ; Krinit 
   Colors[9]="0x09DA" ; Vulkan 
   Colors[10]="0x09EC" ; Blood Crest 
   Colors[11]="0x008F" ; Sand Rock 
   Colors[12]="0x09B9" ; Acid 
   Colors[13]="0x09A4" ; Crystaline 


   TempX=UO.GetX() 
   TempY=UO.GetY() 
    
   walkn(SundukX,SundukY,"") 
   ToHide() 
   UO.UseObject("Sunduk") 
   Wait(500) 
   UO.UseObject('0x4024D8C8')

   Ore[0]=0x19B9 ; 4 and more ore 
   Ore[1]=0x19B7 ; 1 ore 
   Ore[2]=0x19BA ; 2 ore 
   Ore[3]=0x19B8 ; 3 ore 

   For i=0 to 3 
      Exit=0 
      repeat 
         UO.FindType(Ore[i]) 
          
         if UO.GetQuantity('finditem')>0 then 
            If UO.GetColor('finditem')=='0x0000' Then 
               Container=UO.GetSerial('IronBag') 
            Else 
               Container=UO.GetSerial('OtherBag') 
               Exit1=0 
               j=0 
               While j<Index AND Exit1<>1 
                  If UO.GetColor('finditem')==Colors[j] Then 
                     Container=UO.GetSerial('BestBag') 
                     Exit1=1 
                  Endif 
                  j=j+1 
               Wend 
            Endif 
            UO.MoveItem('finditem',0,Container) 
            CheckLag() 
            wait(1000) 
         Else 
            Exit=1 
         endif 
      until Exit==1 
   Next

UO.FindType('0x097B')  
if UO.GetQuantity('finditem')>0 then 
repeat     
   uo.UseType('0x097B') 
   while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead() 
      wait(100) 
   wend 
until uo.InJournal('too full') or UO.Dead() or uo.InJournal("can't")

else
   UO.FindType('0x097B',-1,'0x4024D8C8')  
   if UO.GetQuantity('finditem')>0 then
      UO.Grab('20','finditem')
   endif
endif

UO.FindType('0x09F1')  
if UO.GetQuantity('finditem')>0 then
   If UO.GetDistance('TOT')>1 Then 
      walkn(0,0,'TOT') 
   Endif
else
   UO.FindType('0x09F1',-1,'0x4024D8C8')  
   if UO.GetQuantity('finditem')>0 then
      UO.Grab('20','finditem')
   endif
endif

If UO.GetDistance('TOT')>1 Then 
   walkn(0,0,'TOT') 
Endif

UO.FindType('0x09F1')
UO.MoveItem('finditem',0,'TOT')
 
   walkn(TempX,TempY,"") 
   ToHide() 
end sub 

;----------- Make Dragon Attack Elem And Hide ----------- 
sub killelem() 
   VAR Count, LastTimer, Elem 
    
     
   LastTimer=UO.Timer() 

   UO.FindType('0x0010',-1,'ground') 
   Elem=UO.GetSerial('finditem') 
   UO.Attack(Elem) 
   UO.Set('lasttarget','laststatus') 
   UO.WaitTargetObject('lasttarget')
   Wait(100)
   UO.Say('All Kill')
   Wait(100)
   UO.WaitTargetObject('lasttarget')
   Wait(100)
   UO.Say('All Kill')   
   wait(300)
   UO.UseType('0x0F0E','0x0631') ; inviz potion

   repeat
   wait(50)
   until UO.IsNPC(Elem)==0

   UO.Say('All Stop') 

   If UO.GetDistance('TOT')>1 Then 
      walkn(0,0,'TOT') 
   Endif 

   UO.WaitTargetGround('0x19B9') ; 4 and more ore 
   wait(1500) 
   UO.Grab('all') 
   UO.WaitTargetGround('0x19B8') ; 3 ore 
   wait(1500) 
   UO.Grab('all') 
   UO.WaitTargetGround('0x0EED') ; gold coins 
   wait(500) 
   UO.Grab('all') 


   UO.FindType('0x0010',-1,'ground') 
   If UO.GetQuantity('finditem')>0 Then 
      KillElem() 
   Endif 

   UO.Exec('warmode 0') 
   wait(1000) 

   UO.Print("Sdoh skotina!") 

   LastTimer=UO.Timer() 
   if UO.Life<200 then ; U'r max HP 
      repeat 
         UO.BandageSelf() 
         wait(4000) 
      until UO.Life>200 OR LastTimer+300<UO.Timer() 
   endif 
   UO.DeleteJournal() 

end sub 


############################################################### 
############################################################### 
; 
;                        Shared Subs 
; 
############################################################### 
############################################################### 

#============================================================== 
#  tohide() - try hidding char. When char lose HP, drink inviz 
#             potion if it found in backpack 
# 
#  Journal has been deleted!!! 
#-------------------------------------------------------------- 
sub tohide() 
   while NOT UO.Hidden() 
      UO.DeleteJournal() 
      UO.FindType('0x0F0E','0x0631','my') 

      if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then 
         UO.UseType('0x0F0E','0x0631') ; inviz potion 
         UO.Exec('warmode 0') 
         wait(2000) 
      else 
         UO.Exec('warmode 0') 
         UO.UseSkill('Stealth') 
         repeat 
            wait(50) 
         until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') 
      endif 
   wend 
end sub 


#============================================================== 
#  CheckLag() - click on backpack and awaiting "backpack" 
#               message in journal. 
# 
#  Journal has been deleted!!! 
#-------------------------------------------------------------- 
sub CheckLag() 
   UO.DeleteJournal() 
   UO.Click('backpack') 

   repeat 
      wait(500) 
   until UO.InJournal('backpack') 
end sub 


#============================================================== 
#  Gong(counter) - playing wav-file 'counter'-times 
#  http://www.jetta.ru/cow.wav 
#-------------------------------------------------------------- 
sub Gong(times) ; play wav-file 
   VAR i 
   for i=1 to times 
      UO.Exec("playwav d:\game\uo\injection\cow") 
      wait(1200) ; time to play sample at once 
   next 
end sub 


#============================================================== 
#  Alarm() - when char lose some HP, U are informed :) 
#-------------------------------------------------------------- 
sub Alarm() 
   VAR CharHP=150 
   while 1==1 
      wait(1000) 
      if UO.Life<CharHP then 
         gong(1) 
      endif       
   wend 
end sub 

;---------------- ??????? ----------------------- 
sub GoW() 
   VAR walkwait=300 
   VAR x,y,dir=6 
   VAR key=36 ; Home key 
   x=UO.GetX() 
   y=UO.GetY() 
   while UO.GetDir()<>dir 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   wend 
   UO.Press(key) 

   wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
    
   If UO.GetX()+1==x Then 
      return -1 
   Else 
      return 1 
   Endif 
end sub 


sub GoN() 
   VAR walkwait=300 
   VAR x,y,dir=0 
   VAR key=33 ; PgUp 
   x=UO.GetX() 
   y=UO.GetY() 
   while UO.GetDir()<>dir 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   wend 
   UO.Press(key) 

   wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
    
   If UO.GetY()+1==y Then 
      return -1 
   Else 
      return 1 
   Endif 
end sub 


sub GoE() 
   VAR walkwait=300 
   VAR x,y,dir=2 
   VAR key=34 ; PgDown 
   x=UO.GetX() 
   y=UO.GetY() 
   while UO.GetDir()<>dir 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   wend 
   UO.Press(key) 

   wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
    
   If UO.GetX()-1==x Then 
      return -1 
   Else 
      return 1 
   Endif 
end sub 


sub GoS() 
   VAR walkwait=300 
   VAR x,y,dir=4 
   VAR key=35 ; End 
   x=UO.GetX() 
   y=UO.GetY() 
   while UO.GetDir()<>dir 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   wend 
   UO.Press(key) 

   wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
    
   If UO.GetY()-1==y Then 
      return -1 
   Else 
      return 1 
   Endif 
end sub 


sub GoWN() 
   VAR walkwait=300 
   VAR x,y,dir=7 
   VAR key=38 ; UpArrow 
   x=UO.GetX() 
   y=UO.GetY() 

   If UO.GetDir()<>dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   Endif 

   If UO.GetDir()==dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
      If UO.GetDir()==dir Then 
         return -1 
      Else 
         return UO.GetDir() 
      Endif 
   Else 
      return UO.GetDir() 
   Endif 
end sub 


sub GoNE() 
   VAR walkwait=300 
   VAR x,y,dir=1 
   VAR key=39 ; RightArrow 
   x=UO.GetX() 
   y=UO.GetY() 

   If UO.GetDir()<>dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   Endif 

   If UO.GetDir()==dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
      If UO.GetDir()==dir Then 
         return -1 
      Else 
         return UO.GetDir() 
      Endif 
   Else 
      return UO.GetDir() 
   Endif 
end sub 


sub GoSE() 
   VAR walkwait=300 
   VAR x,y,dir=3 
   VAR key=40 ; DownArrow 
   x=UO.GetX() 
   y=UO.GetY() 

   If UO.GetDir()<>dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   Endif 

   If UO.GetDir()==dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
      If UO.GetDir()==dir Then 
         return -1 
      Else 
         return UO.GetDir() 
      Endif 
   Else 
      return UO.GetDir() 
   Endif 
end sub 


sub GoSW() 
   VAR walkwait=300 
   VAR x,y,dir=5 
   VAR key=37 ; LeftArrow 
   x=UO.GetX() 
   y=UO.GetY() 

   If UO.GetDir()<>dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   Endif 

   If UO.GetDir()==dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If x==UO.GetX() AND y==UO.GetY() Then 
         CheckLag() 
      Endif 
      If UO.GetDir()==dir Then 
         return -1 
      Else 
         return UO.GetDir() 
      Endif 
   Else 
      return UO.GetDir() 
   Endif 
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! 
#     walkwait - delay after keypress 
#-------------------------------------------------------------- 
sub WalkN(x,y,Target) 
   VAR i 
   VAR dx,dy,Exit=0 
    
   While Exit<>1    
      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 
            GoSE() 
         Endif 

         If dx>0 AND dy<0 Then 
            GoNE() 
         Endif 

         If dx<0 AND dy>0 Then 
            GoSW() 
         Endif 

         If dx<0 AND dy<0 Then 
            GoWN() 
         Endif 

      Endif 
    
      If dx<>0 AND dy==0 Then 
         If dx>0 Then 
            GoE() 
         Endif 
          
         If dx<0 Then 
            GoW() 
         Endif 
      Endif 


      If dx==0 AND dy<>0 Then 
         If dy>0 Then 
            GoS() 
         Endif 
          
         If dy<0 Then 
            GoN() 
         Endif 
      Endif 
   Wend 
end sub 
буду рад помоши
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Атака по статусу? его снять нужно сначала

Code: Select all

   UO.Set('lasttarget','laststatus') 
   UO.WaitTargetObject('lasttarget') 
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Угу, сделай вот так:

Code: Select all

Elem=UO.GetSerial('finditem') 
   UO.WaitTargetObject( Elem ) 
   Wait(100) 
   UO.Say('All Kill') 
   Wait(100) 
   UO.WaitTargetObject( Elem ) 
   Wait(100) 
   UO.Say('All Kill')
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

flake wrote:Угу, сделай вот так:

Code: Select all

Elem=UO.GetSerial('finditem') 
   UO.WaitTargetObject( Elem ) 
   Wait(100) 
   UO.Say('All Kill') 
   Wait(100) 
   UO.WaitTargetObject( Elem ) 
   Wait(100) 
   UO.Say('All Kill')
Это не поможет.
Для начала нужно три урока прочесть…, а то ЕДред их похоже для себя написал.
Потом представить алгоритм действий, а то его нет в принципе.

Отлов элема у Саважа по журналу… Для чего Финд?
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

А что такого? Хочу файнд тайп, мне Савадж не указчик :)
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Flake это не про тебя.

В данном скрипте поиск произойдет только после вызова функции killelem()
А вызов ее не произойдет никогда….

Скрипт прочти
Post Reply