Page 1 of 1

Авто одевание оружия в случаи поломки

Posted: 2005-07-11 17:41:01
by Ультимщик
Если кто-то знает скрипт, чтобы чар сам одевал оружие при поломки старого, напишите плз.

Re: Авто одевание оружия в случаи поломки

Posted: 2005-07-11 22:21:51
by maximka4
Ультимщик wrote:Если кто-то знает скрипт, чтобы чар сам одевал оружие при поломки старого, напишите плз.
зачем в случае поломки?, положи в пак например 10 дагеров и пусть они юзаються например через 40 секунд :wink:

Posted: 2005-07-11 22:52:45
by Grin
Есть такая партия!
Ой блин чтото я не то... а Вот...
Есть такой скрипт!
Только не видел что бы его ктото выкладывал по этому предлогаю тебе стать перво проходцем и заюзать такую замечательную команду как uo.ObjAtLayer(layer) (признаюь нагло содрал из хелпа%)
И все...
Теперь унас есть объек в нашей руке... а если там ничего нету то и сериала у него нету;)
А если нету унас сериала то берем и одеваем блиайшее потипу через команду
uo.equipt(layer,type) (каюсь опять содрал...)
И все... Удачи!

Posted: 2005-07-12 00:47:28
by omi4
Автор EDRED

Code: Select all

Sub GetDagger() 
   VAR Dagger = '0x0F51'
   If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) <> Dagger Then
      UO.FindType( Dagger )
      If UO.FindCount() == 0 Then
         return 0
      Endif
      UO.Equipt( 'Rhand', Dagger )
      wait(1000)
   Endif
   return 1
endsub

Posted: 2005-07-12 01:31:38
by Dron D.
Из прочтения 3-х уроков, по написанию скрипта, написанных Edred`ом, попробую поправить етот мини скрипт)...
Как я понял нужно чтобы чар менял дагеры при их поломке... используя оператор If и Uo.InJournal попробую поменять...

(Если что - то не правильно, поправьте меня, чтобы я не повторял этих ошибок в дальнейшем)

Code: Select all

Sub ChangeDagger() 
   VAR Dagger = '0x0F51'
   If UO.InJournal("You damage")  Then
      UO.FindType( Dagger )
      If UO.FindCount() == 0 Then
         return 0
      Endif
      UO.Equipt( 'Rhand', Dagger )
      wait(1000)
   Endif
   return 1
endsub

Posted: 2005-07-12 01:44:42
by omi4

Code: Select all

Sub ChangeDagger() 
   repeat
      wait(1000)
   until UO.InJournal("You damage")
   GetDagger()
endsub


Sub GetDagger()
   VAR Dagger = '0x0F51'
   If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) <> Dagger Then
      UO.FindType( Dagger )
      If UO.FindCount() == 0 Then
         return 0
      Endif
      UO.Equipt( 'Rhand', Dagger )
      wait(1000)
   Endif
   return 1
endsub


Журнал нужно читать....
Иначе событие поймать не получится

А если армор сломан…, сообщение вроде тоже самое

Posted: 2005-07-12 10:01:15
by Grin
Во вы извращенци...
sub peekup()
var weapon='' #тип оружия
while not uo.dead()
wait(100)
if not UO.ObjAtLayer('Rhand') then
UO.Equipt('Rhand',Weapon)
while not UO.ObjAtLayer('Rhand')
wait(100)
wend
endif
wend
end sub

Posted: 2005-07-12 10:14:45
by omi4
Grin wrote:

Code: Select all

Во вы извращенци...
sub peekup()
var weapon='' #тип оружия
while not uo.dead()
wait(100)
if not UO.ObjAtLayer('Rhand') then
UO.Equipt('Rhand',Weapon)
while not UO.ObjAtLayer('Rhand')
wait(100)
wend
endif
wend
end sub


В принципе тоже самое, только возможен вариант бесконечного одевания несуществующего дагера. Ну нет их в паке…

Posted: 2005-07-12 10:27:46
by Askaneli

Code: Select all

Var Sunduk='0x40370FCF' ; Сундук в который свалены все ГХ, стрелы и луки
Var TBow='0x13B1' ; Тип оружия которое будем использовать 
if uo.count(TBow)==0 then
   uo.findtype(TBow,'-1',Sunduk)
   wait(100)
   uo.moveitem('finditem','1','backpack')
   wait(1000)
end if
if uo.GetGraphic(uo.ObjAtLayer('Rhand'))<>TBow then
   uo.usetype(TBow)
   wait(1000)
end if

Posted: 2005-07-12 22:04:18
by Grin
Никакого бесконечного одевания...
При отсутствии скрипт уйдет в ожидание и все не сжирая не процесорное время и ресурсы...
Вопрос о простоте и рациональности%)