Чар прилетает по рунбуке на точку, встает в хайд, начинает минать, достает руду выше агапита (стоит ограничение). Выминывает руду под собой и на 2 клетки вокруг себя. Далее разрузка и тд. Не хватает отдной части с которой маэсь на протяжении нескольких дней уже. Ссылки на аларм я расставил, но сам аларм написать не могу нормально. Необходимо, чтобы при виде любого живого объекта он улета разгружаться, ну а там дальше все по скрипту: медитировать и дальше в бой

Помогите пожалуйста. Позже поделюсь интересным скрптом на ламбер.
Вот скрипт:
sub isalarm()
if uo.injournal('see') \
then
uo.setglobal("alarm","1")
return 1
else
return 0
endif
end sub
sub main()
uo.set("distance","20")
uo.set("finddistance","20")
uo.set("soundecho","1")
uo.set("injectecho","1")
uo.set("quiet","1")
var iX = 1
var iY = 1
var tochka = 0
var radius = 5
var xtime = 0
var maxweight = 600
uo.addtype("ruda","0x19B9")
uo.addtype("kirka","0x0E85")
var runebook
if uo.getserial("self") == "0x001BC1DE" then # Duke
runebook = "0x40069910"
endif
if uo.getserial("self") == "0x0030236D" then # Saimon
runebook = "0x4015E593"
endif
if uo.getserial("self") == "0x004885F4" then # ZloyMult
runebook = "0x405ad890"
endif
uo.setglobal("runebook",runebook)
uo.addobject("sumka_s_rudoy","0x405ED9AC")
var sumka_s_rudoy = "0x405ED9AC"
var vsegotochek = 14
dim tochkaX[14],tochkaY[14]
# 1. Minok Proxod
tochkaX[1] = 2402
tochkaY[1] = 205
# 2. Occlo 1
tochkaX[2] = 781
tochkaY[2] = 1681
# 3. Avatar x
tochkaX[3] = 4762
tochkaY[3] = 3772
# 4. Avatar 3
tochkaX[4] = 4550
tochkaY[4] = 3172
# 5. Pes Shahta
tochkaX[5] = 1801
tochkaY[5] = 861
# 6. Wrong 3
tochkaX[6] = 1968
tochkaY[6] = 270
# 7. Minok 3
tochkaX[7] = 2427
tochkaY[7] = 108
# 8. Covetous 3
tochkaX[8] = 2399
tochkaY[8] = 915
# 8. Occlo 2
tochkaX[9] = 776
tochkaY[9] = 1674
# 10. Minok 2
tochkaX[10] = 2412
tochkaY[10] = 180
# 11. Avatar 4.2
tochkaX[11] = 4809
tochkaY[11] = 3636
# 12. Covetous 1
tochkaX[12] = 2564
tochkaY[12] = 890
# 13. Avatar 4
tochkaX[13] = 4811
tochkaY[13] = 3652
# 14. Occlo 3
tochkaX[14] = 771
tochkaY[14] = 1685
FOR iX=1 to vsegotochek
IF (uo.getx() == tochkaX[iX]) AND (uo.gety() == tochkaY[iX]) THEN
tochka = iX
uo.setglobal("tochka",iX)
ENDIF
NEXT
uo.set("norbcheck","1")
uo.set("norbcalc","1")
uo.set("quiet","0")
uo.deletejournal()
start:
uo.print("tochka = " + str(tochka))
if not (uo.hidden()) then
gohide()
endif
if isalarm() == 1 then
goto razgruzka
endif
FOR iY = 1 to radius
FOR iX = 1 to radius
kopka:
uo.waittargettile("0",str(uo.getx() + iX - 3),str(uo.gety() + iY - 3),"0")
uo.usetype("kirka")
xtime = uo.timer()
if isalarm() == 1 then
goto razgruzka
endif
uo.deletejournal()
REPEAT
if isalarm() == 1 then
goto razgruzka
endif
IF (uo.timer() >= xtime + 110) OR \
uo.injournal("Ore in your pack") OR \
uo.injournal("useable") OR \
uo.injournal("heavy") \
THEN
goto kopka
ELSE
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
if isalarm() == 1 then
goto razgruzka
endif
wait(50)
ENDIF
UNTIL uo.weight >= maxweight OR \
uo.injournal("get there") OR \
uo.injournal("no ore") OR \
uo.injournal("too far") OR \
uo.injournal("try mining") OR \
uo.injournal("Dull Copper Ore") OR \
uo.injournal("Copper Ore") OR \
uo.injournal("Old Copper Ore") OR \
uo.injournal("Bronze Ore") OR \
uo.injournal("Rose Copper Ore") OR \
uo.injournal("Gold Ore") OR \
uo.injournal("Silver Ore") OR \
isalarm() == 1
if isalarm() == 1 then
goto razgruzka
endif
IF uo.weight >= maxweight THEN
goto razgruzka
ENDIF
tilenext:
if isalarm() == 1 then
goto razgruzka
endif
NEXT
NEXT
tochkanext:
uo.exec("warmode 0")
IF tochka == vsegotochek THEN
tochka = 1
uo.setglobal("tochka","1")
ELSE
uo.setglobal("tochka",tochka+1)
tochka = tochka + 1
ENDIF
uo.useskill("Detect Hidden")
repeat
wait(50)
until uo.hidden() == 0
uo.exec("warmode 0")
uo.deletejournal()
gorecall(tochka)
if isalarm() == 1 then
goto razgruzka
endif
GOTO start
razgruzka:
uo.exec("warmode 0")
if uo.getglobal("alarm") == "1" then
uo.msg(".ip")
uo.playwav("c:\alarm.wav")
endif
# if isalarm() == 1 then
# uo.playwav("c:\alarm.wav")
# endif
razgruzka()
uo.setglobal("alarm","0")
IF tochka == vsegotochek THEN
tochka = 1
uo.setglobal("tochka","1")
ELSE
uo.setglobal("tochka",tochka+1)
tochka = tochka + 1
ENDIF
uo.deletejournal()
gorecall(tochka)
if isalarm() == 1 then
goto razgruzka
endif
GOTO start
end sub
sub razgruzka()
gorecall(16)
uo.addobject("sumka_s_rudoy","0x4009a33f")
uo.addtype("bm","0x0F7B")
uo.addtype("bp","0x0F7A")
uo.addtype("mr","0x0F86")
uo.useobject("sumka_s_rudoy")
repeat
wait(50)
until uo.getserial("lastcontainer") == uo.getserial("sumka_s_rudoy")
while uo.count("ruda") >= 4
wait(2000)
uo.moveitem("_ruda","999","sumka_s_rudoy")
wend
IF (UO.BM < 15) THEN
uo.moveitem("<bm","20","backpack")
wait(1000)
ENDIF
IF (UO.MR < 15) THEN
uo.moveitem("<mr","20","backpack")
wait(1000)
ENDIF
IF (UO.BP < 15) THEN
uo.moveitem("<bp","20","backpack")
wait(1000)
ENDIF
uo.deletejournal()
uo.exec("warmode 0")
repeat
uo.useskill("Meditation")
wait(2500)
until uo.mana >= uo.int
end sub
sub gorecall(tochka)
var x = uo.getx()
var y = uo.gety()
var xtime = 0
recall:
uo.deletejournal()
xtime = uo.timer()
uo.exec("warmode 0")
uo.exec("recall " + uo.getglobal("runebook") + " " + str(((tochka-1)*2) + 20))
repeat
if uo.injournal("izzle") OR uo.injournal("snd 005C") OR (uo.timer() >= xtime + 70) then
goto recall
else
wait(200)
endif
until uo.injournal("snd 01FC") OR (uo.getx() <> x) OR (uo.gety() <> y)
end sub
sub gohide()
var xtime = 0
hide:
if isalarm() == 1 then
return 0
endif
uo.deletejournal()
xtime = uo.timer()
uo.exec("warmode 0")
uo.useskill("Hiding")
repeat
if isalarm() == 1 then
return 0
endif
if uo.injournal("seem") OR (uo.timer() >= xtime + 70) then
goto hide
else
wait(200)
endif
until uo.hidden()
uo.deletejournal()
end sub
Есть большой недостаток у хелпа - синтаксис дан не полно и без примеров. Я половину команд из чужих скриптов извлекаю.