Page 1 of 2

Кресты

Posted: 2006-02-21 23:55:33
by Mr. Gluk
Есть скрипт , но в нем как я понял стенка кастуется на ластстатус , а мне надо чтобы кастовалась именно под ноги иначе ничего не получится, шард ДрВ

Code: Select all

sub delta(n1, n2) 
var t=0
   t=n1-n2
   if t < 0 then
      return -t
   end if
   return t
end sub
sub isMax(n1, n2)
   if n2 > n1 then
      return 1
   end if
   return 0
end sub
sub Krest()
var f=0
   f=isMax(delta(uo.GetX(), uo.GetX('laststatus')),delta(uo.GetY(), uo.GetY('laststatus')))
StoneField()
   while f == isMax(delta(uo.GetX(), uo.GetX('laststatus')),delta(uo.GetY(), uo.GetY('laststatus')))
      wait(100)
   wend
StoneField()
end sub
Sub StoneField()
   if uo.waiting() then
      uo.canceltarget()
   end if
   uo.waittargettile(0,uo.getX('laststatus'),uo.getY('laststatus'),uo.getZ('laststatus'))
   uo.cast('Wall of Stone')
end sub

Posted: 2006-02-22 00:05:03
by Grin
какой знакомый скрипт;)
что значит подноги? он и так подноги качстует... что говорит то?

Posted: 2006-02-22 00:08:15
by Mr. Gluk
Пишет Select Target , забирает ману (не физлит) , но ничего не происходит

Posted: 2006-02-22 00:11:46
by Grin

Code: Select all

Sub Test() 
   if uo.waiting() then
      uo.canceltarget()
   end if
   uo.waittargettile(0,uo.getX()+10,uo.getY(),uo.getZ())
   uo.cast('Wall of Stone')
end sub

Затести скастит стенку?
Какая версия инжи?
Поробуй параметры сделать строковыми

Code: Select all

uo.waittargettile('0',str(uo.getX()+10),str(uo.getY()),str(uo.getZ())) 

Posted: 2006-02-22 00:38:09
by Mr. Gluk
Test работает , но ставит на себя стенку, и скрипт тоже заработал - но тоже ставит на себя

Posted: 2006-02-22 00:41:00
by Grin
... ты так и не ответил какая утебя версия инжи...
+ ты не ответил получилось ли сто строковысми параметрами...

Posted: 2006-02-22 00:52:02
by Mr. Gluk
312.19[+reconect] Base 0.3.30.4

С этой строкой - ставит стенку хрен знает где , ваще невпопад

Posted: 2006-02-22 01:04:18
by Grin
потому что это был тест!

Code: Select all

sub delta(n1, n2) 
var t=0
   t=n1-n2
   if t < 0 then
      return -t
   end if
   return t
end sub
sub isMax(n1, n2)
   if n2 > n1 then
      return 1
   end if
   return 0
end sub
sub Krest()
var f=0
   f=isMax(delta(uo.GetX(), uo.GetX('laststatus')),delta(uo.GetY(), uo.GetY('laststatus')))
StoneField()
   while f == isMax(delta(uo.GetX(), uo.GetX('laststatus')),delta(uo.GetY(), uo.GetY('laststatus')))
      wait(100)
   wend
StoneField()
end sub
Sub StoneField()
   if uo.waiting() then
      uo.canceltarget()
   end if
   uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')),str(uo.getZ('laststatus')))
   uo.cast('Wall of Stone')
end sub

Posted: 2006-02-22 01:20:44
by Mr. Gluk
Спасибо большое - заработал , только чар не может поставить вторую стенку , потому что мешает перваЯ , Можешь пожалуйста сделать чтобы по скрипту - чар ставил одну(не две) стенку и не прям под ноги , а на одну клетку правее от атакуемого

Posted: 2006-02-22 01:25:55
by Grin

Code: Select all

Sub StoneField() 
   if uo.waiting() then
      uo.canceltarget()
   end if
   uo.waittargettile('0',str(uo.getX('laststatus')+1),str(uo.getY('laststatus')+1),str(uo.getZ('laststatus')))
   uo.cast('Wall of Stone')
end sub

Posted: 2006-02-22 01:57:54
by Mr. Gluk
У меня последняя просьба , можно сделать так чтобы по нажатию одной и той же клавиши (например F8) выполнялись три скрипта
Жмем F8 - Выполняется

Code: Select all

Sub StoneField() 
   if uo.waiting() then
      uo.canceltarget()
   end if
   uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')),str(uo.getZ('laststatus')))
   uo.cast('Wall of Stone')
end sub

Потом опять жмем F8 - выполняется

Code: Select all

Sub StoneField1() 
   if uo.waiting() then
      uo.canceltarget()
   end if
   uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')+1),str(uo.getZ('laststatus')))
   uo.cast('Wall of Stone')
end sub

И наконец опять жмем F8 - выполняется

Code: Select all

Sub StoneField2() 
   if uo.waiting() then
      uo.canceltarget()
   end if
   UO.Say("Гори, гори ясно - чтобы не погасло!")
   uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')+1),str(uo.getZ('laststatus')))
   uo.cast('Fire Field')
end sub

Posted: 2006-02-22 02:20:53
by Grin

Code: Select all

Sub InitCross()
   uo.SetGlobal('cross', '0')
end sub
   
Sub Cross()
   if uo.waiting() then
      uo.canceltarget()
   end if
   if uo.GetGlobal('cross') == '0' then
      uo.SetGlobal('cross', '1')
      uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')),str(uo.getZ('laststatus')))
      uo.cast('Wall of Stone')
   else
       if uo.GetGlobal('cross') == '1' then
          uo.SetGlobal('cross', '2')
      uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')+1),str(uo.getZ('laststatus')))
         uo.cast('Wall of Stone')
      else
         if uo.GetGlobal('cross') == '2' then
            uo.SetGlobal('cross', '0')
            UO.Say("Ai?e, ai?e ynii - ?oiau ia iiaanei!")
            uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')+1),str(uo.getZ('laststatus')))
            uo.cast('Fire Field')
         end if
      end if
   end if
end sub

поскольку переменая глобальная, то возможна ситуация что ты не доведешь крест до коца тогда тебе надо будет сообщить это макросу что крест не удался и он обнулит переменную.

тобишь биндишь 2 скрипта Cross это сам крест 3 действия на 1 кнопке
InitCross сброс

Posted: 2006-02-22 02:28:56
by Mr. Gluk
Ща проверим

Posted: 2006-02-22 02:52:05
by Mr. Gluk
А можно еще поставить защиту от физла ? Так чтобы после физла при нажатии клавиши запускался тот же подскрипт , а не следующий

Posted: 2006-02-23 00:38:13
by Mr. Gluk
Пожалуйста помогите уже довести скрипт до ума

Posted: 2006-02-23 00:53:12
by Grin
как физл проевляется?
Просто журналом или еще как?

вопрос к знающим по прошивке

Posted: 2006-02-23 01:03:44
by LordTom
Феномен дежавю до сих пор необъясним Здесь я уже был! Вот здесь сидел и видел все, что вокруг меня. Все это было Но как и когда? Практически у каждого человека рано или поздно

Posted: 2006-02-23 01:33:22
by Mr. Gluk
Просто надо чтоб при физле каста, скрипт возращался на тот подскрипт с которого профизлило , например

Code: Select all

(1) uo.waittargettile('0',str(uo.getX('laststatus')),str(uo.getY('laststatus')),str(uo.getZ('laststatus'))) 
      uo.cast('Wall of Stone')
Допустим тут сфизлил каст , тогда он возвращается в точку 1
   else
       if uo.GetGlobal('cross') == '1' then
          uo.SetGlobal('cross', '2')

Posted: 2006-02-23 02:08:20
by Mr. Gluk
Вернее не переходил на точку 1 , а просто выходил из скрипта ведь setglobal сохранится текущий как я понял и при запуске скрипта он начнется с последнего подскрипта

Posted: 2006-02-23 12:54:29
by Grin
Глюк я тебя спрашивал "Как это сделать?"? Я помойму точно спросил, как увас на шарде физл спела проявляется...