рубка lumber 1 дерево не цикл

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

рубка lumber 1 дерево не цикл

Post by Gromiz »

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

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

вот скрипт:

Code: Select all

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


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

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


т.е. как я понял, он несколько раз пытается использовать топор.?
можете что-то еще посоветовать в дополнение?
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: рубка lumber 1 дерево не цикл

Post by ZeroDX »

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

Re: рубка lumber 1 дерево не цикл

Post by Gromiz »

блин, логично же, спасибо
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: рубка lumber 1 дерево не цикл

Post by Mirage »

еще логичнее было бы вернуть вырезанную тобой паузу на месте - тогда скрипт приобрел бы вид чтото вроде такого:

Code: Select all

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 раз и тогда перейдет к следующему.
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Re: рубка lumber 1 дерево не цикл

Post by Gromiz »

не-не, вся фишка в этом и состоит, чтобы он 1 раз рубил :)

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

т.е. без цикла и вырубки дерева, грубо говоря более сложный вариант "ласт обжект + ласт таргет"
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: рубка lumber 1 дерево не цикл

Post by Mirage »

А зачем? Типо - "НЕ НЕ Я НЕ НА СКРИПТЕ!!!" ? :|
тогда в твоем первом варианте поставь return после всех usetype
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Re: рубка lumber 1 дерево не цикл

Post by Gromiz »

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

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

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

Code: Select all

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
Sirocco
Posts: 90
Joined: 2007-07-07 13:14:01

Re: рубка lumber 1 дерево не цикл

Post by Sirocco »

Надежда умирает последней.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: рубка lumber 1 дерево не цикл

Post by Mirage »

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

твой первый вариант скрипта делал следующее:

Code: Select all

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

соответственно если рядом было 3 дерева то скрипт рубил 1 раз 1 потом СРАЗУ 2 потом СРАЗУ 3 и уже на 3 ждал удачного доруба.
Ретурны выкидывает на первом дереве. Хотя с ним не подойдет вариант с несколькими деревьями... ХЗ мне больше нравится вариант с журналом. Какая хрен разница за что сидеть если ты все равно СКРИПТОМ добываешь?
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: рубка lumber 1 дерево не цикл

Post by ZeroDX »

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

Re: рубка lumber 1 дерево не цикл

Post by ZeroDX »

и вообще играйте в игры на Frostbite 2
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: рубка lumber 1 дерево не цикл

Post by Mirage »

Че в них играть - я прошел обе конкурирующие игры. Одну за 4,7 другую за 6,1 часов. А ультима вечна...
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: рубка lumber 1 дерево не цикл

Post by ZeroDX »

как можно пройти он-лайн шутер? =) я пока в бэд компани 50 лвл не возьму, про бф3 даже не буду думать. нфс не порадовал совсем. жду асасинс крид 3
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Re: рубка lumber 1 дерево не цикл

Post by Gromiz »

Mirage wrote: Какая хрен разница за что сидеть если ты все равно СКРИПТОМ добываешь?

нет, не посадят, если сам рубишь, а вот если чар сам вырубает дерево до конца, то есть нюанс один и можно загреметь
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: рубка lumber 1 дерево не цикл

Post by Mirage »

ты думаешь админу на шарде есть разница? Захочет посадит - и ты ничего не сможешь доказать ;)
:mrgreen:
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Re: рубка lumber 1 дерево не цикл

Post by Gromiz »

да, повод всегда найти можно.
Post Reply