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

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