Yoko

All sides of Injection
It is currently 2026-01-20 11:18:04

All times are UTC+02:00




Post new topic  Reply to topic  [ 7 posts ] 
Author Message
PostPosted: 2006-06-08 10:39:18 
Offline
User avatar

Joined: 2004-12-13 17:57:14
Posts: 25
Добрый!
Хочу попросить вас помочь со скриптом. Немного переделал скрипт на Масс диспел для шарда ДРВ:

Code:
sub VasAnOrt()
   VAR ManaNeed=33
   VAR ManaNeedScroll=16
      UO.FindType('0x1f62',-1,'my')
      If UO.FindCount()>0 Then
         If UO.Mana>=ManaNeedScroll Then
            UO.WaitTargetSelf()
            UO.UseObject('finditem')
            UO.Print("MASS DISPEL Scroll")
         Else
            UO.Print("Low mana!!! Scroll!")
            dmana()
         wait(100)
         VasAnOrt()
         Endif
      Else
         If UO.Mana>=ManaNeed Then
            UO.Cast('Mass Dispel','self')
            UO.Print("MASS DISPEL Spell")
         Else
            UO.Print("Low mana!!! Spell!")
            dmana()
         wait(100)
         VasAnOrt()
         Endif
      Endif
end sub



Смысл в том, что когда есть в паке скролл масс диспела - он юзает его. если маны для скролла мало, то пьет манку и опять юзает скролл. А если скролла нету, то он кастует обычным способом из спелбуки, опять же если маны недостаточно, то пьет манку и кастует снова.
Но к сожалению, когда нужно кастовать масс диспел, маны недостаточно и ее неоказалось в паке, то скрипт виснет. Тоже самое, если ее нельзя на данный момент пить. Скрипт будет все равно пытаться ее выпить, тем самым зависая. Подскажите, как можно это исправить? Как остановить цикл и сделать так, чтобы он один раз пытался выпить ману, а если не получается, то и не мучался бы, отрубался?


Top
   
 Post subject:
PostPosted: 2006-06-08 10:42:09 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
В скрипте твоём dmana() допиши проверку на колво:

Code:
sub dmana()
  uo.FindType(mana,color,'backpack')
  if uo.FindCount() then
    uo.UseType(mana,color)
  else
    uo.Exec('terminate названия скрипта который остановить')
  end if
end sub


Top
   
 Post subject:
PostPosted: 2006-06-08 11:22:09 
Offline
User avatar

Joined: 2004-12-13 17:57:14
Posts: 25
Хмммм, а если по времени нельзя пить ману, тогда что делать?
Скрипт будет виснуть...
Подскажите, как можно сделать, чтобы скрипт один раз пробывал выпить ману, если не получается по каким либо причинам (время или собственно маны нету) то останавливался.


Top
   
 Post subject:
PostPosted: 2006-06-08 11:56:42 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Убрать рекурсию, то есть вызов скрипта из самого себя. Лучше чтобы скрипт был однопроходный, то есть делал одну попытку. А дальше ты сам решаешь пнуть его второй раз или делать что то еще.


Top
   
 Post subject:
PostPosted: 2006-06-08 13:10:25 
Offline
User avatar

Joined: 2004-12-13 17:57:14
Posts: 25
Дык, это то мне и нужно...
Только вот не пойму как.
Я полностью не писал этот скрипт, я только вставлял нужные функции.
а как убрать рекурсию - без понятия...


Top
   
 Post subject:
PostPosted: 2006-06-08 13:21:09 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
Code:
         wait(100) 
         VasAnOrt() <<<<<<<<<
         Endif
      Endif

вот эта строчка вызывает скрипт снова и снова.


Top
   
 Post subject:
PostPosted: 2006-06-08 13:42:01 
Offline
User avatar

Joined: 2004-12-13 17:57:14
Posts: 25
ааааа, ты про это говоришь!
Понял тебя, спасиб..


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 0 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited