Yoko

All sides of Injection
It is currently 2024-03-29 15:08:37

All times are UTC+02:00




Post new topic  Reply to topic  [ 16 posts ] 
Author Message
PostPosted: 2011-11-18 11:31:13 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
требуется мелки скрипт на рубку, нашел примерный, обрезал все что не нужно, но есть нюанс который покоя не дает.

суть:
ели запускаем скрипт рядом с деревом, то он использует топор на дереве.
если рядом деревьев нет, то скрипт выключается.
если топора нет, то скрипт сигнализирует об этом и выключается.
цикла нет, т.е. нажимать надо каждый раз, если хотите "рубануть"

вот скрипт:
Code:
sub FastLumber()
   var X, Y, MaxRange = 2, k = 0
   for Y = -MaxRange to MaxRange
      for X = -MaxRange to MaxRange
         if Tree(UO.GetX()+X, UO.GetY()+Y) then
            UO.Warmode(0)
            wait(100)
            k=k+1
            UO.WaitTargetTile(Tree(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
            if UO.Count(0x0F43) || UO.Count(0x0F44) then
               if UO.Count(0x0F43) then
                  UO.UseType(0x0F43)
               else
                  UO.UseType(0x0F44)
               endif
            else
               UO.Print('Нет топора')
               return
            endif
         endif
      next
   next
end sub


сразу же после запуска скрипта рядом с деревом чар пытается обрубить сразу несколько деревьев, насколько я понял

Quote:
Auto target cancelled {сообщение инжекта}
What do you want to use this on?
You must wait to perform another action
You decide not to chop wood for now.
Auto target cancelled {сообщение инжекта}
What do you want to use this on?
You must wait to perform another action


т.е. как я понял, он несколько раз пытается использовать топор.?
можете что-то еще посоветовать в дополнение?


Top
   
PostPosted: 2011-11-18 13:27:03 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Если в радиусе 2-ух клеток есть хотя бы 2 дерева - скрипт не будет ждать по вырубится первое, сразу начнёт рубить второе. Уменьши радиус до 1 и подходи к деревьям вплотную


Top
   
PostPosted: 2011-11-18 13:56:04 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
блин, логично же, спасибо


Top
   
PostPosted: 2011-11-18 14:25:56 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
еще логичнее было бы вернуть вырезанную тобой паузу на месте - тогда скрипт приобрел бы вид чтото вроде такого:

Code:
sub LumderStat()
   var X, Y, MaxRange = 3, k
   for Y = -MaxRange to MaxRange
      for X = -MaxRange to MaxRange
         if Tree(UO.GetX()+X, UO.GetY()+Y) then
            k = 0
            repeat
               UO.Set('quiet','0')
               UO.DeleteJournal()
               UO.Warmode(0)
               wait(100)
               UO.WaitTargetTile(Tree(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
               ;ToHide()
               ;********************************
               ; Auto Tools
               if UO.Count(0x0F43) || UO.Count(0x0F44) then
                  if UO.Count(0x0F43) then
                     UO.UseType(0x0F43); <-- Топор
                  else
                     UO.UseType(0x0F44); <-- Топор
                  endif
               else
                  UO.Set('quiet','0')
                  UO.Print('А топора то нет!')
                  return
               endif
               k=k+1
               repeat
                  wait(100)
               until UO.InJournal("0xA20D|0xA2DE|0xA2E7|0xA308|0xA309|0xA30D|0xA311|0xA312|Вы положили|nothing|You put|Вы ударили по дереву|You hack at the tree|Тут нечего рубить|no logs|Вы не можете до этого достать|You can|reach this|Дерево слишком далеко|That is too far away|do much|Это кажется свободным для вашего удара|It appears immune to your blow|атакует")
               UO.Set('quiet','0')
               if k>10 then
                  UO.Print('Что-то крепкое попалось!11')
                  return
               endif 
            until UO.InJournal("0xA20D|0xA2DE|0xA2E7|0xA308|0xA309|0xA30D|Тут нечего рубить|nothing|no logs|You can|Вы не можете до этого достать|Дерево слишком далеко|too far away|свободным для вашего удара")
         endif
      next
   next
   return 0
end sub

тогда он будет рубить дерево пока не срубит всю древесину либо не стукунет по 1 стволу 10 раз и тогда перейдет к следующему.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-11-20 11:03:10 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
не-не, вся фишка в этом и состоит, чтобы он 1 раз рубил :)

т.е.
подошел к дереву,
нажал кнопку скрипта,
он сам взял топор,
нашел дерево,
прицелился
и 1 раз рубанул

т.е. без цикла и вырубки дерева, грубо говоря более сложный вариант "ласт обжект + ласт таргет"


Top
   
PostPosted: 2011-11-20 14:42:17 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
А зачем? Типо - "НЕ НЕ Я НЕ НА СКРИПТЕ!!!" ? :|
тогда в твоем первом варианте поставь return после всех usetype

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-11-21 13:51:17 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
типо да.
на шарде добыча ресурсов запрещена,
+ при вырубке появляются энты, на убийство которых не написать скрипт
+ таблицы с задачами. которые надо решать
возможен только вариант ручной рубки.

поставил return, а для чего его поставили? что-то не заметил различия

вот конечный скрипт, может кому понадобится:
Code:
sub Lumberodnoderevo()
   var X, Y, MaxRange = 1, k = 0
   for Y = -MaxRange to MaxRange
      for X = -MaxRange to MaxRange
         if Tree(UO.GetX()+X, UO.GetY()+Y) then
            UO.Warmode(0)
            wait(100)
            k=k+1
            UO.WaitTargetTile(Tree(UO.GetX()+X, UO.GetY()+Y), UO.GetX()+X, UO.GetY()+Y, UO.GetZ())
            if UO.Count(0x0F43) || UO.Count(0x0F44) then
               if UO.Count(0x0F43) then
                  UO.UseType(0x0F43)
                  return
               else
                  UO.UseType(0x0F44)
                  return
               endif
            else
               UO.Print('нет топора')
               return
            endif
         endif
      next
   next
end sub
Sub Tree(X,Y)
   var i
   DIM  R[34]
   R[1] = 3274;
   R[2] = 3275;
   R[3] = 3276;
   R[4] = 3277;
   R[5] = 3280;
   R[6] = 3283;
   R[7] = 3286;
   R[8] = 3288;
   R[9] = 3290;
   R[10] = 3293;
   R[11] = 3296;
   R[12] = 3299;
   R[13] = 3302;
   R[14] = 3320;
   R[15] = 3323;
   R[16] = 3326;
   R[17] = 3329;
   R[18] = 3393;
   R[19] = 3394;
   R[20] = 3395;
   R[21] = 3396;
   R[22] = 3415;
   R[23] = 3416;
   R[24] = 3417;
   R[25] = 3418;
   R[26] = 3419;
   R[27] = 3438;
   R[28] = 3439;
   R[29] = 3440;
   R[30] = 3441;
   R[31] = 3442;
   R[32] = 3460;
   R[33] = 3461;
   R[34] = 3462;
   for i = 1 to 34
      if uo.privategettile( x, y, -1, R[i], R[i]) then
         return R[i]
      endif
   next
   return false
end sub


Top
   
PostPosted: 2011-11-21 20:06:32 
Offline

Joined: 2007-07-07 13:14:01
Posts: 90
Надежда умирает последней.


Top
   
PostPosted: 2011-11-21 20:27:16 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Gromiz wrote:
поставил return, а для чего его поставили? что-то не заметил различия

твой первый вариант скрипта делал следующее:
Code:
для массива деревьев (1-5 предположим)
  если рядом есть дерево тогда
  ударяем топором
и без паузы возвращаемся в первую строку

соответственно если рядом было 3 дерева то скрипт рубил 1 раз 1 потом СРАЗУ 2 потом СРАЗУ 3 и уже на 3 ждал удачного доруба.
Ретурны выкидывает на первом дереве. Хотя с ним не подойдет вариант с несколькими деревьями... ХЗ мне больше нравится вариант с журналом. Какая хрен разница за что сидеть если ты все равно СКРИПТОМ добываешь?

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-11-21 20:30:07 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
а в гз логи рубятся?
а ещё есть скрипты на "полуламбер". Дерево указываешь сам, скрипт просто его вырубает до конца и предлагает указать на новое дерево


Top
   
PostPosted: 2011-11-21 20:33:27 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
и вообще играйте в игры на Frostbite 2


Top
   
PostPosted: 2011-11-21 23:07:08 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Че в них играть - я прошел обе конкурирующие игры. Одну за 4,7 другую за 6,1 часов. А ультима вечна...

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-11-21 23:10:24 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
как можно пройти он-лайн шутер? =) я пока в бэд компани 50 лвл не возьму, про бф3 даже не буду думать. нфс не порадовал совсем. жду асасинс крид 3


Top
   
PostPosted: 2011-11-22 11:35:14 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
Mirage wrote:
Какая хрен разница за что сидеть если ты все равно СКРИПТОМ добываешь?

нет, не посадят, если сам рубишь, а вот если чар сам вырубает дерево до конца, то есть нюанс один и можно загреметь


Top
   
PostPosted: 2011-11-22 12:45:06 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
ты думаешь админу на шарде есть разница? Захочет посадит - и ты ничего не сможешь доказать ;)
:mrgreen:

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-11-22 14:48:52 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
да, повод всегда найти можно.


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 30 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