Работает очень просто ловим все что можем и делаем с этим все что надо



sub fishing()
uo.set("quiet","1")
uo.set("distance","0")
uo.set("finddistance","0")
uo.set("soundecho","1")
var iX = 1
var iY = 1
var fish1 = "0x09CC"
var fish2 = "0x09CF"
var fish3 = "0x09CD"
var fish4 = "0x09CE"
var boots1 = "0x170B"
var boots2 = "0x170D"
var boots3 = "0x1711"
var boots4 = "0x170F"
var shell1 = "0x0FCA"
var shell2 = "0x0FCB"
var shell3 = "0x0FC4"
var shell4 = "0x0FCC"
var karta1 = "0x14ED"
var sunduk1 = "0x09AB"
var scissors = "0x0F9E"
var xtime = 0
var xfizzle = 0
uo.addtype("ruda","0x19B9")
var udochka = "0x0DBF"
var trum = "0x4022B571" # 0x3EB9
var trum2 = "0x3EB9"
uo.set("quiet","0")
uo.deletejournal()
start:
FOR iY = -4 to 4
FOR iX = -4 to 4
if iY <= 1 And iX >= -2 And iX <= 2 then
goto tilenext
endif
xfizzle = 0
kopka:
killmonsters()
if xfizzle >= 10 then
goto tilenext
endif
uo.deletejournal()
uo.waittargettile("0",str(uo.getx() + iX),str(uo.gety() + iY),"0")
uo.usetype(udochka)
xtime = uo.timer()
wait(500)
if uo.countground(fish1) > 0 then
uo.moveitem("~" + fish1,"999","~" + trum2)
wait(500)
endif
if uo.countground(fish2) > 0 then
uo.moveitem("~" + fish2,"999","~" + trum2)
wait(500)
endif
if uo.countground(fish3) > 0 then
uo.moveitem("~" + fish3,"999","~" + trum2)
wait(500)
endif
if uo.countground(fish4) > 0 then
uo.moveitem("~" + fish4,"999","~" + trum2)
wait(500)
endif
if uo.countground(shell1) > 0 then
uo.moveitem("~" + shell1,"1","backpack.0x09AB","50","76","0")
wait(500)
endif
if uo.countground(shell2) > 0 then
uo.moveitem("~" + shell2,"1","backpack.0x09AB","50","76","0")
wait(500)
endif
if uo.countground(shell3) > 0 then
uo.moveitem("~" + shell3,"1","backpack.0x09AB","50","76","0")
wait(500)
endif
if uo.countground(shell4) > 0 then
uo.moveitem("~" + shell4,"1","backpack.0x09AB","50","76","0")
wait(500)
endif
if uo.countground(karta1) > 0 then
uo.moveitem("~" + karta1,"1","~" + trum2,"50","76","0")
wait(500)
endif
if uo.countground(sunduk1) > 0 then
uo.moveitem("~" + sunduk1,"1","~" + trum2,"46","94","0")
wait(500)
endif
if uo.countground(boots1) > 0 then
uo.waittargetobject("~" + boots1)
uo.usetype(scissors)
wait(500)
endif
if uo.countground(boots2) > 0 then
uo.waittargetobject("~" + boots2)
uo.usetype(scissors)
wait(500)
endif
if uo.countground(boots3) > 0 then
uo.waittargetobject("~" + boots3)
uo.usetype(scissors)
wait(500)
endif
if uo.countground(boots4) > 0 then
uo.waittargetobject("~" + boots4)
uo.usetype(scissors)
wait(500)
endif
REPEAT
IF (uo.timer() >= xtime + 100) OR \
uo.injournal("You pull") OR \
uo.injournal("fail to catch anything") \
THEN
if not uo.injournal("You pull") then
xfizzle = xfizzle + 1
goto kopka
else
xfizzle = 0
goto tilenext
endif
ELSE
killmonsters()
wait(300)
ENDIF
UNTIL uo.injournal("too far away") OR \
uo.injournal("fish under the ship") OR \
xfizzle >= 10 OR \
uo.injournal("There are no fish here")
tilenext:
NEXT
NEXT
tochkanext:
iY = uo.gety()
uo.msg("forward")
repeat
wait(300)
until uo.gety() >= iY + 9
uo.msg("stop")
goto start
end sub
sub killmonsters()
if uo.life == uo.str then
return
endif
var luk = "0x13B1"
var xtime = uo.timer()
repeat
uo.usetype(luk)
wait(2000)
until uo.injournal("[snd 0037]") or (uo.timer() >= xtime + 300) or uo.life >= uo.str
if uo.life < uo.str then
uo.canceltarget()
uo.waittargetself()
uo.msg(".heal")
wait(5000)
endif
uo.exec("warmode 0")
end sub
Если возникнут вопросы обращайтесь

