Yoko

All sides of Injection
It is currently 2024-03-28 15:38:08

All times are UTC+02:00




Post new topic  Reply to topic  [ 2 posts ] 
Author Message
PostPosted: 2004-04-04 03:28:10 
зарание спасибо


Top
   
 Post subject:
PostPosted: 2004-04-04 09:18:55 
Savage
Ethernal newbie


Joined: 16 Aug 2003
Posts: 236

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

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

Code:

Code:
;======================================================== 
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 если чар правильно ходит и в конце вырубки разгрузился, настраиваем так же следующий модуль. Если логи ресаются быстро, то хватит и одного. У нас надо три полных пака нарубить прежде чем они реснутся.

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited