Скрипт на ламбер

Talk everything you want (no ads and spam)

Moderators: Murderator+, Murderator

Post Reply
Gannibal

Скрипт на ламбер

Post by Gannibal »

зарание спасибо
Guest

Post by Guest »

Savage
Ethernal newbie


Joined: 16 Aug 2003
Posts: 236

Posted: Tue Sep 09, 2003 9:58 pm Post subject:

--------------------------------------------------------------------------------

Code:

Code: Select all

;======================================================== 
sub lj() 
   UO.Exec('terminate alarm') 
   UO.Exec('exec alarm') 
   while NOT UO.Dead() 
      lj1() 
      lj2() 
      lj3() 
   wend 
end sub 

sub eat() 
   UO.UseType("fish") ; any registered type of food 
end sub 

sub unload() 
   VAR TempRune=0x4008A39E ; serial of temporary rune 
markrune: 
   UO.DeleteJournal() 
   UO.WaitTargetObject(TempRune) 
   UO.Cast('Mark') 
   wait(4000) 
   If UO.InJournal("spell fizzles") then 
      goto markrune 
   endif    
   mrecal(0x4008A399) ; home serial of rune to store container 
   logunload() 
   mrecal(TempRune) 
end sub 


sub chopit(ChopX,ChopY) 
   VAR Count, Last=0 
   VAR MaxCount=200 ; delay of max time to chop one tree 
   VAR MaxWeight=820 ; weight nearly to overload 

   if UO.Weight>MaxWeight then 
      unload() 
   endif 
    
   repeat 
      UO.DeleteJournal() 
      If Last then 
         UO.WaitTargetTile('lasttile') 
         UO.UseObject("hatchet") ; Registered object 
      Else 
         UO.UseObject("hatchet") 
         wait(400) 
         UO.LClick(ChopX,ChopY) 
         Last=1 
      endif 
       
      Count=0 
      while NOT UO.InJournal("You put") AND NOT UO.InJournal("You hack") AND NOT UO.InJournal("There are no") AND NOT UO.InJournal("That is too") AND NOT UO.InJournal("It appears") AND NOT UO.InJournal("You can") AND NOT Count>MaxCount 
         wait(50) 
         Count=Count+1 
      wend 
      if UO.InJournal("You hack") OR UO.InJournal("You put")then 
         UO.DeleteJournal() 
      endif 
       
   until UO.InJournal("There are no") OR UO.InJournal("That is too") OR UO.InJournal("It appears") OR UO.InJournal("You can") OR Count>MaxCount 
end sub 

;------------------ Walking, first X then Y -------------------------------- 

sub walk(dx,dy) 
   VAR i, walkwait=400 
   If dx<>0 then 
      If dx>0 then 
         If UO.GetDir()<>2 then 
            UO.Press(34) 
            wait(walkwait) 
         Endif 
         For i=1 to dx 
            UO.Press(34) 
            wait(walkwait) 
         next 
      Else 
         If UO.GetDir()<>6 then 
            UO.Press(36) 
            wait(walkwait) 
         Endif 
         For i=1 to dx*-1 
            UO.Press(36) 
            wait(walkwait) 
         next 
      Endif 

   endif 
    
   If dy<>0 then 
      If dy>0 then 
         If UO.GetDir()<>4 then 
            UO.Press(35) 
            wait(walkwait) 
         Endif 
         For i=1 to dy 
            UO.Press(35) 
            wait(walkwait) 
         next 
      Else 
         If UO.GetDir()<>0 then 
            UO.Press(33) 
            wait(walkwait) 
         Endif 
         For i=1 to dy*-1 
            UO.Press(33) 
            wait(walkwait) 
         next 
      Endif 
   endif 
   wait(1000) 
end sub 

;------------------------- When You less HP then alarm ----------------- 
sub alarm() 
   while NOT UO.Dead() 
      wait(1000) 
      if UO.Life<UO.GetMaxHP() then 
         gong(1) 
      endif       
   wend 
end sub 

sub lj1() 
   VAR ct=1 
   DIM dbX[6],deX[6],dbY[6],deY[6],Dir[6] 
   VAR i 

;----- InitTrack----- 
   dbX[1]=2078 ; Start track X coord. 
   deX[1]=2078 ; End track X coord. 
   dbY[1]=2082 ; Start track Y coord. 
   deY[1]=2139 ; End Track Y coord. 
   Dir[1]=1 ; Direction of walking 1 - N->S, -1 S->N 

   dbX[2]=2086 
   deX[2]=2086 
   dbY[2]=2130 
   deY[2]=2087 
   Dir[2]=-1 
    
   dbX[3]=2094 
   deX[3]=2094 
   dbY[3]=2073 
   deY[3]=2133 
   Dir[3]=1 
    
   dbX[4]=2102 
   deX[4]=2102 
   dbY[4]=2130 
   deY[4]=2096 
   Dir[4]=-1 

   dbX[5]=2102 
   dbY[5]=2096 

   mrecal(0x4009A638) ; start position 

   for ct=1 to 4 
      repeat 
         tohide() 
         chopit(278,171) 
         chopit(362,253) 
         walk(0,3*Dir[ct]) 
      until UO.GetY()==deY[ct] 
      eat() 
      walk(dbX[ct+1]-deX[ct],dbY[ct+1]-deY[ct]) 
   next 
   mrecal(0x4008A399) ; home  serial of rune to store container 
   logunload() 

;   gong(2) 
end sub 

sub lj2() 
   VAR ct=1 
   DIM dbX[6],deX[6],dbY[6],deY[6],Dir[6] 
   VAR i 

;----- InitTrack----- 
   dbX[1]=3382 
   deX[1]=3382 
   dbY[1]=426 
   deY[1]=474 
   Dir[1]=1 

   dbX[2]=3374 
   deX[2]=3374 
   dbY[2]=474 
   deY[2]=502 
   Dir[2]=1 
    
   dbX[3]=3366 
   deX[3]=3366 
   dbY[3]=516 
   deY[3]=484 
   Dir[3]=-1 
    
   dbX[4]=3358 
   deX[4]=3358 
   dbY[4]=510 
   deY[4]=432 
   Dir[4]=-1 

   dbX[5]=3358 
   dbY[5]=432 

   mrecal(0x400C018F) ; start position 

   for ct=1 to 4 
      repeat 
         tohide() 
         chopit(278,171) 
         chopit(362,253) 
         walk(0,3*Dir[ct]) 
      until UO.GetY()==deY[ct] 
      eat() 
      walk(dbX[ct+1]-deX[ct],dbY[ct+1]-deY[ct]) 
   next 
   mrecal(0x4008A399) ; home  serial of rune to store container 
   logunload() 
end sub 


sub lj3() 
   VAR ct=1 
   DIM dbX[6],deX[6],dbY[6],deY[6],Dir[6] 
   VAR i 

;----- InitTrack----- 
   dbX[1]=3266 
   deX[1]=3266 
   dbY[1]=261 
   deY[1]=326 
   Dir[1]=1 

   dbX[2]=3258 
   deX[2]=3258 
   dbY[2]=378 
   deY[2]=250 
   Dir[2]=-1 
    
   dbX[3]=3246 
   deX[3]=3246 
   dbY[3]=219 
   deY[3]=310 
   Dir[3]=1 
    
   dbX[4]=3238 
   deX[4]=3238 
   dbY[4]=315 
   deY[4]=348 
   Dir[4]=1 

   dbX[5]=3238 
   dbY[5]=348 

   mrecal(0x400822B6) ; start position 

   for ct=1 to 4 
      repeat 
         tohide() 
         chopit(278,171) 
         chopit(362,253) 
         walk(0,3*Dir[ct]) 
      until UO.GetY()==deY[ct] 
      eat() 
      walk(dbX[ct+1]-deX[ct],dbY[ct+1]-deY[ct]) 
   next 
   mrecal(0x4008A399) ; home serial of rune to store container 
   logunload() 
end sub 

;----------------Recal and Mark faded rune ------------- 
sub mrecal(rune) 
   repeat 
      UO.DeleteJournal() 
      UO.WaitTargetObject(rune) 
      UO.Cast('Recal') 
      wait(4000) 
   until NOT UO.InJournal("spell fizzles") ; mesage of fizzle spell 

markrune: 
   If UO.InJournal("fades completely")   then ; message of faded rune 
      UO.DeleteJournal() 
      UO.WaitTargetObject(rune) 
      UO.Cast('Mark') 
   endif 
   wait(4000) 
   If UO.InJournal("spell fizzles") then ; mesage of fizzle spell 
      goto markrune 
   endif 
end sub 

;------------------------- UnLoad ---------------------------- 
sub logunload() 
   UO.SetCatchBag('0x40082EBA') ; serial of store log container 
   wait(500) 
begin: 
   UO.FindType("log") ; log - registered type 
   if UO.GetQuantity('finditem')>0 then 
      UO.Grab('0','finditem') 
      wait(800) ; time to wait for fastloot-detector 
      goto begin 
   endif 
   UO.UnSetCatchBag() 
end sub 

;------------------------ Hiding ------------------------------- 
sub tohide() 
   while NOT UO.Hidden() 
      UO.UseSkill('Hiding') 
      wait(3000) 
   wend 
end sub 

;--------------- Play *.wav file ----------------------------- 
sub gong(times) 
   VAR i 
   for i=1 to times 
      UO.Exec("playwav c:\game\uo\cow") ; ani *.wav file 
      wait(1200) ; time to play sample at once 
   next 
end sub 



Last edited by Savage on Mon Oct 13, 2003 4:31 pm; edited 1 time in total


Savage
Ethernal newbie


Joined: 16 Aug 2003
Posts: 236

Posted: Tue Sep 09, 2003 9:58 pm Post subject: LumberJack script

--------------------------------------------------------------------------------

Писано для DRW так что не обижайтесь если что не так.
1. Необходимо поставвить патч вердаты на пеньки:
http://drguild.nm.ru/verdata.htm
2. Вырубаются деревья справа и слева от чара при хождении по координате X то есть напрваление N->S или S->N
3. Находим место которое подходит нам как начало дорожки и марчим там руну, координаты места забиваем в массив. Чар должен стоять по середине между двумя деревьями:
http://www.jetta.ru/lj.jpg
Проходим по дорожке до препядствия или до точки перед препядствием, но на три шага дальше последнего вырубленного дерева и забиваем координаты в массив. Далее переходим к следующей дорожке и забиваем координаты в следующий массив.
4. Правим сериалы рун на свои, так же сериал контэйнера для разгрузки. И пробуем запускать модуль lj1 если чар правильно ходит и в конце вырубки разгрузился, настраиваем так же следующий модуль. Если логи ресаются быстро, то хватит и одного. У нас надо три полных пака нарубить прежде чем они реснутся.

Скрипт не проверяет сэйвы, поэтому может сбиться, сделать лишний шаг.
Post Reply