Yoko

All sides of Injection
It is currently 2025-11-02 00:25:25

All times are UTC+02:00




Post new topic  Reply to topic  [ 5 posts ] 
Author Message
PostPosted: 2010-11-15 07:07:28 
Offline

Joined: 2010-11-15 06:54:09
Posts: 5
смысл скрипта таков:
если жизни не полные то он проверяет: бинты, еду, топоры, вес, атакуют-ли, переменную hometime, дохлость.
проблема такова:
когда жизни не полные, он начинает считать. бинтов выдает 27, еды 26, топоров 25. на самом деле в паке 300 бинтов, 20 еды, 5 топоров. после первого круга, бинтов уже 24, еды 23, и 22 топора. так делает пока бинтов не становиться меньше 15, реколиться домой, пишет что проблема с бинтами, выходит из уо.

в чем проблема? все никак немогу понять


Code:
hometime=0
sub gohome_reags()
   var exit=0
   while exit==0
      while not uo.life == uo.str
         uo.ignore('finditem')
         uo.findtype('bandages',-1,2)
         if uo.findcount() <15 then
            uo.exec("terminate autoLumber")
            wait(300)
            uo.disarm()
            uo.cast('Recall',runebook)
            wait(5000)
            uo.msg('No bandages')
            exit=1
         else
            uo.print('Bandages:'+str(uo.findcount()))
         endif
         
         uo.ignore('finditem')
         uo.findtype('food',-1,2)
         if uo.findcount() <1 then
            uo.exec("terminate autoLumber")
            wait(300)
            uo.disarm()
            uo.cast('Recall',runebook)
            wait(5000)
            uo.msg('No food')
            exit=1
         else
            uo.print('Food:'+str(uo.findcount()))
         endif
      
         uo.ignore('finditem')
         uo.findtype('hatchet',-1,2)
         if uo.findcount() <1 then
            uo.exec("terminate autoLumber")
            wait(300)
            uo.disarm()
            uo.cast('Recall',runebook)
            wait(5000)
            uo.msg('No tools')
            exit=1
         else
            uo.print('Tools:'+str(uo.findcount()))
         endif
      
         if uo.weight >20000 then
            uo.exec("terminate autoLumber")
            wait(300)
            uo.disarm()
            uo.cast('Recall',runebook)
            wait(5000)
            uo.msg('Overweight')
            exit=1
         endif
      
         if uo.injournal('attacking') then
            uo.exec("terminate autoLumber")
            wait(300)
            uo.disarm()
            uo.cast('Recall',runebook)
            wait(5000)
            uo.msg('Under attack!')
            exit=1
         
         endif
      
         if hometime==1 then
            uo.exec("terminate autoLumber")
            wait(300)
            uo.disarm()
            uo.cast('Recall',runebook)
            wait(5000)
            uo.msg('Enough for today...')
            exit=1
         endif
      
         if uo.dead() then
            uo.moveon()
            uo.showjournal(50)
            exit=2
         endif
         wait(3000)
         wend
   wend
   
   if exit==1 then
      uo.closeuo()
   endif
end sub


Top
   
PostPosted: 2010-11-15 10:43:43 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Команда uo.msg('Overweight') ПРОИЗНОСИТ это слово. Тоесть все окружающие будут видеть что у тебя перевес.

для стакующихся предметов (еда, отмычки, банки пустые, реги, бинты) используется
Str(UO.GetQuantity('finditem'))

Для не стакующихся (топоры, лопаты, кирки, полные бутылки)
Str( UO.FindCount())

PS Я слышал частая передергивался UO.Print вызывает краши. Не знаю так ли это но я в своих скриптах использую"

Code:
UO.FindType( item, -1, Container)
uo.charprint(printcolour,'Банок в банке: '+Str(UO.GetQuantity('finditem')))

UO.FindType( item , -1, Container)
uo.charprint(printcolour,'Кинжалов в мешке: '+Str( UO.FindCount()))

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


Top
   
PostPosted: 2010-11-15 14:21:23 
Offline

Joined: 2010-11-15 06:54:09
Posts: 5
Да, я в курсе, оставил на так для отладки, потом поменяю.

тоесть в иф условие вставлять Str(UO.GetQuantity('finditem')) и Str( UO.FindCount()) соответственно?


Top
   
PostPosted: 2010-11-15 14:24:09 
Offline

Joined: 2010-11-15 06:54:09
Posts: 5
всеравно правильно считать он не хочет. без понятия что с ним делать (


Top
   
PostPosted: 2010-11-15 19:02:35 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Ну во-первых ты алгоритм скрипта не правильно строишь.
Если бы твой скрипт работал то получилось так:
У тебя меньше 15 бинтов - чар улетает на базу и выставляет exit=1, ЗАТЕМ проверяет еду. И если ее мало то ОПЯТЬ летит на базу.
ИМХО проще сделать 1 условие при котором чар полетит на базу:
Code:
 if uo.count('bandages')<15 || uo.count('eda')<15 ||uo.count('topor')<1 then
летим на базу

Во вторых при проверке сообщения в журнале ты не используешь стирание журнала => проверка будет срабатывать ВСЕГДА.
В третьих что за uo.ignore('finditem') понатыканный везде? ЧТО именно ты игноришь - ты же даже ничего не находишь перед игнорированием этого чегото.
В четвертых
Code:
   uo.cast('Recall',runebook)
   wait(5000)

А если филзанет? Делай выносную функцию с проверкой на филз и "улетел\не улетел".

Ну и в последних зачем пробовать делать салат не умея пользоваться ножом? Тестирую куски скрипта по отдельности, потом склеивай в 1 скрипт или в выносные процедуры.

К слову
Code:
sub gohome_reags()
var bandages = '0x0E21'
        uo.findtype(bandages,-1,'my')
         if UO.GetQuantity('finditem') < 15 then
            uo.msg('No bandages')
         else
            uo.print('Bandages:'+Str(UO.GetQuantity('finditem')))
         endif
end sub
прекрасно работает.

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


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 29 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