Bowcraft для соседнего раздела

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Bowcraft для соседнего раздела

Post by Edred »

Прокачка боукрафта


1 вариант. Крафтим шафты.

Code: Select all

#####################################################################
; Bowcraft. v.1.03b (c) Edred
;
; Чар берет из сундука логи, крафтит из них шафты
; и складывает эти шафты в этот же сундук.
; Если логи закончились - выход.
; Если даггер (или что вы там используете) сломался - 
; скрипт найдет аналогичный по типу в бэкпаке и возьмет
; в руки.
;
; 1.03b: Проверка, если Kolvo = 1, то берем три и кладем обратно два
;        лога.
; 
sub bowcraft() 
	VAR Sunduk = '0x4042B1A1' 		; Сериал сундука
	VAR Logi = '0x1BDD' 			; Тип логов
	VAR Shafts = '0x1BD4' 			; Тип шафтов
	VAR Kolvo = 10					; Брать логов для одного крафта
	VAR k = 0, j, dagger
	dagger = UO.ObjAtLayer( 'Rhand' )
	UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) )
	While TRUE
		UO.FindType( Logi, -1, Sunduk )	; Ищем логи в сундуке
		If UO.FindCount() == 0 Then
			UO.Print("Logs not found, script terminated")
			return
		else
			j = UO.GetQuantity( 'finditem' )
			If j > Kolvo Then
				UO.Print( 'I can use ' + str( j ) + ' logs' )
			else
				UO.Print( "I can't use " + str( j ) + " logs" )
				return
			Endif
		Endif
		If Kolvo == 1 Then
			; v. 1.03
			UO.Grab( '3', 'finditem' )
			wait(500)
			UO.FindType( Logi )
			UO.MoveItem( 'finditem', '2', Sunduk )
			wait(500)
		Else
			UO.Grab( Str( Kolvo ), 'finditem' )
			wait(500)
		Endif
		; А это - динамическая пауза на мув
		while UO.Count( Logi ) < Kolvo
			wait(100)
		wend
		; проверка на то, что в руках по-прежнему даггер
		If CheckInstr() == 0 Then
			UO.Print("You don't have daggers!" )
			return
		Endif
		UO.DeleteJournal()
		UO.CancelMenu()
		UO.WaitMenu ('What do you want to carve', 'shaft' )
		UO.WaitTargetType( Logi )
		UO.UseObject( dagger ) 
		k = 0
		while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
			k = k + 1
			wait(300)
		wend
		If UO.Count( Shafts ) > 0 then
			UO.FindType( Shafts, -1, -1 )
			UO.MoveItem( 'finditem', 0, Sunduk )
			wait(500)
			while UO.Count( Shafts ) > 0
				wait(100)
			wend
			UO.Print( 'Shafts moved' )
		Endif
	Wend
end sub

Sub CheckInstr()
	; проверим, есть ли в правой руке инструмент того же
	; типа, что и в глобальной переменной instrtype
	; если нет - найдем в бэкпаке такой инструмент и
	; возьмем в правую руку.
	VAR typ = UO.GetGlobal( 'instrtype' )
	VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
	If typ == cur Then
		return 1
	Endif
	UO.FindType( typ )
	If UO.FindCount() == 0 Then
		return 0
	Endif
	UO.Equip( 'RHand' , 'finditem' )
	wait(1000)
	return 1
endsub

2 вариант. Крафтим стрелы из шафтов.

Code: Select all

#####################################################################
; Bowcraft2. v.1.01b (c) Edred
;
; Чар берет из сундука шафты и перья, крафтит из них стрелы и
; складывает эти стрелы в этот же сундук.
; Если шафты или перья закончились - выход.
;
sub bowcraft2() 
	VAR Sunduk = '0x404CFAA3' 		; Сериал сундука
	VAR Shafts = '0x1BD4' 			; Тип шафтов
	VAR Feather = '0x1BD1'			; Тип перьев
	VAR Arrows = '0x0F3F'			; Тип стрел
	VAR Kolvo = 1					; Брать шафтов для одного крафта
	VAR k = 0, j
	UO.CancelMenu()
	UO.AutoMenu ('Select arrow type', 'arrow' )
	While TRUE
		If UO.Count( Shafts ) == 0 Then
			UO.FindType( Shafts, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print("Shafts not found, script terminated")
				return
			Endif
			UO.Grab( Str( Kolvo ), 'finditem' )
			wait(500)
			while UO.Count( Shafts ) < Kolvo
				wait(100)
			wend
			CheckLag()
		Endif
		If UO.Count( Feather ) == 0 Then		
			UO.FindType( Feather, -1, Sunduk )
			If UO.FindCount() == 0 Then
				UO.Print("Feather not found, script terminated")
				return
			Endif
			UO.Grab( Str( Kolvo ), 'finditem' )
			wait(500)
			while UO.Count( Feather ) < Kolvo
				wait(100)
			wend
			CheckLag()
		Endif
		UO.DeleteJournal()
		UO.UseType( Shafts ) 
		k = 0
		while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
			k = k + 1
			wait(300)
		wend
		If UO.Count( Arrows ) > 0 then
			UO.FindType( Arrows, -1, -1 )
			UO.MoveItem( 'finditem', 0, Sunduk )
			wait(500)
			while UO.Count( Arrows ) > 0
				wait(100)
			wend
			UO.Print( 'Arrows moved' )
		Endif
	Wend
end sub
Описание обоих скриптов скину в личку Йоко... Хотя комментариев в начале скрипта достаточно вполне :)
Xammep
Posts: 7
Joined: 2006-06-20 17:36:48
Contact:

Post by Xammep »

Первый скрипт у меня не пашет.
Вписал свой айди сундука, тайпы логов и шафтов тут верные.
Дагер в руку. Запускаю скрипт - тишина. Просто стоит ничего не делает.
Джесси
Posts: 25
Joined: 2006-06-27 16:46:00

Post by Джесси »

Xammep wrote:Первый скрипт у меня не пашет.
Вписал свой айди сундука, тайпы логов и шафтов тут верные.
Дагер в руку. Запускаю скрипт - тишина. Просто стоит ничего не делает.
у нас на серваке есть команда .makelast
Xammep
Posts: 7
Joined: 2006-06-20 17:36:48
Contact:

Post by Xammep »

И что?
Ставить на пилот? И перетаскивать каждый раз по 100 бревен?
Скриптик нужен. Или ес ьдругие идеи по этому - в аську предложи :)
Джесси
Posts: 25
Joined: 2006-06-27 16:46:00

Post by Джесси »

Xammep wrote:И что?
Ставить на пилот? И перетаскивать каждый раз по 100 бревен?
Скриптик нужен. Или ес ьдругие идеи по этому - в аську предложи :)
в аську не могу те постучать .... идея есть .... скрипт на подбирание брёвен с пола дальше .makelast и складывание шавтов в сундук ... похожие скрипты без makelast'a есть поищи
Xammep
Posts: 7
Joined: 2006-06-20 17:36:48
Contact:

Post by Xammep »

А почему в аську не можешь?
Да пока ничего подходящег оне нашел :(
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Xammep wrote:Первый скрипт у меня не пашет.
Вписал свой айди сундука, тайпы логов и шафтов тут верные.
Дагер в руку. Запускаю скрипт - тишина. Просто стоит ничего не делает.
Телепаты в отпуске. Какой шард, какой клиент, тексты меню проверил?
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Джесси
Posts: 25
Joined: 2006-06-27 16:46:00

Post by Джесси »

Edred wrote:
Xammep wrote:Первый скрипт у меня не пашет.
Вписал свой айди сундука, тайпы логов и шафтов тут верные.
Дагер в руку. Запускаю скрипт - тишина. Просто стоит ничего не делает.
Телепаты в отпуске. Какой шард, какой клиент, тексты меню проверил?
Спасибо , Маст Дай помог ...шард Форест Варз клиент 2.0.3
Alegarh
Posts: 61
Joined: 2005-02-22 10:55:22
Location: Русский из Латвии.

Post by Alegarh »

А у меня беда. Раньше скрипт на стрелы у меня работал, а сейчас перестал :( шард ДРВ
Разобрался :)

Code: Select all

UO.AutoMenu ('Select arrow type', 'arrow (1 shaft, 1 feather)' )
Shadowdancer
Posts: 96
Joined: 2005-08-25 23:35:29

Post by Shadowdancer »

можно этот скрипт на инготы переделать что бы с шафтов и айрона делал болты! а то у меня когда скрипт врубаешь выбивает ошибку. а потом вообще когда на шафты клацаешь даже меню невыходит крафта :(вот скрипт что я переделал

Code: Select all

##################################################################### 
; Bowcraft2. v.1.01b (c) Edred 
; 
; ×àð áåðåò èç ñóíäóêà øàôòû è ïåðüÿ, êðàôòèò èç íèõ ñòðåëû è 
; ñêëàäûâàåò ýòè ñòðåëû â ýòîò æå ñóíäóê. 
; Åñëè øàôòû èëè ïåðüÿ çàêîí÷èëèñü - âûõîä. 
; 
sub bowcraft2() 
   VAR Sunduk = '0x4002A2AC'       ; Ñåðèàë ñóíäóêà 
   VAR Shafts = '0x1BD4'          ; Òèï øàôòîâ 
   VAR iron ingots = '0x1BEF'         ; Òèï ïåðüåâ 
   VAR Arrows = '0x1BFB'         ; Òèï ñòðåë 
   VAR Kolvo = 2               ; Áðàòü øàôòîâ äëÿ îäíîãî êðàôòà 
   VAR k = 0, j 
   UO.CancelMenu() 
   UO.AutoMenu ('Select arrow type', 'crossbow bolt (1 shaft, 1 iron ingot)' ) 
   While TRUE 
      If UO.Count( Shafts ) == 0 Then 
         UO.FindType( Shafts, -1, Sunduk ) 
         If UO.FindCount() == 0 Then 
            UO.Print("Shafts not found, script terminated") 
            return 
         Endif 
         UO.Grab( Str( Kolvo ), 'finditem' ) 
         wait(500) 
         while UO.Count( Shafts ) < Kolvo 
            wait(100) 
         wend 
         CheckLag() 
      Endif 
      If UO.Count( iron ingots ) == 0 Then       
         UO.FindType( iron ingot, -1, Sunduk ) 
         If UO.FindCount() == 0 Then 
            UO.Print("iron ingots not found, script terminated") 
            return 
         Endif 
         UO.Grab( Str( Kolvo ), 'finditem' ) 
         wait(500) 
         while UO.Count( iron ingots ) < Kolvo 
            wait(100) 
         wend 
         CheckLag() 
      Endif 
      UO.DeleteJournal() 
      UO.UseType( Shafts ) 
      k = 0 
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 ) 
         k = k + 1 
         wait(300) 
      wend 
      If UO.Count( crossbow bolt ) > 0 then 
         UO.FindType( crossbow bolt, -1, -1 ) 
         UO.MoveItem( 'finditem', 0, Sunduk ) 
         wait(500) 
         while UO.Count( crossbow bolt ) > 0 
            wait(100) 
         wend 
         UO.Print( 'crossbow bolt moved' ) 
      Endif 
   Wend 
end sub

sub checklag() 
deljournal("ackpack") 
uo.click("backpack") 
repeat 
wait(50) 
until uo.injournal("ackpack") 
endsub
Driskill
Posts: 39
Joined: 2006-09-14 10:38:08
Contact:

Post by Driskill »

работает но нестабильно... шард тот же что и у тебя;)

Code: Select all

sub bowcraft2() 
   VAR Sunduk = '0x40D34F4D'       ; Na?eae noiaoea 
   VAR Shafts = '0x1BD4'          ; Oei oaooia 
   VAR ingot = '0x1BEF'         ; Oei ia?uaa 
   VAR bolt = '0x1BFB'         ; Oei no?ae 
   VAR Kolvo = 1               ; A?aou oaooia aey iaiiai e?aooa 
   VAR k = 0, j 
   UO.CancelMenu() 
   UO.AutoMenu ('Select arrow type', 'crossbow bolt (1 shaft, 1 iron ingot)' ) 
   While TRUE 
      If UO.Count( Shafts ) == 0 Then 
         UO.FindType( Shafts, -1, Sunduk ) 
         If UO.FindCount() == 0 Then 
            UO.Print("Shafts not found, script terminated") 
            return 
         Endif 
         UO.Grab( Str( Kolvo ), 'finditem' ) 
         wait(500) 
         while UO.Count( Shafts ) < Kolvo 
            wait(100) 
         wend 
         CheckLag() 
      Endif 
      If UO.Count( ingot ) == 0 Then        
         UO.FindType( ingot, -1, Sunduk ) 
         If UO.FindCount() == 0 Then 
            UO.Print("iron ingots not found, script terminated") 
            return 
         Endif 
         UO.Grab( Str( Kolvo ), 'finditem' ) 
         wait(500) 
         while UO.Count( ingot ) < Kolvo 
            wait(100) 
         wend 
         CheckLag() 
      Endif 
      UO.DeleteJournal() 
      UO.UseType( Shafts ) 
      k = 0 
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 ) 
         k = k + 1 
         wait(300) 
      wend 
      If UO.Count( bolt ) > 0 then 
         UO.FindType( bolt, -1, -1 ) 
         UO.MoveItem( 'finditem', 0, Sunduk ) 
         wait(500) 
         while UO.Count( bolt ) > 0 
            wait(100) 
         wend 
         UO.Print( 'crossbow bolt moved' ) 
      Endif 
   Wend 
end sub 

sub checklag() 
uo.click("backpack") 
repeat 
wait(50) 
until uo.injournal("backpack") 
endsub
все что нас не убивает - делает нас крепче!
Syskilla
Posts: 7
Joined: 2008-10-29 15:30:24

Post by Syskilla »

вскрыв мозга ппц!
ипробывал жесть сколько вариантов с () [] [()] ([])
прочитал внемательно в хелпе на http://yoko.netroof.net/help/ в разделе крафт всё про waitmenu и automenu и ваще так и не зделал чтобы крафтил шафты из логов из сумки в моем бакпаке с логами...
берет логи из сумки(с айди логоф и сумки всё окай) по 7штук кладет в бакпак и какраз должен начаться крафт но выводит воткакую фигню...

кусок скрина из журнала

Image

что делать ппц... а с УО пилотом работать себя не уважать что корректировать подскажите ИМБЫ ))))

кстати скрипт юзаю самый верхний на крафт шафтов из логов

играю на Forgotten World(FW)...
клиент 1.26.4b

куски скрина с менюшками крафта если нид prompt'ы и choice'ы

первая менюшка:
Image

вторая менюшка:
Image


:arrow: need help :!: :idea:
Syskilla
Posts: 7
Joined: 2008-10-29 15:30:24

Post by Syskilla »

изначально в скрипте прописано shaft я и так пробывал и менял на Shafts ибо у меня на серваке шафты только по 7 минимум крафтятся...
и крафтятся из всех логов на которые юзаеш даггер(блако не на все которые вообщеесть в бакпаке)

а когда менял промты и чойсы ограничивал из скобками разными и добавлял второй чойс ничего кароче не получилось...
поидее если АвтоМеню то несколько пар промт+чойс не прокатят же...
а ВэйтМеню при любых попытках добавления чегото нового пишет
Line 58: parse error (понятное дело что строчка которую я пытаюсь изменить и есть 58ая)
Syskilla
Posts: 7
Joined: 2008-10-29 15:30:24

Post by Syskilla »

просто интересно после стольких лет фокум ктонить просматривает или все "старики" забили с концами :?:
Syskilla
Posts: 7
Joined: 2008-10-29 15:30:24

Post by Syskilla »

это какбы сам вариант крипта по правилам вроде всё правильно... мб ошибась
моему изменению подверглась лиш строка 58 которая какраз и выдает parse error

Code: Select all

      UO.WaitMenu ('What do you want to carve', 'Bowyer Items', ['Bowyer Items', 'shaft' ]) 

Code: Select all

##################################################################### 
; Bowcraft. v.1.03b (c) Edred 
; 
; ×àð áåðåò èç ñóíäóêà ëîãè, êðàôòèò èç íèõ øàôòû 
; è ñêëàäûâàåò ýòè øàôòû â ýòîò æå ñóíäóê. 
; Åñëè ëîãè çàêîí÷èëèñü - âûõîä. 
; Åñëè äàããåð (èëè ÷òî âû òàì èñïîëüçóåòå) ñëîìàëñÿ - 
; ñêðèïò íàéäåò àíàëîãè÷íûé ïî òèïó â áýêïàêå è âîçüìåò 
; â ðóêè. 
; 
; 1.03b: Ïðîâåðêà, åñëè Kolvo = 1, òî áåðåì òðè è êëàäåì îáðàòíî äâà 
;        ëîãà. 
; 
sub bowcraft() 
   VAR Sunduk = '0x4001BA3D'       ; Ñåðèàë ñóíäóêà 
   VAR Logi = '0x1BDD'          ; Òèï ëîãîâ 
   VAR Shafts = '0x1BD4'          ; Òèï øàôòîâ 
   VAR Kolvo = 7               ; Áðàòü ëîãîâ äëÿ îäíîãî êðàôòà 
   VAR k = 0, j, dagger 
   dagger = UO.ObjAtLayer( 'Rhand' ) 
   UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) ) 
   While TRUE 
      UO.FindType( Logi, -1, Sunduk )   ; Èùåì ëîãè â ñóíäóêå 
      If UO.FindCount() == 0 Then 
         UO.Print("Logs not found, script terminated") 
         return 
      else 
         j = UO.GetQuantity( 'finditem' ) 
         If j > Kolvo Then 
            UO.Print( 'I can use ' + str( j ) + ' logs' ) 
         else 
            UO.Print( "I can't use " + str( j ) + " logs" ) 
            return 
         Endif 
      Endif 
      If Kolvo == 1 Then 
         ; v. 1.03 
         UO.Grab( '3', 'finditem' ) 
         wait(500) 
         UO.FindType( Logi ) 
         UO.MoveItem( 'finditem', '2', Sunduk ) 
         wait(500) 
      Else 
         UO.Grab( Str( Kolvo ), 'finditem' ) 
         wait(500) 
      Endif 
      ; À ýòî - äèíàìè÷åñêàÿ ïàóçà íà ìóâ 
      while UO.Count( Logi ) < Kolvo 
         wait(100) 
      wend 
      ; ïðîâåðêà íà òî, ÷òî â ðóêàõ ïî-ïðåæíåìó äàããåð 
      If CheckInstr() == 0 Then 
         UO.Print("You don't have daggers!" ) 
         return 
      Endif 
      UO.DeleteJournal() 
      UO.CancelMenu() 
      UO.WaitMenu ('What do you want to carve', 'Bowyer Items', ['Bowyer Items', 'shaft' ]) 
      UO.WaitTargetType( Logi ) 
      UO.UseObject( dagger ) 
      k = 0 
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 ) 
         k = k + 1 
         wait(300) 
      wend 
      If UO.Count( Shafts ) > 0 then 
         UO.FindType( Shafts, -1, -1 ) 
         UO.MoveItem( 'finditem', 0, Sunduk ) 
         wait(500) 
         while UO.Count( Shafts ) > 0 
            wait(100) 
         wend 
         UO.Print( 'Shafts moved' ) 
      Endif 
   Wend 
end sub 

Sub CheckInstr() 
   ; ïðîâåðèì, åñòü ëè â ïðàâîé ðóêå èíñòðóìåíò òîãî æå 
   ; òèïà, ÷òî è â ãëîáàëüíîé ïåðåìåííîé instrtype 
   ; åñëè íåò - íàéäåì â áýêïàêå òàêîé èíñòðóìåíò è 
   ; âîçüìåì â ïðàâóþ ðóêó. 
   VAR typ = UO.GetGlobal( 'instrtype' ) 
   VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) 
   If typ == cur Then 
      return 1 
   Endif 
   UO.FindType( typ ) 
   If UO.FindCount() == 0 Then 
      return 0 
   Endif 
   UO.Equip( 'RHand' , 'finditem' ) 
   wait(1000) 
   return 1 
endsub
Post Reply