Yoko

All sides of Injection
It is currently 2025-10-14 22:36:42

All times are UTC+02:00




Post new topic  Reply to topic  [ 20 posts ] 
Author Message
PostPosted: 2011-06-08 13:12:03 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Народ помогите подправить скриптик чар не хочет крафтить луки загорается последняя менюшка крафта там где тупо остается только на лук нажать ,но почему то не нажимается.Помогите убогому ,спасибо :roll:
Code:
sub BowCraft() 
While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
UO.Waitmenu('What do you want to carve the','Bows & Crossbows','Bows & Crossbows','bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????
wait(5000)
Wend
UO.Print("End log")
end sub


Top
   
PostPosted: 2011-06-08 13:16:00 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
скрипт вверх тормашками и не понятной шнягой справа за коментами.
Code:
sub BowCraft()
   While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
      UO.Waitmenu('What do you want','Bows','Bows','bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????      
      UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
      UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
      wait(5000)
   Wend
   UO.Print("End log")
end sub


меню проверь так должно работать

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-06-08 13:35:00 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Mirage wrote:
скрипт вверх тормашками и не понятной шнягой справа за коментами.
Code:
sub BowCraft()
   While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
      UO.Waitmenu('What do you want','Bows','Bows','bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????      
      UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
      UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
      wait(5000)
   Wend
   UO.Print("End log")
end sub


меню проверь так должно работать


Пишет постоянно what do you want to use this from?
и не крафтит ничего


Top
   
PostPosted: 2011-06-08 14:45:23 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Ответ прямо над твоей фразой. В моем последнем предложении. Смотри меню.
У меня на моем шарде меню для простых луков вот такое.
UO.WaitMenu ('What do you', 'Bow')
У тебя видимо двухслойное. Проверяй правильность всего написанного.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-06-08 14:55:56 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Mirage wrote:
Ответ прямо над твоей фразой. В моем последнем предложении. Смотри меню.
У меня на моем шарде меню для простых луков вот такое.
UO.WaitMenu ('What do you', 'Bow')
У тебя видимо двухслойное. Проверяй правильность всего написанного.


Ну тогда у меня написано верно менюшки у меня именно так называются и вылетают в том порядке который я написал.Он доходит до выбора где нужно только тыркнуть на лук и вуаля.Однако не тыркает.

Вот первая менюшка: http://www.imagepost.ru/?v=08.06_1.png
Вторая: http://www.imagepost.ru/?v=08.06_2.png


Last edited by son on 2011-06-08 15:15:50, edited 2 times in total.

Top
   
PostPosted: 2011-06-08 15:13:52 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
UO.Waitmenu('What do you want','Bows','Bows','bow' )
Bow с большой буквы напиши попробуй.

_________________
CodeSweeper


Top
   
PostPosted: 2011-06-08 15:18:03 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Incorrect User wrote:
UO.Waitmenu('What do you want','Bows','Bows','bow' )
Bow с большой буквы напиши попробуй.

Епа))))))))))))))Точняк все работает теперь)))))))))))Спасибо большое
Рабочий вариант:
Code:
sub BowCraft()
   While UO.Count('0x1BDD', '0x0000')>=7 #??? ??? ????? ???????
      UO.Waitmenu('What do you want','Bows','Bows','Bow' ) # ??? ??????? ?????? ??? ?????? ?? ?? ??? ????     
      UO.WaitTargetType('0x1BDD', '0x0000') #????? ?????? ?? ????? ?? ????
      UO.UseType('0x0F51') # Dagger ?????????? ??????? ?????
      wait(5000)
   Wend
   UO.Print("End log")
end sub


Top
   
PostPosted: 2011-06-13 00:31:19 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Нужно чуть расширить скрипт чтобы выкидывал луки из пака в треш и брал логи с пола. Но что-то невыходит:
Code:
sub Bow()
var time
var mess = 'put|fail|skill'
 while not FindLogs() == 0
   if uo.count('0x1bdd')>6 then
      uo.deletejournal()
      time = uo.timer()
      uo.waitmenu('What do you want','Bows','Bows','Bow')
      uo.waittargettype('0x1bdd')
      uo.usetype('0x0F51')
      repeat
      wait (50)
      until uo.injournal(mess) or time + 60 < uo.timer()
    else
   Trash()
   Drag()
  endif
 wend
uo.print('Кончились логи!')
end sub

sub Trash()
var trash = ('0x6666666')
 while uo.count('0x13b2')>=1
   uo.findtype('0x13b2','backpack')
   uo.moveitem('finditem',1,trash)
   wait(200)
  wend
uo.print('Все луки выброшены!')
endsub

sub Drag()
var Box = '0x7777777'
 if FindLogs() == 1 then
  uo.findtype('0x1bdd','0x0000',Box)
  uo.moveitem('finditem',2500,'backpack')
  wait(500)
   else
  uo.findtype('0x1bdd','0x0000',Box)
  uo.moveitem('finditem',0,'backpack')
  wait(500)
 endif
endsub

sub FindLogs()
var Logs = '0x1bdd' # Type логов
var LogsC = '0x0000' # Color логов
var Box = '0x7777777' # ID сундука
uo.findtype(Logs,LogsC,Box)
 If UO.FindCount() == 0 Then
    return 0
 endif
uo.findtype(Logs,LogsC,Box)
 If UO.FindCount() >= 2500 Then
    return 1
 Endif
uo.findtype(Logs,LogsC,Box)
 If UO.FindCount() <= 2500 Then
    return 2
 Endif
endsub

Скрипт весь не тестил, пока только нужно поправить sub Trash, нехочет выкидывать луки в трешку, по паку пару раз с места на место перетаскивает и потом конлост :)

_________________
CodeSweeper


Last edited by Incorrect User on 2011-06-13 14:32:56, edited 8 times in total.

Top
   
PostPosted: 2011-06-13 01:11:17 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
если в uo.moveitem() 'trash' сделать без кавычек, мб и заработает


Top
   
PostPosted: 2011-06-13 01:15:47 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Quote:
если в uo.moveitem() 'trash' сделать без кавычек, мб и заработает

Непомогло. И когда запускаю sub Bow пишет сразу Кончились логи! хотя на полу логов достаточно.

_________________
CodeSweeper


Top
   
PostPosted: 2011-06-13 01:42:46 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
попробуй тут
Code:
while uo.countground ('0x1bdd')>6
поставить "больше ноля"


Top
   
PostPosted: 2011-06-13 01:58:05 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Quote:
поставить "больше ноля"

Работает, а почему оно немогло определить >6?. Теперь, пока, только с трешем проблема осталась.

_________________
CodeSweeper


Top
   
PostPosted: 2011-06-13 10:00:57 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
ну еще moveitem'у нужно 3 параметра, 1-ый чё двигаем, 2-ой сколько двигаем, 3-ий куда двигаем), у тебя второго нету


Top
   
PostPosted: 2011-06-13 20:39:49 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
отдохнул один день а вы уж тут "разЪобщались" :mrgreen:
Итак...
Code:
sub Bow()
   var time
   var mess = 'put|fail|skill'
   while not FindLogs() == 0
      if uo.count('0x1bdd')<7 then ; вот так будет работать.
         Trash()
         Drag()
      else
         uo.deletejournal()
         time = uo.timer()
         uo.waitmenu('What do you want','Bows','Bows','Bow')
         uo.waittargettype('0x1bdd')
         uo.usetype('0x0F51')
         repeat
            wait (500) ; паузы меньше 100 делать не стоит дабы не вызывать лишние ошибки в работе скрипта
         until uo.injournal(mess) or time + 60 < uo.timer()
      endif
   wend
   uo.print('Кончились логи!')
end sub
sub Trash()
   var trash = '0x6666666' ; скобки не нужны
   while uo.count('0x13b2')   ;  >=1 не нужно писать если треба определить количество больше нуля
      uo.findtype('0x13b2','backpack')
      uo.moveitem('finditem',0,trash) ; в данном случае 1 не обязательно так как предметы и так по одному
      wait(500) ; паузу лучше увеличить - средняя пауза перемещения предмета на серверах 300-500
   wend
   uo.print('Все луки выброшены!')
endsub
; ниже я вообще ничего не понял, зачем такое городить?
sub Drag()
   var Box = '0x7777777'
   if FindLogs() == 1 then
      uo.findtype('0x1bdd','0x0000',Box)
      uo.moveitem('finditem',2500,'backpack')
      wait(500)
   else
      uo.findtype('0x1bdd','0x0000',Box)
      uo.moveitem('finditem',0,'backpack')
      wait(500)
   endif
endsub
sub FindLogs()
   var Logs = '0x1bdd' # Type логов
   var LogsC = '0x0000' # Color логов
   var Box = '0x7777777' # ID сундука
   uo.findtype(Logs,LogsC,Box)
   If UO.FindCount() == 0 Then
      return 0
   endif
   uo.findtype(Logs,LogsC,Box)
   If UO.FindCount() >= 2500 Then
      return 1
   Endif
   uo.findtype(Logs,LogsC,Box)
   If UO.FindCount() <= 2500 Then
      return 2
   Endif
endsub


Давайте посмотрим мой пример:
Code:
VAR Container   = '0x40B5267F'   ;айрон, рыба, инструменты, может быть равен Sunduk 1
VAR Trash   = '0x40B52599'   #трешка#
VAR log   = '0x1BDD'   
VAR Dagger   = '0x0F51'      
VAR Bow   = '0x13B1'      #лук#
VAR spool   = '0x0FA0'      #нитки#
VAR LastTimer, timemove
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var printcolour = '1069'
sub Bowcraft()
   var menu = "waitmenu 'What do you' 'Bows' 'Bows' 'Bow'"
   WHILE NOT UO.Dead()
      GET(log, Container, 10, 800)  ; если логов меньше 10 добираем 800
      GET(spool, Container, 1, 100) ; если ниток меньше  1 добираем 100
      Repeat
         UO.DeleteJournal()
         LastTimer=UO.Timer()
         UO.exec( menu )
         UO.waittargettype ( log )
         UO.Usetype( Dagger )
         repeat
            wait( 100 )
         until UO.InJournal( msg ) or UO.Timer()>LastTimer+60
      Until UO.Count( Bow )>0
      checklag()
      PUT(Bow , Trash)
   WEND
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 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

1) все предметы прописаны выше скрипта - проще редактировать если чтото понадобиться изменить.
2) одна процедура для забора сырья, одна процедура для скидывания готового товара. Куда и откуда - как пропишешь туда и кинет.
3) если сырья будет меньше минимума скрипт встанет.

PS мой скрипт это кусок из большого файла. Вроде скопировал без косяков. Если будут ошибки - пишите.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-06-15 23:39:21 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Вообщем следуя советам вышла такая штука:
Code:
#############################################################################
var Box = '0x666666'
var Bow = '0x13b2'
var Trash = '0x777777'
var Logs = '0x1bdd'
var LogsC = '0x0000'
var Dagger = '0x0F51'

sub Bow()
var Time
var Mess = 'put|fail'
 while not uo.dead()
  if uo.count(Logs)>6 then
   uo.deletejournal()
   Time = uo.timer()
   uo.waitmenu('What do you want','Bows','Bows','Bow')
   uo.waittargettype(Logs)
   uo.usetype(Dagger)
   repeat
   wait (100)
   until uo.injournal(Mess) or Time + 60 < uo.timer()
    else
   Trash()
   Drag()
  endif
 wend
end sub

sub Trash()
 while uo.count(Bow)>0
  uo.findtype(Bow,'backpack')
  uo.moveitem('finditem',0,Trash)
  wait(500)
 wend
  uo.print('Все луки выброшены!')
endsub

sub Drag()
uo.findtype(Logs,LogsC,Box)
if uo.count()>0 then
  uo.moveitem('finditem',2500,'backpack')
  wait(500)
   else
  uo.print('Кончились логи!')
  uo.playwav('C:\Program Files\UltimaOnline\Injection\Alarm.wav')
  uo.exec('terminate all')
 endif
endsub
#############################################################################

Еще не тестил, и кстати, если не ошибаюсь, то так
Code:
 uo.moveitem('finditem',0,trash) ; в данном случае 1 не обязательно так как предметы и так по одному

некатит, я вроде пробовал ставить 0 и луки не трешил, ставил 1 и норм, перепроверю отпишусь.

_________________
CodeSweeper


Top
   
PostPosted: 2011-06-17 14:21:49 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Incorrect User wrote:
Вообщем следуя советам вышла такая штука:
Code:
#############################################################################
var Box = '0x666666'
var Bow = '0x13b2'
var Trash = '0x777777'
var Logs = '0x1bdd'
var LogsC = '0x0000'
var Dagger = '0x0F51'

sub Bow()
var Time
var Mess = 'put|fail'
 while not uo.dead()
  if uo.count(Logs)>6 then
   uo.deletejournal()
   Time = uo.timer()
   uo.waitmenu('What do you want','Bows','Bows','Bow')
   uo.waittargettype(Logs)
   uo.usetype(Dagger)
   repeat
   wait (100)
   until uo.injournal(Mess) or Time + 60 < uo.timer()
    else
   Trash()
   Drag()
  endif
 wend
end sub

sub Trash()
 while uo.count(Bow)>0
  uo.findtype(Bow,'backpack')
  uo.moveitem('finditem',0,Trash)
  wait(500)
 wend
  uo.print('Все луки выброшены!')
endsub

sub Drag()
uo.findtype(Logs,LogsC,Box)
if uo.count()>0 then
  uo.moveitem('finditem',2500,'backpack')
  wait(500)
   else
  uo.print('Кончились логи!')
  uo.playwav('C:\Program Files\UltimaOnline\Injection\Alarm.wav')
  uo.exec('terminate all')
 endif
endsub
#############################################################################

Еще не тестил, и кстати, если не ошибаюсь, то так
Code:
 uo.moveitem('finditem',0,trash) ; в данном случае 1 не обязательно так как предметы и так по одному

некатит, я вроде пробовал ставить 0 и луки не трешил, ставил 1 и норм, перепроверю отпишусь.


Скрипт работает хорошо,скажите а можно сделать чтобы перс луки не в треш кидал а себе под ноги ,на моем шарде все то что из дерева и под ноги попадается сразу ломается)))Так что мне треш в принципе не нужен))


Top
   
PostPosted: 2011-06-17 14:45:37 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Ну вместо ID трешки напиши 'ground'
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-06-18 00:37:40 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Quote:
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.

Там просто лук, простой, под ноги кидаеш и он сразу же ломаеться. А от перенасыщения есть защита - не более, помоему 16 итемов на 1 тайл, больше положить недает.

_________________
CodeSweeper


Top
   
PostPosted: 2011-06-18 12:40:57 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Mirage wrote:
Ну вместо ID трешки напиши 'ground'
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.

Спасибо,теперь полный порядок:)


Top
   
PostPosted: 2011-06-18 12:41:33 
Offline
User avatar

Joined: 2006-12-16 14:44:01
Posts: 43
Incorrect User wrote:
Quote:
Помоему ломается когда ты наступишь на объект а не когда бросишь под себя, хотя ХЗ.
PS если будешь много кидать на землю, будет перенасыщение сферы, в логе отразится ошибка и к тебе прилетят гости. С банхаммером.

Там просто лук, простой, под ноги кидаеш и он сразу же ломаеться. А от перенасыщения есть защита - не более, помоему 16 итемов на 1 тайл, больше положить недает.


Это правда.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 20 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 6 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited