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
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
Спасибо большое - заработал , только чар не может поставить вторую стенку , потому что мешает перваЯ , Можешь пожалуйста сделать чтобы по скрипту - чар ставил одну(не две) стенку и не прям под ноги , а на одну клетку правее от атакуемого
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
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
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
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
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 сброс
Феномен дежавю до сих пор необъясним Здесь я уже был! Вот здесь сидел и видел все, что вокруг меня. Все это было Но как и когда? Практически у каждого человека рано или поздно
Last edited by LordTom on 2009-12-23 11:49:58, edited 2 times in total.
(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')
Вернее не переходил на точку 1 , а просто выходил из скрипта ведь setglobal сохранится текущий как я понял и при запуске скрипта он начнется с последнего подскрипта