Yoko

All sides of Injection
It is currently 2025-12-03 06:45:16

All times are UTC+02:00




Post new topic  Reply to topic  [ 8 posts ] 
Author Message
PostPosted: 2006-11-30 18:09:57 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Медитация и хелинг с курсой + мытьё бинтов + еда.

Скрипт написан и протестирован на шарде DRW: 30.11.06.
Редактирование + критику рассмотрю в этой теме.
Code:
sub Heal_Medit()
  var mana=uo.mana ,life=uo.life ,k, i
  var item='0x153E' #Type of curse
  var wash='0x402D878C'
  var bloody='0x0E20' #Type of a bloody bandage
  var food='0x097B' #Type something to eat
  while not uo.Dead() && uo.SkillVal('Meditation',2) <= 1010 && uo.SkillVal('Healing',2) <= 1010
    uo.FindType(item,'-1','backpack')
    if uo.FindCount() then
      uo.UseObject('finditem')
      repeat
        wait(250)
        CheckLag()
      until uo.life <= life -1 && uo.mana <= mana-1
      uo.UnDress()
      repeat
        k = 0
        if uo.life <> life && uo.mana <> mana then
          uo.CancelTarget()
          uo.BandageSelf()
        else
          if uo.life <> life && uo.mana == mana then
            uo.BandageSelf()
            wait(3500)
          end if
        end if
        CheckLag()
        if uo.mana <> mana then
          uo.UseSkill('Meditation')
          uo.DeleteJournal()
          repeat
            wait(100)
            k = k + 1
          until uo.InJournal('You are') || uo.InJournal('you lose') || (k>50)
        end if
      until uo.life == life && uo.mana == mana   
      uo.FindType(bloody,'-1','backpack')
      if uo.FindCount() && uo.GetQuantity('finditem') >= 180 then
        uo.WaitTargetObject(wash)
        uo.UseObject('finditem')
        CheckLag()
        for i = 0 to 10
          uo.UseType(food)
          wait(1000)
        next
      end if
    else
      if not uo.FindCount() then
        uo.CloseUo()
      else
        wait(500)
      end if
    end if
  wend
end sub

sub CheckLag()
  uo.DeleteJournal('backpack')
  uo.Click('backpack')
  repeat
    wait(100)
  until uo.InJournal('backpack')
end sub


Top
   
 Post subject:
PostPosted: 2006-11-30 20:00:04 
Offline
User avatar

Joined: 2005-07-10 21:53:05
Posts: 457
Code:
sub Heal_Medit()
   var p = 1 ; поправка к статам, чтобы было что лечить и медитировать
   var curse = '0x153E' ; Type of curse

   repeat
      UO.UseObject('_' + curse)
      ; Почему тут нет CheckLag?
      ; По тому что поиск ведет инжа у себя в памяти
      ; При любых лагах все проидет зачепятельно
      if not UO.FindCount() then
         ; выход по фатальной ошибке
         UO.Print("ERROR: !!! curse !!!")
         return 1
      endif
      ; разрушаем свой организьм
      repeat
         ; пока ждем можно пожрать, постирать или просто вайт
         util()
      until UO.HP < UO.MaxHP - p && UO.MANA < UO.INT - p
      UO.UnDress()

      while heal() && meditation()
         wait(200)
      wend

   ; Поправил, у автора там хз что
   until UO.Dead() || (UO.SkillVal('Meditation',1) == 1000 && UO.SkillVal('Healing',1) == 1000)
end sub

sub util()
   ; тут код
end sub

sub heal()
   ; тут код
   return 0
end sub

sub meditation
   ; тут код
   return 0
end sub



Code:
   ; ПОЧЕМУ ТУТ НЕ ТИП?
   var wash='0x402D878C';
   ; разьве есть шарды где тип иной?
   var bloody='0x0E20' #Type of a bloody bandage
   ; это едят все, в крайнем случае все стоя на скриптах
   var food='0x097B' #Type something to eat
   ; нафиг тогда переменные?


Top
   
 Post subject:
PostPosted: 2006-11-30 20:37:30 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
omi4 wrote:
Code:
sub Heal_Medit()
   var p = 1 ; поправка к статам, чтобы было что лечить и медитировать
   var curse = '0x153E' ; Type of curse

   repeat
      UO.UseObject('_' + curse)
      ; Почему тут нет CheckLag?
      ; По тому что поиск ведет инжа у себя в памяти
      ; При любых лагах все проидет зачепятельно
      if not UO.FindCount() then
         ; выход по фатальной ошибке
         UO.Print("ERROR: !!! curse !!!")
         return 1
      endif
      ; разрушаем свой организьм
      repeat
         ; пока ждем можно пожрать, постирать или просто вайт
         util()
      until UO.HP < UO.MaxHP - p && UO.MANA < UO.INT - p
      UO.UnDress()

      while heal() && meditation()
         wait(200)
      wend

   ; Поправил, у автора там хз что
   until UO.Dead() || (UO.SkillVal('Meditation',1) == 1000 && UO.SkillVal('Healing',1) == 1000)
end sub

sub util()
   ; тут код
end sub

sub heal()
   ; тут код
   return 0
end sub

sub meditation
   ; тут код
   return 0
end sub



Code:
   ; ПОЧЕМУ ТУТ НЕ ТИП?
   var wash='0x402D878C';
   ; разьве есть шарды где тип иной?
   var bloody='0x0E20' #Type of a bloody bandage
   ; это едят все, в крайнем случае все стоя на скриптах
   var food='0x097B' #Type something to eat
   ; нафиг тогда переменные?


=\
1. На шарде Форест Варс к примеру нет корыта в котором мыть бинты( когда я играл) -там приходилось мыть в деревянном корыте, из которых "пьют лошадки".
2. Бинты... ммм. Не задумывался об этом-но не вижу здесь каких то недочётов.
3. Еда. Мммм... еда бывает разная. Все едят фишстейки?! -Возможно, но могу вспомнить к примеру мёд на цитадели(если не ошибаюсь).
Зачем переменные -думаю теперь понятно. Ведь не всем так просто читать код и находить,-поэтому все используемые объекты которые могут быть изменены вынес в начало скрипта. Разве что разность макс. жизни и той с которой начинаем лечиться.


Top
   
 Post subject:
PostPosted: 2006-11-30 20:44:15 
Offline
Expert!
User avatar

Joined: 2005-01-07 13:22:19
Posts: 766
на медит есть и другой скрипт :roll:


Top
   
 Post subject:
PostPosted: 2006-12-03 11:20:40 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Healing+Meditation
Code:
sub Heal_Medit()
# Edited:
# 1.mana and life -had been changed to STR and INT for more safety.
#
  var STR=195 # You STR withour curse
  var INT=60 # You INT without curse
  var item='0x153E' #Type of curse
  var wash='0x402D878C' #ID where to clean bandage
  var bloody='0x0E20' #Type of bloody bandage
  var food='0x097B' # Type of anything to eat
  var k, i
  while not uo.Dead() && uo.SkillVal('Meditation',1) < 1000 && uo.SkillVal('Healing',1) < 1000
    if uo.life < STR && uo.mana < INT then
      goto Begin
    end if
    uo.FindType(item,'-1','backpack')
    if uo.FindCount() then
      uo.UseObject('finditem')
      repeat
        wait(250)
        CheckLag()
      until uo.life <= STR -1 && uo.mana <= INT-1
      Begin:
      uo.UnDress()
      repeat
        k = 0
        if uo.life <> STR && uo.mana <> INT then
          uo.CancelTarget()
          uo.BandageSelf()
        else
          if uo.life <> STR && uo.mana == INT then
            uo.BandageSelf()
            wait(3500)
          end if
        end if
        CheckLag()
        if uo.mana <> INT then
          uo.UseSkill('Meditation')
          uo.DeleteJournal()
          wait(150)
          repeat
            wait(100)
            k = k + 1
          until uo.InJournal('You are') || uo.InJournal('you lose') || (k>50)
        end if
      until uo.life == STR && uo.mana == INT   
      uo.FindType(bloody,'-1','backpack')
      if uo.FindCount() && uo.GetQuantity('finditem') >= 180 then
        uo.WaitTargetObject(wash)
        uo.UseObject('finditem')
        CheckLag()
        for i = 0 to 10
          uo.UseType(food)
          wait(1000)
        next
      end if
    else
      if not uo.FindCount() then
        uo.CloseUo()
        uo.exec('terminate all')       
      else
        wait(500)
      end if
    end if
  wend
end sub


Meditation
Code:
sub MeditationTrain()
  var INT=60 #Your INT withour curse
  var item='0x153E' #Type of curse
  var food='0x097B' #Type of something to eat
  var k, i, l
  l=0
  while not uo.Dead() && uo.SkillVal('Meditation',1) < 1000
    if uo.mana < INT then
      goto BeginMedit
    end if
    uo.FindType(item,'-1','backpack')
    if uo.FindCount() then
      uo.UseObject('finditem')
      repeat
        wait(150)
        CheckLag()
      until uo.mana <= INT-1
      BeginMedit:
      uo.UnDress()
      repeat
        k = 0
        CheckLag()
        if uo.mana <> INT then
          uo.UseSkill('Meditation')
          uo.DeleteJournal()
          wait(150)
          repeat
            wait(100)
            k = k + 1
          until uo.InJournal('You are') || uo.InJournal('you lose') || (k>50)
        end if
      until uo.mana == INT 
      l=l+1
      if l>100 then
        for i=0 to 10
          uo.UseType(food)
          wait(1000)
        next
        l=0
      end if     
    else
      if not uo.FindCount() then
        uo.CloseUo()
        uo.exec('terminate all')       
      else
        wait(500)
      end if
    end if
   wend
end sub


Healing
Code:
sub Healing()
  var STR=195 #Your STR withour curse
  var item='0x153E' #Type of curse
  var wash='0x402D878C' #ID where to clean bandage
  var bloody='0x0E20' #Type of bloody bandage
  var food='0x097B' #Type of something to eat
  var k, i 
  while not uo.Dead() && uo.SkillVal('Healing',1) < 1000
    if uo.life < STR then
      goto BeginHeal
    end if
    uo.FindType(item,'-1','backpack')
    if uo.FindCount() then
      uo.UseObject('finditem')
      repeat
        wait(250)
        CheckLag()
      until uo.life <= STR -1
      BeginHeal:
      uo.UnDress()
      repeat
        k = 0
        if uo.life <> STR then
          uo.BandageSelf()
          wait(3500)
        end if
      until uo.life == STR 
      uo.FindType(bloody,'-1','backpack')
      if uo.FindCount() && uo.GetQuantity('finditem') >= 180 then
        uo.WaitTargetObject(wash)
        uo.UseObject('finditem')
        CheckLag()
        for i = 0 to 10
          uo.UseType(food)
          wait(1000)
        next
      end if
    else
      if not uo.FindCount() then
        uo.CloseUo()
        uo.exec('terminate all')       
      else
        wait(500)
      end if
    end if
  wend
end sub


Last edited by Scripts Writer on 2006-12-03 13:31:39, edited 2 times in total.

Top
   
 Post subject:
PostPosted: 2006-12-03 13:12:10 
Offline
User avatar

Joined: 2005-07-10 21:53:05
Posts: 457
в строке

Code:
while not uo.Dead() && uo.SkillVal('Meditation',2) <= 1010 && uo.SkillVal('Healing',2) <= 1010 


Quote:
Синтакс: number uo.SkillVal(skill,[case])
--------------------------------------------------------------------------------
Возвращает величину умения skill в десятых процента, т.е. 12.3%=123.
Если задано значение параметра case то можно получить такие значения:

case=0: величина умения skill в десятых процента
case=1: величина умения skill в десятых процента (real)
case=2: увеличение skill с момента загрузки или сброса в десятых процента
case=3: статус skill (открыт, закрыт, уменьшается)


чтобы из выйти цикла нужно иметь все скиллы 110 и быть мертвым
&& это AND


Top
   
 Post subject:
PostPosted: 2006-12-03 13:23:52 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
Мы как бы из цикла выходить не собираемся-а со скилвалом немножко зделал направильно. Сейчас поправлю.

2

Meditation = 100.0 :

Code:
while not uo.Dead() -цикл выполняется
while uo.SkillVal('Meditation',1) < 1000 -цикл не выполняется
while not uo.Dead() && uo.SkillVal('Meditation',1) < 1000 -цикл не выполняется
while not uo.Dead() && uo.SkillVal('Meditation',1) < 1001 -цикл выполняется


Top
   
 Post subject:
PostPosted: 2006-12-03 14:13:53 
Offline
User avatar

Joined: 2005-07-10 21:53:05
Posts: 457
у тебя
Мертв и ГМ1 и ГМ2 / Мертв && ГМ1 && ГМ2

нужно
мертв или (ГМ1 и ГМ2) / мертв || (ГМ1 && ГМ2)


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


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:  
cron
Powered by phpBB® Forum Software © phpBB Limited