Code:
sub main()
UO.Exec ('addobject target')
while uo.targeting()
wait(100)
wend
var string = VectorPoints(UO.GetX('self'), UO.GetY('self'), UO.GetX('target'), UO.GetY('target'))
uo.textprint(string)
Endsub
sub deltile()
var MaxRange = 18
var X, Y, Z, Tiles
var mX, mY, mZ
mX = UO.GetX('self')
mY = UO.GetY('self')
mZ = UO.GetZ('self')
for Y = MaxRange - ( MaxRange * 2 ) to MaxRange
for X = MaxRange - ( MaxRange * 2 ) to MaxRange
UO.MFGI('clear', '1339', mX+X, mY+Y, UO.GetZ('self'))
next
next
end sub
sub VectorPoints(startx, starty, endx, endy)
var Coordinates = ' ', Amount = 0, Vector, x, y, i, j
Vector = (str(endx - startx) + ',' + str(endy - starty))
If startx >= endx then
i = -1
else
i = 1
Endif
If starty >= endy then
j = -1
else
j = 1
Endif
For x = startx to endx step i
For y = starty to endy step j
If IsOnVector(x, y, startx, starty, endx, endy) then
Amount = Amount + 1
Coordinates = (Coordinates + str(x) + ' ' + str(y) + ' ')
UO.MFGI('add', '1339', x, y, UO.GetZ('self'))
Endif
Next
Next
Return (str(Amount) + Coordinates)
Endsub
Sub IsOnVector(x, y, startx, starty, endx, endy)
var A = starty - endy, B = endx - startx, C = startx * endy - starty * endx
If IsInRange(A * x + B * y + C, -3, 3) then
If IsInRange(x, startx, endx) then
If IsInRange(y, starty, endy) then
Return 1
Endif
Endif
Endif
Return 0
Endsub
Sub IsInRange(val, val1, val2)
If val1 < val2 then
If val <= val2 and val >= val1 then
Return 1
else
Return 0
Endif
else
If val <= val1 and val >= val2 then
Return 1
else
Return 0
Endif
Endif
Endsub
Sub Absolute(val)
If val > 0 then
Return val
else
Return -val
Endif
Endsub
Sub GetWord(st, nom)
var tmpst, i, dlin, kol = 0, start = 0
dlin = len(st)
For i = 0 to dlin - 1
If mid(st, i, 1) == ' ' or i == dlin - 1 then
kol = kol + 1
If kol == nom then
tmpst = mid(st, start, i - start)
Return tmpst
else
While mid(st, i, 1) == ' '
i = i + 1
Wend
If kol == nom - 1 then
start = i
Endif
Endif
Endif
Next
tmpst = ''
Return tmpst
Endsub
Если цель находится на одной Z с тобой то построит путь до неё.
Если не на одной Z - у меня 9 из 10 падает клиент.
PS Гдето был у меня косяк, теперь не падает но строит криво.
Видимо в мат формуле гдето неточность: