СРЕДНЕЙ СЛОЖНОСТИ ВОПРОС ! НАДЕЮСЬ ПОМОЖЕТЕ !

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

СРЕДНЕЙ СЛОЖНОСТИ ВОПРОС ! НАДЕЮСЬ ПОМОЖЕТЕ !

Post by Sinator »

ТО ЧТО НИЖЕ ! ! ! НЕ ОБРАЩАЙТЕ ВНИМАНИЯ ! ! !


Как зделать чтоб когда скрипт загружаеш тя спрашивали :

" Выберите мешок для складки ! "
И поевлялся таргет ! ! !
И на который ткнёш мешок того ID стане равным.......

MeshSer = (тут ID мешка на который ткнул !)
Last edited by Sinator on 2004-05-09 00:54:55, edited 2 times in total.
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

Post by Sinator »

УРА ! ! ! ! ! ! ! ! !
У меня палучилось написать все кро одного :(

Как зделать чтоб он с координат 1654,1217 брал 100 ингов железа и клал в БэкПак ! ?

Я написал так :

sub ingot_chek()
VAR ingots=0x1BEF

if UO.Count(ingots)>30 then
BS()
endif


if UO.Count(ingots)<30 then
UO.Drag(1655,1216 65535,65535 100)
endif

end sub




ХЕЛП ! ! !
AntiKiller
Posts: 51
Joined: 2004-04-12 13:16:17

Post by AntiKiller »

Sinator wrote:УРА ! ! ! ! ! ! ! ! !
У меня палучилось написать все кро одного :(

Как зделать чтоб он с координат 1654,1217 брал 100 ингов железа и клал в БэкПак ! ?

Я написал так :

sub ingot_chek()
VAR ingots=0x1BEF

if UO.Count(ingots)>30 then
BS()
endif


if UO.Count(ingots)<30 then
UO.Drag(1655,1216 65535,65535 100)
endif

end sub




ХЕЛП ! ! !


UO.FindType("желозо ТИП его","-1","ground")
if UO.FindCount()>0 and Uo.GetDistance("0x0EED")<=4 then
UO.Grab("100","finditem")

НУ вот он ищет в пределах 4 клеток айрон тока ты ТИП айрона незабудь указать ,info команда и на всякий случай в инже в разле main незабуд галку поставить Track World Item.
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

Post by Sinator »

Я и это смог сам настроить ! Но все равно СПАСИБО !
Теперь другая проблема ......

Как зделать чтоб из бек пака дагеры кидались в мешок рядом лежащий ???????

Вот мой вариант :

sub un1()
UO.FindType('ТИП ДАГЕРА','ID Мешка для даггеров','ID Моего бэкпака')
wait(500)
UO.Grab('1','finditem')
wait(500)
endif

;UO.SetReceivingContainer('DI Мешка для даггеров') ; А это незнаю нужно или ненужно :)
Biga
Posts: 76
Joined: 2004-04-04 21:04:43
Contact:

Post by Biga »

sub un1()
UO.FindType('ТИП ДАГЕРА')
if uo.findcount()>0
uo.moveitem('finditem',0,'ID Мешка для даггеров')
wait(500)
end if
end sub

setReceivingContainer использовать не рекомендуется.
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

Post by Sinator »

СПАСИБО ! ! !

И самый последний вопрос ......
В мешок можно класть токо 255 айтема !
Я хочу зделать чтоб если один переполнен чтоб в другой клалось !
На два мешка получается , а если третий зделать также как и второй то скрипт воще не запускается :( Чё такое ?

Прозьба выложить скрипт на 6 мешков !
УМАЛЯЮ ПОМОГИТЕ ЛОХУ !
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

Post by Sinator »

И еще !
Как зделать проверку сумки ? Лежит в ней 250 предметов или нет ?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

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

; Carpentry. v.1.12b (c) Edred
;
; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2,
; берет с пола логи, крафтит из них удочки и складывает эти удочки
; в этот мешок в сундуке 2. Если логи на полу или пустые мешки
; кончились - выход
;
sub carpentry()
VAR Sunduk1 = '0x4017439B' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x4000F46C' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Logi = '0x1BDD' ; Тип логов
VAR Rubanok = '0x1031' ; Тип инструмента карпентера
VAR Udochka = '0xDBF' ; Тип удочки
VAR Kolvo = 460 ; Брать логов (2 лога = 1 удочка)
VAR MeshSer, j, k
While TRUE
UO.FindType( Logi, -1, 1 ) ; Ищем логи на полу
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем логи в пак
wait( 2000 )
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
Endif
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Logi ) > 0
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing' )
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили удочку
; Сразу переложим ее в мешок
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'Udochka perelozhena' )
end if
Wend
Wend
end sub
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

Post by Sinator »

СУПЕР СУПЕР СУПЕР ! ! ! ! ! ! ! ! !
У ТЯ ЗАДУМКА ДАЖЕ ЛУТШЕ ЧЕМ У МЕНЯ !!!!!!!!!!!
Тока два вопроса :
1й - А логи (ресурс) лежит на полу или в ундуке ?
2й - А скрипт слетает когда нибуть ??? Или смело можно идти спать ! ?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Sinator wrote:СУПЕР СУПЕР СУПЕР ! ! ! ! ! ! ! ! !
У ТЯ ЗАДУМКА ДАЖЕ ЛУТШЕ ЧЕМ У МЕНЯ !!!!!!!!!!!
Тока два вопроса :
1й - А логи (ресурс) лежит на полу или в ундуке ?
2й - А скрипт слетает когда нибуть ??? Или смело можно идти спать ! ?
Тебе нужны два сундука рядом с чаром - в одном куча пустых мешков, другой пустой (туда будут складываться мешки с скрафченным). Ресурсы на полу рядом с чаром. Скрипт работает стабильно, ресурсы закончатся (или мешки) - он остановится.
Sinator
Posts: 13
Joined: 2004-05-05 23:38:30

Post by Sinator »

Я его переделал ! ! ! Теперь он лутше ! Он не с пола а из сундука берёт инги ! И говорит теперь больше !
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Sinator wrote:Я его переделал ! ! ! Теперь он лутше ! Он не с пола а из сундука берёт инги ! И говорит теперь больше !
Это как кому удобнее. Мне удобнее с пола. Особенно в тех вариантах, когда он (легко переделывается) крафтит что-нибудь требующее нескольких ресурсов. Например карты - кожа и воск. Насчет говорливости - у меня уже давно вообще не говорит - зачем? Вывод надписей важен на этапе отладки, потом только мешает... ИМХО.
Kazoo
Posts: 173
Joined: 2004-04-03 18:39:28
Contact:

Post by Kazoo »

Edred wrote:Вот, посмотри как у меня сделана прокачка карпы, и сделай также для даггеров:

; Carpentry. v.1.12b (c) Edred
;
; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2,
; берет с пола логи, крафтит из них удочки и складывает эти удочки
; в этот мешок в сундуке 2. Если логи на полу или пустые мешки
; кончились - выход
;
sub carpentry()
VAR Sunduk1 = '0x4017439B' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x4000F46C' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Logi = '0x1BDD' ; Тип логов
VAR Rubanok = '0x1031' ; Тип инструмента карпентера
VAR Udochka = '0xDBF' ; Тип удочки
VAR Kolvo = 460 ; Брать логов (2 лога = 1 удочка)
VAR MeshSer, j, k
While TRUE
UO.FindType( Logi, -1, 1 ) ; Ищем логи на полу
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем логи в пак
wait( 2000 )
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
Endif
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Logi ) > 0
; Пока в паке есть логи
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing' )
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили удочку
; Сразу переложим ее в мешок
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'Udochka perelozhena' )
end if
Wend
Wend
end sub

a peredelat nemozesh shtobi nanoch mozhno bilo ostovljat ? ja tvoj nemnoga peredelal postavil checklag() a to zbivalsja pri save !

Code: Select all

sub carpentry() 
VAR Sunduk1 = '0x400634A4' ; 
VAR Sunduk2 = '0x400C922A' ; 
VAR Meshok = '0x0E76' ; 
VAR Logi = '0x1BDD' ;sub carpentry() 
VAR Sunduk1 = '0x400634A4' ; Ñåðèàë ñóíäóêà ñ ïóñòûìè ìåøêàìè 
VAR Sunduk2 = '0x400C922A' ; Ñåðèàë ïóñòîãî ñóíäóêà 
VAR Meshok = '0x0E76' ; Òèï ìåøêà 
VAR Logi = '0x1BDD' ; Òèï ëîãîâ 
VAR Rubanok = '0x1032' ; Òèï èíñòðóìåíòà êàðïåíòåðà 
VAR Udochka = '0x13F8' ; Òèï óäî÷êè 
VAR Kolvo = 620 ; Áðàòü ëîãîâ (2 ëîãà = 1 óäî÷êà) 
VAR MeshSer, j, k 
While TRUE
begin:
UO.FindType( Logi, -1, 1 ) ; Èùåì ëîãè íà ïîëó 
UO.Grab( Str( Kolvo ), 'finditem' ) ; Êëàäåì ëîãè â ïàê 
wait( 2000 ) 
If UO.FindCount() == 0 Then 
UO.Print("Logs not found, script terminated") 
return 
Endif 
checklag()
UO.FindType( Meshok, -1, Sunduk1 ) ; Èùåì ìåøîê â ñóíäóêå 1 
MeshSer = UO.GetSerial( 'finditem' ) 
UO.Grab( '1', 'finditem' ) ; Êëàäåì åãî â áýêïàê 
wait( 2000 ) 
UO.MoveItem( MeshSer, 0, Sunduk2 ) 
wait( 2000 ) 
While UO.Count( Logi ) > 0 
; Ïîêà â ïàêå åñòü ëîãè 
checklag()
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' ) 
UO.DeleteJournal() 
UO.CancelMenu() 
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'gnarled staff' ) 
UO.UseType( Rubanok ) 
k = 0 
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 ) 
k = k + 1 
wait(500) 
wend 
; Wait( 14000 ) 
; Ñêðàôòèëè óäî÷êó 
; Ñðàçó ïåðåëîæèì åå â ìåøîê 
if UO.Count( Udochka ) > 0 then 
UO.FindType( Udochka, -1, 'backpack' ) 
UO.MoveItem( 'finditem', 0, MeshSer ) 
wait( 2000 ) 
UO.Print( 'Udochka perelozhena' ) 
end if 

Wend 
Wend 
end sub

sub CheckLag()
	UO.DeleteJournal()
	UO.Click('backpack')

	repeat
		wait(50)
	until UO.InJournal('backpack')
end sub
VAR Rubanok = '0x1032' ;  
VAR Udochka = '0x13F8' ;  
VAR Kolvo = 620 ;  
VAR MeshSer, j, k 
While TRUE
begin:
UO.FindType( Logi, -1, 1 ) ;  
UO.Grab( Str( Kolvo ), 'finditem' ) ;  
wait( 2000 ) 
If UO.FindCount() == 0 Then 
UO.Print("Logs not found, script terminated") 
return 
Endif 
checklag()
UO.FindType( Meshok, -1, Sunduk1 )  
MeshSer = UO.GetSerial( 'finditem' ) 
UO.Grab( '1', 'finditem' ) ; 
wait( 2000 ) 
UO.MoveItem( MeshSer, 0, Sunduk2 ) 
wait( 2000 ) 
While UO.Count( Logi ) > 0 
; Ïîêà â ïàêå åñòü ëîãè 
checklag()
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' ) 
UO.DeleteJournal() 
UO.CancelMenu() 
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'gnarled staff' ) 
UO.UseType( Rubanok ) 
k = 0 
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 ) 
k = k + 1 
wait(500) 
wend 
; Wait( 14000 ) 
if UO.Count( Udochka ) > 0 then 
UO.FindType( Udochka, -1, 'backpack' ) 
UO.MoveItem( 'finditem', 0, MeshSer ) 
wait( 2000 ) 
UO.Print( 'Udochka perelozhena' ) 
end if 

Wend 
Wend 
end sub

sub CheckLag()
	UO.DeleteJournal()
	UO.Click('backpack')

	repeat
		wait(50)
	until UO.InJournal('backpack')
end sub
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Kazoo wrote: a peredelat nemozesh shtobi nanoch mozhno bilo ostovljat ? ja tvoj nemnoga peredelal postavil checklag() a to zbivalsja pri save !

У меня сутками стоял на карпе, счас сутками стоит на тейлоре (карты крафтит), ничего не сбивается... А на сэйв мира можно просто вставить доп проверку журнала на соответствующее сообщение... Но особой необходимости в этом не вижу - чар просто пропускает один цикл и продолжает крафтить. Собъется только в том случае если сэйв придется на тот момент, когда он мешок драгает... я так предполагаю. У меня ни разу такой ситуации не возникало. И то, потом постепенно ситуация выправится, потому что при физлах крафта скрафченные вещи будут постепенно перекладываться из пака в очередной мешок...
user
Posts: 19
Joined: 2004-04-16 00:56:28
Contact:

Post by user »

Code: Select all

###################################
#        Скрипт для Крафтов       #
# (В данном случае для Tailoring) #
###################################

;|---------------------------|
;| Описание переменных Items |
;|---------------------------|

VAR EQ,RQ1,RQ2,QB
VAR Eat='0x097B' ; Type Еда (Рыба)
VAR Res1='0x175D' ; Type Ресурс 1 (Ткань)
VAR Res2='0x0FA0' ; Type Ресурс 2 (Нитки)
VAR Kit='0x0F9D' ; Type Инструмента крафта (Sewing Kit)
VAR Items='0x1F03' ; Type Выходного материала
EQ=50 ; Количество еды
RQ1=150 ; Количество ресурса 1
RQ2=20 ; Количество ресурса 2

;|---------------------------------|
;| Описание переменных контейнеров |
;|---------------------------------|

VAR ContainerRes='0x416BFC21' ; Object Контейнер с ресурсами
VAR ContainerBag='0x4158965B' ; Object Контейнер с сумками
VAR BagCount='0x0E76' ; Type сумок в контейнере ContainerBag


sub main()
	UO.Set('quiet','1')
	UO.Exec('exec Craft')
	UO.IgnoreReset()
end sub

sub OpenBag()
	VAR i,BagID
	UO.UseObject(ContainerBag)
	UO.UseObject(ContainerRes)
	UO.IgnoreReset()
	Repeat
		UO.DeleteJournal()
		Wait(1000)
		UO.FindType(BagCount,'-1',ContainerBag)
		If UO.FindCount('finditem') > 1 Then
			i = (UO.FindCount('finditem') +1)
			UO.Click('finditem')
			If UO.InJournal("a bag") Then
				BagID=UO.JournalSerial(UO.InJournal("a bag")-1)
				UO.SetJournalLine(UO.InJournal("a bag")-1,"")
				UO.FindType(Items,'-1',BagID)
				UO.UseObject(BagID)
				Wait(2000)
				UO.Hide(BagID)
				UO.Ignore(BagID,'on')
			EndIF
		EndIf
		i = (i - 1)
	Until i == 0
	UO.Hide(ContainerBag)
	UO.Hide(ContainerRes)
	UO.Resend()
	Wait(3000)
	UO.IgnoreReset()
end sub


sub Craft()
VAR Last=0,LastTimer
	OpenBag()
	While NOT UO.Dead()

;|-----------------------------------|
;| Search of resources and Take them |
;|-----------------------------------|

		UO.FindType(Eat,'-1','me')
		If UO.GetQuantity('finditem') < 1 then
			UO.FindType(Eat,'-1',ContainerRes)
			If UO.GetQuantity('finditem') > 1 then
				ToTake(3)
			Else
				UO.Exec ('Terminate Craft')
			EndIf
		Else
			ToEat()
		EndIf
		UO.FindType(Res1,'-1','me')
		If UO.GetQuantity('finditem') < 16 then
			UO.FindType(Res1,'-1',ContainerRes)
			If UO.GetQuantity('finditem') > 1 then
				ToTake(1)
			Else
				UO.Exec ('Terminate Craft')
			EndIf
		EndIf
		UO.FindType(Res2,'-1','me')
		If UO.GetQuantity('finditem') < 1 then
			UO.FindType(Res2,'-1',ContainerRes)
			If UO.GetQuantity('finditem') > 1 then
				ToTake(2)
			Else
				UO.Exec ('Terminate Craft')
			EndIf
		EndIf

;|-------------|
;| Craft Items |
;|-------------|

		UO.DeleteJournal()
		UO.WaitTargetType(Res1)
		UO.UseType(Kit)
		UO.WaitMenu ('Cloth','Shirts','Shirts','robe') ; Название КрафтМеню1(Cloth),ПодМеню2(Shirts) -> КрафтМеню2(Shirts),ПодМеню2(Robe)
		LastTimer=UO.Timer()
		Repeat
			wait(100)
		Until UO.InJournal("You put") OR UO.InJournal("Tailoring") OR LastTimer+150<UO.Timer()
		UnLoadItem()
	Wend
end sub

sub ToTake(i)
VAR G,F
	If i == 1 Then
		G = RQ1
		F = Res1
	EndIf
	If i == 2 Then
		G = RQ2
		F = Res2
	EndIf
	If i == 3 Then
		G = EQ
		F = Eat
	EndIf
	UO.FindType(F,'-1',ContainerRes)
	if UO.GetQuantity('finditem') > 1 then
			UO.Grab(''+str(G)+'','finditem')
			UO.DeleteJournal()
		Repeat
			UO.FindType(F,'-1','me')
			Wait(1500)
		Until UO.InJournal("That is too") OR UO.GetQuantity('finditem') > 1
	endif
end sub	
			
sub ToEat()
	UO.UseType(Eat)
end sub

sub UnLoadItem()
	VAR BagID
	VAR i=0
	VAR m=0
	Repeat
		UO.DeleteJournal()
		UO.FindType(BagCount,'-1',ContainerBag) 
		UO.Click('finditem')
		m = 0
		Repeat
			Wait(1000)
		Until UO.InJournal("a bag")
		If UO.InJournal("a bag") Then
			BagID=UO.JournalSerial(UO.InJournal("a bag")-1)
			UO.SetJournalLine(UO.InJournal("a bag")-1,"")
			UO.FindType('-1','-1',BagID)
			If UO.FindCount('finditem') < 220 then
				m = UO.FindCount('finditem')
				UO.SetReceivingContainer(BagID)
				UO.FindType(Items,'-1','me')
				UO.Grab('0','finditem')
				UO.ConColor('0x0021')
				UO.Set('quiet','0')
				UO.Print(UO.Print('In BagPack#'+Str(i+1)+' items '+Str(m)+''))	
				UO.Set('quiet','1')
				UO.ConColor('0x0035')
				Wait(1000)
				UO.UnSetReceivingContainer()
			Else
				i = i + 1
				UO.Ignore(BagID, 'on')
			EndIf
		EndIf		
		If i == QB Then
			UO.IgnoreReset()
			i = 0
		EndIf
		UO.FindType(Items,'-1','me')
	Until UO.FindCount('finditem') < 1
End Sub
Вот аналог, нигде не глючит, все даелает сам легко перенастраивается а главное сам открывает бегпаки и ведет подщет итемов в каждом, после 220 вещей в бегпаке грузит следующий.
ne0s
Posts: 5
Joined: 2004-05-06 21:19:19
Contact:

Post by ne0s »

RQ1=150 ; Количество ресурса 1
RQ2=20 ; Количество ресурса 2
Это количестов ресурсов которое будет брать из пака , или общее количество ?
Post Reply