И снова перемещение объектов

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Login9000
Posts: 26
Joined: 2010-04-15 13:04:50

И снова перемещение объектов

Post by Login9000 »

Нашел тут скрипт под тинкера, который делает ключи. Вооружившись предыдущим опытом, решил написать перемещение ключей из бекпака в мешок. Но... увы и ах, "No items found!" Хотя данные мешка и ключей проверял 100500 раз. Помогите, кому не лень.

Code: Select all

sub main()
var Meshok = '0x40F85A6A'
var Key = '0x1010'  
var timeout=0
  UO.deletejournal()
  while UO.SkillVal("Tinkering",1) < 100000
  UO.Exec("waitmenu 'Tinkering' 'Keys' 'Iron key'")
  UO.usetype("0x1EBC")
  repeat
    timeout=timeout+500
    wait(500)
  until UO.injournal("You put") OR (timeout>10000)
  timeout=0
  if UO.injournal("You put") then
    UO.waittargettype("0x1053")
        wait(1500)
  endif
  UO.deletejournal()
  wend
uo.FindType(Key,'-1','backpack')
     if uo.FindCount() then
       uo.moveitem('finditem','all',Meshok)
       wait(500)
     end if
until UO.Dead()
end sub
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: И снова перемещение объектов

Post by Beyonder »

Если он делает ключ и выдаёт эту ошибку, то ошибка здесь:
var Key = '0x1010'
Если он НЕ делает ключ и выдаёт эту ошибку, то проблема здесь:
UO.usetype("0x1EBC")
Андрюха из Одессы
Posts: 164
Joined: 2009-03-21 10:03:06
Location: Одесса-Мама
Contact:

Re: И снова перемещение объектов

Post by Андрюха из Одессы »

Из старых запасов скрипт. Не знаю, кто его автор.
Скрипт простой, но хороший.

Code: Select all

sub tink() 
   VAR Sunduk = '0x4004411D'       ; Сериал сундука, из которого брать инготы и сбрасывать готовые ключи. 
   VAR Ingi = '0x1BF2'          ; Тип ингов 
   VAR Instrum = '0x1EBC'          ; Тип инструмента тинкера 
   VAR Key = '0x100E'          ; Тип ключа 
   VAR Kolvo = 100          ; Брать ингов 
   VAR k = 0 
   While TRUE 
      UO.FindType( Ingi, -1, Sunduk )   ; Ищем инги в сундуке 
      If UO.FindCount() == 0 Then 
         UO.Print("Iron Ingots not found, script terminated") 
         return 
      Endif 
      UO.Grab( Str( Kolvo ), 'finditem' ) 
      wait( 2000 ) 
      While UO.Count( Ingi ) > 0 
         ; Пока в паке есть инги 
         UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' ) 
         UO.DeleteJournal() 
         UO.CancelMenu() 
         UO.WaitMenu ('Tinkering' 'Keys' 'Iron key')  # Подставил твое меню. Периодически проверяй, не изминился ли порядок выбора, в меню.
         UO.UseType( Instrum ) 
         k = 0 
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 ) 
            k = k + 1 
            wait(500) 
         wend 
         if UO.Count( Key ) > 0 then 
            UO.FindType( Key, -1, -1 ) 
            UO.MoveItem( 'finditem', 0, Sunduk ) 
            wait( 1000 ) 
            UO.Print( 'Key moved' ) 
         end if 
      Wend 
   Wend 
end sub
Last edited by Андрюха из Одессы on 2010-04-16 13:11:32, edited 1 time in total.
Спасибо всем, у кого учился!

Меня трудно найти, легко потерять, и невозможно забыть. Я - рабочий исходник!
Андрюха из Одессы
Posts: 164
Joined: 2009-03-21 10:03:06
Location: Одесса-Мама
Contact:

Re: И снова перемещение объектов

Post by Андрюха из Одессы »

Ой....промахнулся слегка.
Если я начинаю цитировать сам себя - это мания величия? :lol:

З.Ы. Я не могу понять, за что у тебя отвечает данное условие:

Code: Select all

if UO.injournal("You put") then
    UO.waittargettype("0x1053")
        wait(1500)
  endif
0x1053 - это что за предмет такой?

З.Ы.Ы. Beyonder, А что означает единица после скила:
UO.SkillVal("Tinkering",1) :?:
Я догадываюсь, но проверить негде.
Спасибо всем, у кого учился!

Меня трудно найти, легко потерять, и невозможно забыть. Я - рабочий исходник!
Login9000
Posts: 26
Joined: 2010-04-15 13:04:50

Re: И снова перемещение объектов

Post by Login9000 »

Скрипт не мой =)
Изначально скрипт был делать бутылки. Я пытался дописать, чтобы делались ключи, а не бутыли, и чтобы клались они в мешок.
Login9000
Posts: 26
Joined: 2010-04-15 13:04:50

Re: И снова перемещение объектов

Post by Login9000 »

Допишите, пожалуйста, этот скрипт так, чтобы он складывал в мешок.

Code: Select all

sub main()
  var timeout=0
  UO.deletejournal()
  while UO.SkillVal("Tinkering",1) < 100000
  UO.Exec("waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'")
  UO.usetype("0x1EBC")
  repeat
    timeout=timeout+500
    wait(500)
  until UO.injournal("You put") OR (timeout>10000)
  timeout=0
  if UO.injournal("You put") then
    UO.waittargettype("0x1010")
    UO.usefromground("0x1996")
    wait(1500)
  endif
  UO.deletejournal()
  wend
end sub
Beyonder
Expert!
Posts: 388
Joined: 2005-04-23 10:19:43
Contact:

Re: И снова перемещение объектов

Post by Beyonder »

Андрюха из Одессы wrote: З.Ы.Ы. Beyonder, А что означает единица после скила:
UO.SkillVal("Tinkering",1) :?:
Я догадываюсь, но проверить негде.
Вот тут можно проверить:
http://yoko.com.ua/help/help.php?lang=r ... m=SkillVal
Андрюха из Одессы
Posts: 164
Joined: 2009-03-21 10:03:06
Location: Одесса-Мама
Contact:

Re: И снова перемещение объектов

Post by Андрюха из Одессы »

Спасибо. Догадка подтвердилась.
Спасибо всем, у кого учился!

Меня трудно найти, легко потерять, и невозможно забыть. Я - рабочий исходник!
Login9000
Posts: 26
Joined: 2010-04-15 13:04:50

Re: И снова перемещение объектов

Post by Login9000 »

Блин, можете просто дописать тот скриптик и все? :oops:
Login9000
Posts: 26
Joined: 2010-04-15 13:04:50

Re: И снова перемещение объектов

Post by Login9000 »

Ну помогите, пожалуйста...
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: И снова перемещение объектов

Post by kostjan »

Code: Select all

if uo.count(Key) > 0 then
uo.findtype( Key, -1, -1 )
uo.moveItem( 'finditem', 0, Bag )
wait(100)
uo.print('Key in the bag')
end if
Зачем через exec ? :shock:

Code: Select all

UO.Exec("waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'")
:!:

Code: Select all

UO.WaitMenu('Tinkering', 'Keys', 'Keys', 'Iron key')
Login9000
Posts: 26
Joined: 2010-04-15 13:04:50

Re: И снова перемещение объектов

Post by Login9000 »

Зачем через exec ? :shock:

Code: Select all

UO.Exec("waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'")
Да откдуа я знаю, не мой скрипт =)
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: И снова перемещение объектов

Post by kostjan »

Вот и помогай таким. :|
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: И снова перемещение объектов

Post by Mirage »

смарите что я наваял. Если шарды похожие - пользуйтесь на здоровье.
2-3 сундука. 1 еда инги инструменты можно прописать пустые мешки. в другом полные мешки будут. Перед запуском надо открыть сундуки. Проверить сообщения на сервере (хотя я писал для 3 серваков месаги вроде). :mrgreen:

Code: Select all

VAR Container	= '0x40B5267F'	;айрон, рыба, инструменты, может быть равен Sunduk 1
VAR Sunduk1	= '0x40B5267F'		;пустые мешки
VAR Sunduk2	= '0x40B52599'		;полные
VAR Instrum	= '0x1EBC'		;набор жестянщика
VAR Ing		= '0x1BEF'		
VAR key		= '0x1010'		
VAR Meshok 	= '0x0E76'		;тип мешка
var havka	= '0x097B'
VAR MeshSer, d, LastTimer, timemove, itemM
var quantity = 150; количество предметов в 1 мешке
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var printcolour = '1069'
VAR HIDE = 1; если 1 прячемся, если 0 нет.
###################
sub TinkKey()
	var menu = "waitmenu 'Tinkering' 'Keys' 'Keys' 'Iron key'"
	var item = key
	UO.CancelMenu()
	WHILE NOT UO.Dead()
		UO.FindType( Meshok, '-1', Sunduk1 )
		MeshSer = UO.GetSerial( 'finditem' )
		UO.MoveItem( MeshSer, 0, Sunduk2 )
		checklag()
		uo.useobject( MeshSer )
		eat()
		REPEAT
			GET(ing, Container, 20, 100) 
			GET(Instrum, Container, 2, 2) 
			Repeat
				Hide()
				UO.DeleteJournal()
				LastTimer=UO.Timer()
				UO.exec( menu ) 
				UO.Usetype( Instrum )
				repeat
					wait( 300 )
				until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
			Until UO.Count( item ) > 0
			checklag()
			PUT( item, MeshSer )
			UO.FindType( item, -1, MeshSer )
			uo.charprint(printcolour,'Ключей в мешке: '+Str( UO.FindCount()))
		UNTIL UO.FindCount()>=quantity
		uo.charprint(printcolour,'Берем другую сумку')
		wait( 300 )
	wend
end sub

Sub eat()
	GET(havka, Container, 1, 20) 
	REPEAT
		UO.DeleteJournal()
		LastTimer=UO.Timer()
		UO.findtype(havka,-1,'backpack')
		If UO.FindCount() > 0 Then
			UO.Useobject('finditem')
			wait(200)
		Else
			uo.charprint(printcolour, 'кончилась рыба' )
			return 0
		end if
	Until UO.InJournal("simply too full to eat|stuffed!|think|found|Вы ничего не можете") OR UO.Timer()>LastTimer+200
	PUT(havka, Container)
end sub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать 
	If UO.Count( item ) < min Then
		UO.FindType( item, '-1', cont )
		if UO.FindCount() > 0 Then
			uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) )  
			itemM=UO.GetSerial('finditem')
			timemove=UO.Timer()
			while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer() 
				uo.moveitem('finditem', max, 'backpack')
				wait(300)
			wend
		else
			uo.charprint(printcolour, 'Полностью кончилось сырье' )
			UO.CancelMenu()
			MyTerminate()
		endif
	Endif
end sub
Sub PUT(item, cont)
	while UO.Count( item ) > 0
		UO.FindType( item, -1, -1 )
		itemM=UO.GetSerial('finditem')
		timemove=UO.Timer()
		UO.MoveItem( 'finditem', 0, cont )
		while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
			wait(300)
		wend
	wend
end sub
Sub Hide()
	VAR LastTimer, n=0, HidFlag=1
	if UO.Hidden() then
		HidFlag=0
	else
	end if
	while HidFlag
		DeleteJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well")
		LastTimer=UO.Timer()
		UO.WarMode(0)
		UO.UseSkill('Hiding')
		repeat
			wait(50)
		until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer()
		if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then
			HidFlag=0
		else
			n=n+1
			if n>3 then
				UO.Set('quiet','0')
				uo.charprint(printcolour,'Спрятаться не получается, происходит что-то тревожное и непонятное, готовься к смерти, неудачнег!')
				UO.Set('quiet','1')
				MyTerminate()
			end if
		end if
	wend
end sub
Sub DeleteJournal(msg)
	While UO.InJournal(msg)
		UO.SetJournalLine(UO.InJournal(msg) - 1,'') 
	wend
endsub
Sub MyTerminate()
	UO.Set('quiet','1')
	UO.CancelMenu()
	UO.IgnoreReset()
	UO.Set('quiet','0')
	UO.Exec('terminate all')
end sub
Sub checklag()
	DeleteJournal("ackpack")
	UO.Click("backpack")
	repeat
		wait(100)
	until UO.InJournal("ackpack")
end sub
Post Reply