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 сохранится текущий как я понял и при запуске скрипта он начнется с последнего подскрипта