Yoko

All sides of Injection
It is currently 2025-12-20 00:54:03

All times are UTC+02:00




Post new topic  Reply to topic  [ 5 posts ] 
Author Message
 Post subject: резка трупа
PostPosted: 2010-11-10 17:35:25 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
Добрый день!

Ранее использовал скрипт с командой "lascorpse" для резки трупа, все хорошо работает, но когда убиваешь подряд несколько мобов, то скрипт естественно режет только последнего убитого(даже не открывая трупа), остальных приходилось резать "ручками"
- дабл клик на даггер и потом на тело(главное попасть - не всегда с первого раза). Выходом из положения нашел комманду по последнему контейнеру, но что берут сомнения в правильности и скрипта и его влияние на вылет из игры:

Code:
sub POREZ()
  uo.Set('finddistance','3')
  uo.WaitTargetObject('lastcontainer')
  uo.usetype('0x0F52','0x0000')
end sub


сей скрипт можно использовать или возможен другой гибкий вариант?


Top
   
PostPosted: 2010-11-11 09:29:45 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
у меня вот так:
Code:
Sub REZ()
   var body = '0x2006'
   var dagger = '0x0F51'
   var corpse
   UO.Set('quiet','1')
   ;uo.ignorereset()
   uo.set('finddistance', '3')
   UO.filterspeech('clear')
   UO.filterspeech('add','[Surprize ! Fast loot detected!]')
   UO.filterspeech('add','[Зафиксирована ловкость рук]')
   UO.filterspeech('on')
   uo.findtype(body, -1, 'ground')
   if uo.findcount() and Uo.GetDistance( 'finditem' ) < 3  then
      var x = uo.GetGraphic(uo.ObjAtLayer('Lhand'))
      var y = uo.GetGraphic(uo.ObjAtLayer('Rhand'))
      uo.warmode(0)
      wait(500)
      corpse = uo.getSerial("finditem")
      UO.WaitTargetObject(corpse)
      UO.UseType(dagger)
      wait(1000)
      uo.Equipt('Lhand',x)
      uo.Equipt('Rhand',y)
      Loot()
      uo.warmode(1)
   endif
   UO.Set('quiet','0')
end sub


в луталке после оббирания прописаны 2 строки
UO.Hide(corpse)
UO.Ignore(corpse)
Так что при запуске резки после облутивания каждый раз будет резаться другой труп.

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


Top
   
PostPosted: 2010-11-11 11:14:54 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
автохайд не возможен(на данный момент), т.к. в трупе иногда появляются вещи, которые еще в луталке не указаны.
так их потерять можно.

мой вариант в принципе работает, а хайд сам на тела бросаю, если они наложились друг на друга.


просто, при таком значении ( uo.WaitTargetObject('lastcontainer') - заместо трупа) какие-нибудь конфликты возможно?


Top
   
PostPosted: 2010-11-11 11:34:52 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Возможные варианты проблемы в не моем скрипте:
1) у тела TYPE и ID один, у порезанного тела (костей человеческих) другие. Если лутать НЕ мобов то будет глюк.
2) часто на шардах если тело открыто и его порезать окошко лута закрывается - придется юзать тело опять чтобы полутить.
3)если ты охотишься не один (на экране еще один охотник/ПК) ты убиваешь когото и собираешься нажать кнопку резки/лута и тут в углу экрана ктото умирает то последний контейнер будет в углу экрана а не рядом с тобой.
Если будешь тело игнорить то ловушка на ластконтейнер будет либо 0xfffffffff либо ты сам =>
Code:
if uo.getSerial('lastcontainer')<>'my' then
loot
endif

Можно так частично обезопаситься

ХЗ Мне всегда было проще организовать поиск на земле тела чем оперировать малопонятными и слетающими командами тило ласткорпс и ластконтейнер. Но это мое ИМХО.


В моем варианте резки и лута я сделал по следующему принципу
ищу труп
режу труп и открываю его
ИГНОРИРУЮ все не нужные мне предметы
лутаю НУЖНЫЕ мне предметы
лутаю все оставшиеся предметы.
прячу труп и игнорирую его.

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

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


Top
   
PostPosted: 2010-11-14 08:20:44 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
супер, вроде все пашет и без ошибок.

добавил:
проверку на даггеры для резки
и сообщение, если тел для резки нет
Вроде все хорошо.

Code:
sub POREZ()
   var body = '0x2006'
   var corpse
   uo.set('finddistance', '3')
   uo.findtype(body, -1, 'ground')
   if uo.findcount() and Uo.GetDistance( 'finditem' ) < 3  then
      wait(500)
      corpse = uo.getSerial("finditem")
      uo.UseObject(corpse)
      UO.WaitTargetObject(corpse)
if UO.Count('0x0F51','0x0000') || UO.Count('0x0F52','0x0000')  then
     if UO.Count('0x0F51','0x0000') then
      UO.UseType('0x0F51','0x0000')
     else
      UO.UseType('0x0F52','0x0000')
      endif
      else
    UO.Print('Gde Dagger?')
     return
    endif
    uo.DeleteJournal()
          wait(1000)
#      Loot1() ; запускаю другой кнопкой при необходимости, а так можно автоматом
#     UO.Hide(corpse) ; запускаю другой кнопкой при необходимости, а так можно автоматом
      UO.Ignore(corpse)
      ELSE
         uo.print(' No Corpse ')   
   endif
end sub


благодарю, твой скрипт лучше )))


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 3 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