простой Lumberjacking

Ask for scripts here

Moderators: Murderator+, Murderator

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

простой Lumberjacking

Post by Gromiz »

Добрый день,

не могли бы помочь найти простой скрипт на "Lumberjacking"?

суть такова:

• запускаем скрипт
• уходим в хидинг
• предлагает указать дерево
• вырубает его до конца
• если в дереве закончились логи, предлагает указать другое

т.е. ходилки, порталки и тд. не нужны
если честно, то я не нашел такого.


логично, что такой скрипт будет работать и под мининг?
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Тогда может проще руками?
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Post by Gromiz »

так и делаю пока, но хочется через такой скрипт- удобнее

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

Post by Gromiz »

никак найти не могу, должен же быть

одни "суперпуперламберы" ругом :(
u0rypT
Posts: 175
Joined: 2004-12-30 18:13:16
Location: Russia
Contact:

Post by u0rypT »

Lastobject & ко отменили ? Можно сделать такое, не прибегая к использование скрипта.
Design, webdev, coding, c#, php, asp.net, xml, perl, sql, ajax, drawing, illustrating, restoration, photo, photoshop, schedule, pron, guitar, lead-guitar, js, jsp, java, dom, html, *nix, struts, cs, etc
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Post by Gromiz »

его и использую,
на крайняк забиндил его на uopilot и рубит до бесконечности..


а хочется удобства:
• 1. проверка на перевес
• 2. приостановка, если в нельзя рубить
• 3. таргет активен при п.2
u0rypT
Posts: 175
Joined: 2004-12-30 18:13:16
Location: Russia
Contact:

Post by u0rypT »

Циклические проверки напиши, и запусти, цикл заканчивается если uo.dead().
Design, webdev, coding, c#, php, asp.net, xml, perl, sql, ajax, drawing, illustrating, restoration, photo, photoshop, schedule, pron, guitar, lead-guitar, js, jsp, java, dom, html, *nix, struts, cs, etc
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Написать просто, только неохота :)
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Post by Gromiz »

да, я бы написал, если бы мог


по нулям вообще :cry:
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

Gromiz wrote:да, я бы написал, если бы мог
по нулям вообще :cry:

сильная фраза %))
u0rypT
Posts: 175
Joined: 2004-12-30 18:13:16
Location: Russia
Contact:

Post by u0rypT »

Если есть сильная потребность - я могу написать.
Design, webdev, coding, c#, php, asp.net, xml, perl, sql, ajax, drawing, illustrating, restoration, photo, photoshop, schedule, pron, guitar, lead-guitar, js, jsp, java, dom, html, *nix, struts, cs, etc
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

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

Post by Gromiz »

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

Post by Mirage »

Gromiz wrote:обременять никого не хотел, просто думал, что должны же быть первые скрипты, когда никаких наворотов не требовалось =)

меня лично не обременяешь :))
все равно должно соблюдаться хотя бы минимум удобства - иначе зачем использовать скрипт? :roll:

Попробуй вот так:

Code: Select all

sub Lumder()
var X, Y, MaxRange = 3, MaxVes = 620, k = 0
for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
 if Tree(UO.GetX()+X, UO.GetY()+Y) then
   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())
;********************************
  ; 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('Что-то крепкое попалось!')
      return 0
   endif 
   If UO.Weight > MaxVes Then
    UO.Print('Перегруз!')
     return 0
   endif
   If UO.Life < Uo.Str/10 then
    UO.Print('А мы умираем!')
    return 0
   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

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

вроде бы достаточно просто и в полне универсально

PS
из коментов:
ищет деревья на растоянии 3 тайлов от чара, рубит 10 попыток пока не вырубилось либо не достигнут вес 620 стоунов, использует топоры повернутые вправо или влево. Если рядом несколько деревьев - вырубить должен все. Работает на РАНУО и сферовых шардах. Проверки сообщений делал по трем достаточно известным шардам.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Разве нельзя добавить объект и использовать топор на waittargetobject? Это же так просто..
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Post by Gromiz »

Спасибо, скрипт работает)

а нормально, что постоянно пишет:
QuietMode OFF


п.с.
при 2что-то крепкое попалось" скрипт заканчивает работу?


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

Post by Mirage »

Nmy wrote:Разве нельзя добавить объект и использовать топор на waittargetobject? Это же так просто..

топоры бывают ломаются, у нас на шарде они вертятся при падении на землю (случайно ударили в момент надевания). Опять же зачем кудато вообще тыкать(иногда на то что надето на кукле трудно попасть - можно попытаться рубыть перчатками например :))))? Скрипту пох какой топор - лишь бы он лежал в бэкпаке или был одет на чара.

опять же после того как он порубит неделю на "простом варианте" он попросит автоматизировать процесс рубки - зараз уж и выложил :lol:

2 Gromiz

после 10 неудачных попыток (скилл маловат - вышка не рубится) скрипт останавливается. это можно убрать - но я бы не стал. Долбить 10 часов одно дерево ради 1 фаир лога имхо маразм...

чтобы остановить скрипт можно конечно дописать кусок строк в 3-5 но опять же имхо проще пользоваться встроенной терминаталкой - "say ,terminate all"

по поводу сообщения в конце:
после каждого
return 0
добавь
UO.Print("Все")
UO.Sound(100)

Code: Select all

 return 0 
    UO.Print("Все")
   UO.Sound(100)
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Post by Gromiz »

да тут один цвет логов, обычные.

сообщение все равно выходит "QuietMode OFF"
это не страшно- рабоет и то славно


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


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

Code: Select all

sub Lumber()
var X, Y, MaxRange = 3, MaxVes = 190, k = 0
for Y = -MaxRange to MaxRange
for X = -MaxRange to MaxRange
 if Tree(UO.GetX()+X, UO.GetY()+Y) then
   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())
;********************************
  ; Auto Tools
    if UO.Count(0x0F48) || UO.Count(0x0F44)  then
     if UO.Count(0x0F48) then
      UO.UseType(0x0F48); <-- Топор
     else
      UO.UseType(0x0F44); <-- Топор
      endif
      else
   UO.Set('quiet','0')
    UO.Print('Gde TOPOR??!')
     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('4to-to krepkoe popalos!')
      return 0
       UO.Print("VSE")
         UO.Sound(100)
   endif
   If UO.Weight > MaxVes Then
    UO.Print('Peregryzka!')
     return 0
       UO.Print("VSE")
         UO.Sound(100)
   endif
   If UO.Life < Uo.Str/10 then
    UO.Print('IM die!')
    return 0
       UO.Print("VSE")
        UO.Sound(100)
   endif
   until UO.InJournal("0xA20D|0xA2DE|0xA2E7|0xA308|0xA309|0xA30D|Тут нечего рубить|nothing|no logs|You can|Вы не можете до этого достать|Дерево слишком далеко|too far away|свободным для вашего удара")
 endif
   next
     next
 return 0
       UO.Print("VSE")
         UO.Sound(100)
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
Gromiz
Posts: 444
Joined: 2005-02-08 18:39:50
Location: Moscow

Post by Gromiz »

можно еще вопрос?

куда надо поместить

Code: Select all

   UO.Print('STOP')

чтобы при окончании скрипта он сообщение выводил в журнал

т.е.
сообщение "стоп" и скрипт можно опять запускать

п.с.
в конец скрипта ставил, не помогло
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

Code: Select all

uo.set('quiet','0')
uo.print('stop')


подряд напиши
**Выставляем отступы в скриптах*** ©Destruction
Feel the Power of Dark Side
Post Reply