I tried this macro but it doesnt detect when item identification = 100.0 and it get stucks in there.
how to fix that ? 
Code:
############################################################
########################drw.ru##############################
############################################################
############################################################                                                                       
# Если кто то играет на хорошем конекте                    #
#  Или по локальной сети, то можно и постоять,покачаться =)#
#                                                          #
############################################################
############################################################
#                                                          #
# Указываем вещи для прокачки.                             #
# Указываем животное для Animal Lore                       #
# (Если у вас на шарде это не запрещено)На том же животном #
# качаем Evaluating Intell)                                #
# Так же указываем еду на которой качать Taste Ident и что #
# что будем перекусывать.                                  #
# added:                                                   #
# Hiding,Detect Hiding, Tracking, Spirit Speak, Stelth     #
############################################################
; 8.03.06
; msg- msg12 - сообщения
;
; Формула задающая время между использованием скилов, следующая:
;
; if uo.InJournal(waiting) then
;   forskill= forskill + 500
; end if
;                 v 1.0
;          created & tested on
;  Shard Dragon World by Goldberg[PaDoHkU]
;
#############################################################
sub eating()
var w = 750                  # Задержка между кликами по еде, когда голодны
var food='0x09D1'            # Тип еды которую кушаем
var i
if uo.InJournal('You are hungry') then
for i = 0 to 10
uo.findtype('food',-1,'backpack')
uo.UseObject('food')
wait(w)
i = i + 1
next
endif
uo.DeleteJournal()
end sub
sub bla()
 
  Var msg='Its made'               # Удачное сообщение при использовании скила Item Ident
  Var msg2='You cannot'            #Неудачное сообщение при использовании скила Item Ident
  Var msg3='it is'                 # Удачное сообщение при использовании скила Animal Lore
  Var msg4='You cannot'            #Неудачное сообщение при использовании скила Animal Lore
  Var msg5='Attack'                # Удачное сообщение при использовании скила Arms Lore
  Var msg6='You cannot'            #Неудачное сообщение при использовании скила Arms Lore
  Var msg7='Looks'                 # Удачное сообщение при использовании скила Evalution Intell
  Var msg8='cannot say'            #Неудачное сообщение при использовании скила Evalution Intell
  Var msg9='You see: Horse'        # Удачное сообщение при использовании скила Anatomy
  Var msg10='You cannot'           #Неудачное сообщение при использовании скила Anatomy
  Var msg11='It tastes'            # Удачное сообщение при использовании скила Taste Ident
  Var msg12='substance.'           #Неудачное сообщение при использовании скила Taste Ident
  VAR fizzle = 'You fail your attempt' # Удачное сообщение при использовании скила Spirit Speak
  VAR success = 'You establish a connection' #Неудачное сообщение при использовании скила Spirit Speak
  Var waiting='You must wait'      # Слишком быстро используем Skill
  Var forskill=2000                # Время для использования скилов( генерируется автоматически )
  VAR mod = UO.WarMode(), num      # Don't touch
  VAR trak = 3000                  # Время нужное для использования скила Tracking
  Uo.Print('Select an item')
  Uo.exec('addobject Item')
  while uo.targeting()
    Wait(100)
  Wend
  Uo.Print('Select an animal')
  Uo.exec('addobject animal')
  while uo.targeting()
    Wait(100)
  Wend
  Uo.Print('Select something to eat(For skill)')
  Uo.exec('addobject taste')
  while uo.targeting()
    Wait(100)
  Wend
  Uo.Print('Select something to eat')
  Uo.exec('addobject eda')
  while uo.targeting()
    Wait(100)
  Wend
  repeat
    repeat
      Uo.WaitTargetObject('Item')
      Uo.UseSkill('Item Identification')
      Wait(forskill)
        if uo.InJournal(waiting) then
          forskill = forskill + 500
        end if
    Until uo.InJournal(msg) or uo.InJournal(msg2)
  CheckLag()
  eating()
  until uo.SkillVal('Item Identification') == 1000
  repeat
    uo.DeleteJournal()
    uo.WaitTargetObject('animal')
    uo.UseSkill('Animal Lore')
    Wait(forskill)
      repeat
        if uo.InJournal(waiting) then
          forskill = forskill + 500
        end if
      CheckLag()
      Until uo.InJournal(msg3) or uo.InJournal(msg4)
    CheckLag()
    eating()
  until uo.SkillVal('Animal Lore') == 1000
  repeat
    repeat
      Uo.WaitTargetObject('Item')
      Uo.UseSkill('Arms Lore')
      Wait(forskill)
        if uo.InJournal(waiting) then
          forskill = forskill + 500
        end if
    Until uo.InJournal(msg5) or uo.InJournal(msg6)
  CheckLag()
  eating()
  until uo.SkillVal('Arms Lore') == 1000
   repeat
    uo.WaitTargetObject('animal')
    uo.UseSkill('Evaluating Intelligence')
    Wait(forskill)
      repeat
        if uo.InJournal(waiting) then
          forskill = forskill + 500
        end if
      CheckLag()
      Until uo.InJournal(msg7) or uo.InJournal(msg8)
    CheckLag()
    eating()
  until uo.SkillVal('Evaluating Intelligence') == 1000
  repeat
    uo.WaitTargetObject('animal')
    uo.UseSkill('Anatomy')
    Wait(forskill)
      if uo.InJournal(waiting) then
        forskill = forskill + 500
      end if
    CheckLag()
    eating()
  until uo.SkillVal('Anatomy') == 1000
  repeat
    uo.WaitTargetObject('taste')
    uo.UseSkill('Taste Identification')
    Wait(forskill)
      if uo.InJournal(waiting) then
        forskill = forskill + 500
      end if
    CheckLag()
    eating()
  until uo.SkillVal('Taste Identification') == 1000
  repeat
     UO.WarMode( 0 )
      uo.DeleteJournal()
        repeat
       uo.DeleteJournal()
        UO.UseSkill( 'Spirit Speak' )
          repeat
           wait(50)
           until UO.InJournal('msg13') OR UO.InJournal('msg14')
       CheckLag()
        until UO.InJournal( success )
      UO.WarMode( mod )
     eating()
  until uo.SkillVal('Spirit Speak') == 1000
  repeat
    uo.AutoMenu("Tracking","Players")
    uo.UseSkill('Tracking')
    wait(trak)
    eating()
  until uo.SkillVal('Tracking') == 1000
  UO.DeleteJournal()
  repeat
    UO.UseSkill('Detect Hidden')
    wait(forskill)
      if uo.InJournal(waiting) then
        forskill = forskill + 500
      end if
    wait(forskill)
    eating()
  until uo.SkillVal('Detect Hidden') == 1000
  repeat
    UO.UseSkill('Detect Hidden')
    wait(forskill)
      if uo.InJournal(waiting) then
        forskill = forskill + 500
      end if
    wait(forskill)
    eating()
  until uo.SkillVal('Detect Hidden') == 1000
  repeat
    UO.UseSkill('Hiding')
    wait(forskill)
      if uo.InJournal(waiting) then
        forskill = forskill + 500
      end if
    wait(forskill)
    eating()
  until uo.SkillVal('Hiding') == 1000
UO.DeleteJournal()
  repeat
    UO.UseSkill('Stealth')
    wait(forskill)
      if uo.InJournal(waiting) then
        forskill = forskill + 500
      end if
    wait(forskill)
    eating()
  until uo.SkillVal('Stealth') == 1000
end sub
sub eating()
var w = 750
var food='0x09D1'
var i
if uo.InJournal('You are hungry') then
for i = 0 to 10
uo.findtype('food',-1,'backpack')
uo.UseObject('food')
wait(w)
i = i + 1
next
endif
uo.DeleteJournal()
end sub
sub CheckLag()
if uo.injournal("World is saving now...") then
repeat
wait(50)
until uo.injournal("World save")
end if
uo.Click('backpack')
repeat
wait(50)
until uo.InJournal("backpack")
end sub