СРЕДНЕЙ СЛОЖНОСТИ ВОПРОС ! НАДЕЮСЬ ПОМОЖЕТЕ !
Moderators: Murderator+, Murderator
СРЕДНЕЙ СЛОЖНОСТИ ВОПРОС ! НАДЕЮСЬ ПОМОЖЕТЕ !
ТО ЧТО НИЖЕ ! ! ! НЕ ОБРАЩАЙТЕ ВНИМАНИЯ ! ! !
Как зделать чтоб когда скрипт загружаеш тя спрашивали :
" Выберите мешок для складки ! "
И поевлялся таргет ! ! !
И на который ткнёш мешок того ID стане равным.......
MeshSer = (тут ID мешка на который ткнул !)
Как зделать чтоб когда скрипт загружаеш тя спрашивали :
" Выберите мешок для складки ! "
И поевлялся таргет ! ! !
И на который ткнёш мешок того ID стане равным.......
MeshSer = (тут ID мешка на который ткнул !)
Last edited by Sinator on 2004-05-09 00:54:55, edited 2 times in total.
УРА ! ! ! ! ! ! ! ! !
У меня палучилось написать все кро одного
Как зделать чтоб он с координат 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
ХЕЛП ! ! !
У меня палучилось написать все кро одного

Как зделать чтоб он с координат 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
ХЕЛП ! ! !
-
- Posts: 51
- Joined: 2004-04-12 13:16:17
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.
Я и это смог сам настроить ! Но все равно СПАСИБО !
Теперь другая проблема ......
Как зделать чтоб из бек пака дагеры кидались в мешок рядом лежащий ???????
Вот мой вариант :
sub un1()
UO.FindType('ТИП ДАГЕРА','ID Мешка для даггеров','ID Моего бэкпака')
wait(500)
UO.Grab('1','finditem')
wait(500)
endif
;UO.SetReceivingContainer('DI Мешка для даггеров') ; А это незнаю нужно или ненужно
Теперь другая проблема ......
Как зделать чтоб из бек пака дагеры кидались в мешок рядом лежащий ???????
Вот мой вариант :
sub un1()
UO.FindType('ТИП ДАГЕРА','ID Мешка для даггеров','ID Моего бэкпака')
wait(500)
UO.Grab('1','finditem')
wait(500)
endif
;UO.SetReceivingContainer('DI Мешка для даггеров') ; А это незнаю нужно или ненужно

СПАСИБО ! ! !
И самый последний вопрос ......
В мешок можно класть токо 255 айтема !
Я хочу зделать чтоб если один переполнен чтоб в другой клалось !
На два мешка получается , а если третий зделать также как и второй то скрипт воще не запускается
Чё такое ?
Прозьба выложить скрипт на 6 мешков !
УМАЛЯЮ ПОМОГИТЕ ЛОХУ !
И самый последний вопрос ......
В мешок можно класть токо 255 айтема !
Я хочу зделать чтоб если один переполнен чтоб в другой клалось !
На два мешка получается , а если третий зделать также как и второй то скрипт воще не запускается

Прозьба выложить скрипт на 6 мешков !
УМАЛЯЮ ПОМОГИТЕ ЛОХУ !
Вот, посмотри как у меня сделана прокачка карпы, и сделай также для даггеров:
; 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
; 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 wrote:СУПЕР СУПЕР СУПЕР ! ! ! ! ! ! ! ! !
У ТЯ ЗАДУМКА ДАЖЕ ЛУТШЕ ЧЕМ У МЕНЯ !!!!!!!!!!!
Тока два вопроса :
1й - А логи (ресурс) лежит на полу или в ундуке ?
2й - А скрипт слетает когда нибуть ??? Или смело можно идти спать ! ?
Тебе нужны два сундука рядом с чаром - в одном куча пустых мешков, другой пустой (туда будут складываться мешки с скрафченным). Ресурсы на полу рядом с чаром. Скрипт работает стабильно, ресурсы закончатся (или мешки) - он остановится.
Sinator wrote:Я его переделал ! ! ! Теперь он лутше ! Он не с пола а из сундука берёт инги ! И говорит теперь больше !
Это как кому удобнее. Мне удобнее с пола. Особенно в тех вариантах, когда он (легко переделывается) крафтит что-нибудь требующее нескольких ресурсов. Например карты - кожа и воск. Насчет говорливости - у меня уже давно вообще не говорит - зачем? Вывод надписей важен на этапе отладки, потом только мешает... ИМХО.
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
Kazoo wrote:a peredelat nemozesh shtobi nanoch mozhno bilo ostovljat ? ja tvoj nemnoga peredelal postavil checklag() a to zbivalsja pri save !
У меня сутками стоял на карпе, счас сутками стоит на тейлоре (карты крафтит), ничего не сбивается... А на сэйв мира можно просто вставить доп проверку журнала на соответствующее сообщение... Но особой необходимости в этом не вижу - чар просто пропускает один цикл и продолжает крафтить. Собъется только в том случае если сэйв придется на тот момент, когда он мешок драгает... я так предполагаю. У меня ни разу такой ситуации не возникало. И то, потом постепенно ситуация выправится, потому что при физлах крафта скрафченные вещи будут постепенно перекладываться из пака в очередной мешок...
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 вещей в бегпаке грузит следующий.