ФИШИНГ
Posted: 2004-07-15 08:04:50
Вот макрос написанный для шарда цитадель, большое спасибо за него можете сказать Крови, я думаю он не обидется, что я его тут разместил.
Работает очень просто ловим все что можем и делаем с этим все что надо
Ботинки -режим на бинты, с картами - в пак и т.д. При этом если элем, то достаем лук и мочим его (без армора не ходить, может убить
) Вообщем просто как день, да надо быть на кораблеке
Еще чуть не забыл корабаль долже стоять строго на S, т.е. на юг
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
Если возникнут вопросы обращайтесь
Некоторые части взяты из скрипта на мининг, так что внимание не обращать, ну если надо красиво можно немножко дописать 
Работает очень просто ловим все что можем и делаем с этим все что надо



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
Если возникнут вопросы обращайтесь

