Yoko
http://forum.yoko.com.ua/

Энчатинг (шард Антарес)
http://forum.yoko.com.ua/viewtopic.php?f=15&t=11967
Page 1 of 1

Author:  Ururu [ 2007-05-16 17:53:34 ]
Post subject:  Энчатинг (шард Антарес)

Скрипт для Антареса, так как только там есть энчатинг.

Для работы скрипта, необходимы рядом с форжей, два сундука. В первый кидаем много молотков, дезенчат тулсов, ингов озона, шадоу, блю, кринита, ская, стила. Так же кидаем туда еды (фиш стейки). Если каких то ингов нет, ничего страшного. Если инги или инструмент закончатся, закончится и скрипт. Если закончится еда, скрипт продолжит работу, но смерть чара на вашей совести. Во второй сундук кидаем пустые мешки.

Скрипт кует горжетки, ломает их тулсом. Скидывает в первый сундук мешки, наполняя их энчатами (по 100). В общем все в коментах. Дерзайте.

Code:
##########################################
#         Enchanting v.1.00
#         Shard - Antares
#   The author - Ururu
#   The proof-reader - пожелал остатся неизвестным
##########################################
# Для работы скрипта необходимо:
##########################################
# 1) Убедитель что в паке и на чаре нет горжеток =)
#    В паке недолжно быть мешков левых.
##########################################
# 2) рядом с форжей поставить 2 сундука
##########################################
# 3) в первый сундук накидать металлы (какие есть):
#    а) Ozone
#    б) Shadow
#    в) Blue
#    г) Crinit
#    д) Sky
#    е) Steel
# З.Ы. Других металлов быть не должно !!!
##########################################
# 4) туда же (в первый сундук) кидаем:
#    а) молотки
#    б) дезенчат тулсы
#    в) еду (фиш стейки)
##########################################
# 5) во второй сундук нужно положить пустых мешков
##########################################
# 6) тут заменить ID, на ID своих сундуков

VAR Sunduk = '0x40395869' ; ID сундука с металом, инструментом
VAR Sunduk2 = '0x4038B93C' ; ID сундука с пустыми мешками

##########################################
##########################################
VAR Hammer = '0x13E3' ; тип Smith's Hammer
VAR Tools = '0x1EB8' ; тип Disenchanting Tools
VAR Steaks = '0x097B' ; тип Fish Steaks
VAR Enchant = '0x1869' ; тип Armor Enchant
VAR Bag = '0x0E76' ; тип Bag
VAR LastTimer
var ID

sub Start()
      UO.UseObject(Sunduk)
         Wait(500)
   CheckLag()
      UO.UseObject(Sunduk2)
         Wait(500)
   CheckLag()
   Repeat
   Main()
         Wait(100)
   CheckLag()
   Until UO.Dead()
End Sub
;*****************************************
; Основа
;*****************************************
Sub Main()
      UO.FindType(Hammer,'0','2')
   CheckLag()
   If UO.FindCount() Then
      UO.Print("The hammer is found")
         Wait(500)
   Else
   FirstTake()
         Wait(100)
   End If
      UO.FindType(Tools,'0x0488','2')
   CheckLag()
   If UO.FindCount() Then
      UO.Print("The Disenchanting Tools is found")
         Wait(500)
   Else
   SecondTake()
         Wait(100)
   End If
      UO.FindType(Steaks,'0','2')
   CheckLag()
   If UO.FindCount() Then
      UO.Print("The Meal is found")
         Wait(500)
   Meal()
         Wait(100)
   Else
   ThirdTake()
         Wait(100)
   End If
   FirstIngots()
         Wait(100)
      UO.FindType(Enchant,'0x000F','2')
         Wait(100)
   If UO.FindCount() > 99 Then
   Shift()
         Wait(500)
   CheckLag()
   Shift2()
         Wait(500)
   CheckLag()
   Shift3()
         Wait(500)
   CheckLag()
   Else
         Wait(50)
   End If
End Sub
;*****************************************
; Поиск мешков в сундуке
;*****************************************
Sub Shift()
      UO.FindType(Bag,'-1',Sunduk2)
   If UO.FindCount() Then
      UO.Grab(1,'finditem')
         Wait(500)
   CheckLag()
   Else
      UO.Print("The bag is not found")
         Wait(100)
      UO.Exec('Terminate All')
   End If
End Sub
;*****************************************
; Разгрузка энчатов в мешок
;*****************************************
Sub Shift2()
      UO.FindType(bag,'-1','backpack')
   If UO.FindCount() Then
         ID=UO.GetSerial('finditem')
   Else
      UO.Print('The bag is not found')
   End If
      UO.SetReceivingContainer(ID)
      UO.Findtype(enchant,'-1','backpack')
   While UO.FindCount()
      UO.Grab(0,'finditem')
         wait(500) 
   End If
      UO.FindType(enchant,'-1','backpack')
   Wend
      UO.UnSetReceivingContainer()
End Sub
;*****************************************
; Скидывание мешка
;*****************************************
Sub Shift3()
      UO.FindType(Bag)
   If UO.FindCount() Then
      UO.MoveItem('finditem','1',Sunduk)
         Wait(500)
   CheckLag()
   Else
   CheckLag()
   End If
End Sub
;*****************************************
; Поиск молотка
;*****************************************
Sub FirstTake()
      UO.FindType(Hammer,'0',Sunduk)
   If UO.FindCount() Then
      UO.Grab(1,'finditem')
         Wait(500)
   CheckLag()
   Else
      UO.Print("The hammer is not found")
         Wait(100)
      UO.Exec('Terminate All')
   End If
End Sub
;*****************************************
; Поиск дезенчат тулса
;*****************************************
Sub SecondTake()
      UO.FindType(Tools,'0x0488',Sunduk)
   If UO.FindCount() Then
      UO.Grab(1,'finditem')
         Wait(500)
   CheckLag()
   Else
      UO.Print("The Disenchanting Tools is not found")
         Wait(100)
      UO.Exec('Terminate All')
   End If
End Sub
;*****************************************
; Поиск еды
;*****************************************
Sub ThirdTake()
      UO.FindType(Steaks,'0',Sunduk)
   If UO.FindCount() Then
      UO.Grab(10,'finditem')
         Wait(500)
   CheckLag()
   Else
      UO.Print("The Meal is not found")
         Wait(100)
      UO.Print("I shall die of famine")
   End If
End Sub
;*****************************************
; Прием пищи
;*****************************************
Sub Meal()
      UO.DeleteJournal()
      UO.FindType(Steaks,'0','2')
   Repeat
      UO.UseType(Steaks)
         Wait(100)
   CheckLag()
   Until UO.InJournal("не можете")
End Sub
;*****************************************
; Поиск металла
;*****************************************
Sub FirstIngots()
      UO.FindType('0x1BF2','-1',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
   Search()
         Wait(500)
   Else
   SecondIngots()
         Wait(500)
   End If
End Sub
;*****************************************
; Второй поиск металла
;*****************************************
Sub SecondIngots()
      UO.FindType('0x0F8E','-1',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
   Search()
         Wait(500)
   Else
      UO.Print("Metal is not found")
         Wait(500)
      UO.Print("The script comes to the end")
         Wait(1000)
      UO.Exec('Terminate All')
   End If
End Sub
;*****************************************
; Основной модуль запуска ковки
;*****************************************
Sub Search()
      UO.FindType('0x1BF2','0x048F',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Ozone is found")
   Ozone()
         Wait(500)
   Else
      UO.Print("Metal Ozone is not found")
         Wait(100)
   End If
      UO.FindType('0x1BF2','0x0770',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Shadow is found")
   Shadow()
         Wait(500)
   Else
      UO.Print("Metal Shadow is not found")
         Wait(100)
   End If
      UO.FindType('0x1BF2','0x078D',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Blue is found")
   Blue()
         Wait(500)
   Else
      UO.Print("Metal Blue is not found")
         Wait(100)
   End If
      UO.FindType('0x0F8E','0x0487',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Crinit is found")
   Crinit()
         Wait(500)
   Else
      UO.Print("Metal Crinit is not found")
         Wait(100)
   End If
      UO.FindType('0x1BF2','0x0492',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Sky is found")
   Sky()
         Wait(500)
   Else
      UO.Print("Metal Sky is not found")
         Wait(100)
   End If
      UO.FindType('0x1BF2','0x042C',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Steel is found")
   Steel()
         Wait(500)
   Else
      UO.Print("Metal Steel is not found")
         Wait(100)
   End If
      UO.FindType('0x1BF2','0x03A4',Sunduk)
         Wait(100)
   If UO.GetQuantity('finditem') > 20 Then
      UO.Print("Metal Dark is found")
   Dark()
         Wait(500)
   Else
      UO.Print("Metal Dark is not found")
         Wait(100)
   End If
End Sub
;*****************************************
; Ковка из Ozone
;*****************************************
Sub Ozone()
   UO.DeleteJournal()
   UO.FindType('0x1BF2','0x048F',Sunduk)
CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BF2')
      UO.WaitMenu('Colored Armor','Ozone Armor','Ozone Armor','Ozone Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Ковка из Shadow
;*****************************************
Sub Shadow()
   UO.DeleteJournal()
   UO.FindType('0x1BF2','0x0770',Sunduk)
CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BF2')
      UO.WaitMenu('Blacksmithing','Colored Armor','Shadow Armor','Shadow Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Ковка из Blue
;*****************************************
Sub Blue()
      UO.DeleteJournal()
      UO.FindType('0x1BF2','0x078D',Sunduk)
   CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BF2')
      UO.WaitMenu('Blacksmithing','Colored Armor','Colored Armor','Blue Armor','Blue Armor','Blue Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Ковка из Crinit
;*****************************************
Sub Crinit()
      UO.DeleteJournal()
      UO.FindType('0x0F8E','0x0487',Sunduk)
   CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x0F8E')
      UO.WaitMenu('Blacksmithing','Colored Armor','Crinit Armor','Crinit Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Ковка из Sky
;*****************************************
Sub Sky()
      UO.DeleteJournal()
      UO.FindType('0x1BF2','0x0492',Sunduk)
   CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BF2')
      UO.WaitMenu('Sky Armor','Sky Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Ковка из Steel
;*****************************************
Sub Steel()
      UO.DeleteJournal()
      UO.FindType('0x1BF2','0x042C',Sunduk)
   CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BF2')
      UO.WaitMenu('Steel Armor','Steel Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Ковка из Dark
;*****************************************
Sub Dark()
      UO.DeleteJournal()
      UO.FindType('0x1BF2','0x03A4',Sunduk)
   CheckLag()
   If UO.FindCount() Then
      UO.Grab(20,'finditem')
         Wait(200)
   CheckLag()
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BF2')
      UO.WaitMenu('Dark Armor','Dark Gorget')
      UO.UseType(Hammer)
   Repeat
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100
   CheckLag()
   Else
         Wait(100)
   End If
      UO.FindType('0x1413','-1','2')
   While UO.FindCount()
      UO.WaitTargetType('0x1413')
         Wait(100)
      UO.UseType(Tools)
   CheckLag()
      UO.FindType('0x1413','-1','2')
   Wend
         Wait(100)
   Clearing()
End Sub
;*****************************************
; Разгрузка излишков металла
;*****************************************
Sub Clearing()
      UO.FindType('0x1BF2','-1','2')
   While UO.FindCount()
      UO.MoveItem('finditem','0',Sunduk)
         Wait(300)
   CheckLag()
      UO.FindType('0x1BF2','-1','2')
   Wend
         Wait(500)
      UO.FindType('0x0F8E','-1','2')
   While UO.FindCount()
      UO.MoveItem('finditem','0',Sunduk)
         Wait(300)
   CheckLag()
      UO.FindType('0x0F8E','-1','2')
   Wend
         Wait(500)
End Sub
;*****************************************
; Чек лаг =)
;*****************************************
Sub CheckLag()
      UO.DeleteJournal()
      UO.Click('backpack')
   Repeat
      n=n+1
         Wait(200)
   Until UO.InJournal("backpack|Backpack") Or n>50
End Sub

Author:  Nmy [ 2007-05-16 19:53:27 ]
Post subject: 

выгледит апетитно, НО- поменяй чек лаг :!:

Author:  Ururu [ 2007-05-16 20:24:37 ]
Post subject: 

Заменил.

Author:  Destruction [ 2007-05-16 21:13:19 ]
Post subject: 

Бред, бред, бред !!

Code:
   Repeat 
         Wait(500)
            LastTimer=uo.timer()
   Until UO.InJournal("положили") Or UO.InJournal("не удалось") Or UO.Timer()>LastTimer+100

Ага, маладэц, возьми с полки конфетку и подавись с таким таймером :)

И ваще - нафига стока одинаковых функций?

Читай мануал по переменным !

Author:  Ururu [ 2007-05-16 21:19:33 ]
Post subject: 

Много одинаковых функций?
Твои слова =)
Quote:
7. Крайне желательным является присутствие в скрипте возможность отладки.


А чем таймер не угодил? Сколько тогда оптимально ожидание?


З.Ы. Кто ткнул что не работает?? =) Не я 1 тестил.

Author:  Destruction [ 2007-05-16 21:34:34 ]
Post subject: 

Я ткнул, не работает - тестить негде :)

Наличие ф-ций - отладки - не означает наличие одинаковых функций.

У тебя примерно так выглядит:
Code:
sub a()
uo.print( "Privet" )
endsub

sub b()
uo.print( "Privet2" )
endsub

sub main()
a()
b()
endsub


А можно сделать так:
Code:
sub main()
a( 0 )
a( 1 )
endsub

sub a( n )
DIM arr[2]
arr[0] = "Privet"
arr[1] = "Privet2"
uo.print( arr[i] )
endsub


Это я про ф-ции Ozone и им подобные.

Длинный скрипт - не значит хороший скрипт. Оформи скрипт покороче, создай переменные - где же настраиваемость скрипта? У тебя куча ф-ций, вместо десятка переменных !!!

Никаких findtype( "0x0000" ) быть не должно, всё в переменные !!!

Никаких фраз в комментах, чего не должно быть - не должно быть :) Сделай пару проверок в скрипте итп, когда приведёшь в порядок - выкладывай, а на данном этапе скрипт никуда не годен ввиду своей неоформленности :)

+ с отступами у тебя бодяга)

Касательно того фрагмента скрипта что я привёл - он НИКОГДА не выйдет из него по таймеру, подумай почему.

Все журналовские сабжи - в переменные! Вообще дохренищи минусов)

Author:  Ururu [ 2007-05-16 21:59:34 ]
Post subject: 

Исправлюсь =)
А насчет негде тестить, не смеши =) У тебя есть чар на антаресе...

Author:  Destruction [ 2007-05-17 20:43:27 ]
Post subject: 

Ururu wrote:
Исправлюсь =)
А насчет негде тестить, не смеши =) У тебя есть чар на антаресе...

Хочешь его прокачать?)

Author:  Ururu [ 2007-05-17 22:01:19 ]
Post subject: 

Давай ингов. Покачаю на этом скрипте =)

Author:  Destruction [ 2007-05-17 23:08:17 ]
Post subject: 

Ururu wrote:
Давай ингов. Покачаю на этом скрипте =)

Хочешь добыть мне ингов, чтобы я тебе их дал?)

Author:  Skicher [ 2007-08-06 18:55:15 ]
Post subject: 

А хатите я вам дам накапать ингав и пракачать чара, если вы наканец замените функции на переменные, кстати скрипт работает а переменые - всеголиш апгрейд, работает и ето главное.

Author:  Ururu [ 2007-08-06 21:11:00 ]
Post subject: 

На форуме Антареса обсудили это. В скрипте произошли некоторые изменения и исправления. Пишите конкретно что не так. Каких переменных не хватает. На мой взгляд все что меняется, я внес. Если нет , пишите, уточняйте.

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/