Уважаемые скриптеры. Окиньте "свежим взглядом" сию ересь . Где-то ошибка закралась. Но незначительная. Ибо предыдущая модификация работала без ошибок. Однако сам не могу найти. УЖе притупилось внимание.
Code: Select all
##### Automatic Mining (c) Vitle #####
sub MiningAroundWRaR()
var imx, imy, imz
var i, j, k, w, jorcheck, joser, notor, pk, minenumber, elemcheck, elemser
var strWeight
var ms2 = "Pause, Please!"
minenumber = 1
while not uo.dead()
RecallToMine(minenumber)
begin:
elemcheck = 0
imx = UO.GetX("self")
imy = UO.GetY("self")
imz = UO.GetZ("self")
while uo.weight < 601
uo.deletejournal()
for j = imx-4 to imx+4
for i = imy -4 to imy+4
k = 0
uo.print("Now Mining In: "+str(imx-j)+" "+str(imy-i))
continuemining:
while not k == 3 and not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not uo.injournal("Manifest") and uo.weight < 601
If UO.Dead() then
If elemcheck > 0 then
uo.set('finddistance', '12')
uo.findtype('0x0010', '-1', '1')
if not uo.findcount() then
elemcheck = 0
else
if not uo.getdistance('finditem') < 5 then
elemcheck = 0
endif
endif
endif
UO.Print("Weight before You were killed:"+str(strWeight))
goto reschar
endif
CheckLag()
UO.DeleteJournal()
while not UO.Hidden()
uo.warmode(false)
CheckLag()
UO.DeleteJournal()
UO.UseSkill('Hiding')
while not UO.InJournal("hidden") and not UO.InJournal("seem")
wait(100)
wend
wend
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(j), str(i), str(imz))
UO.Usetype('0x0f39')
w = 0
pk = 0
while pk == 0 and not UO.InJournal("You put") and not UO.InJournal("location") and not UO.InJournal("but fail") and not UO.InJournal("no ore") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("World is saving") and not uo.injournal("revealed") and not UO.InJournal(ms2) and w < 20
wait(500)
for jorcheck = 0 to 9
joser = uo.journalserial(jorcheck)
notor = uo.getnotoriety(joser)
if notor <> 1 and notor <> 0 and not uo.injournal("Elemental") and not uo.injournal("Anton B") then
pk = 1
goto oops
endif
next
w = w + 1
wend
if UO.InJournal("World is saving") then
CheckLag()
wait(4000)
UO.Warmode(True)
wait(500)
UO.Warmode(False)
endif
if UO.InJournal(ms2) then
Pause(2)
endif
if uo.injournal("revealed") and elemcheck > 0 then
goto oops
endif
if UO.InJournal("but fail") then
wait(500)
k = k + 1
endif
if uo.injournal("heavy") then
if uo.weight < 602 then
elemcheck = elemcheck + 1
endif
endif
strweight = uo.weight
wend
UO.DeleteJournal()
next
next
wend
oops:
If elemcheck > 0 then
uo.set('finddistance', '12')
uo.findtype('0x0010', '-1', '1')
if uo.findcount() then
if uo.getdistance('finditem') < 5 then
RunFromElem()
else
elemcheck = 0
RecallToHome{pk)
endif
else
elemcheck = 0
RecallToHome(pk)
endif
else
RecallToHome(pk)
endif
if uo.dead() then
reschar:
Ressurect()
wait(60000)
goto tomine
endif
wait(1000)
Unload()
wait(1000)
tomine:
if elemcheck > 0 then
minenumber = minenumber + 1
if minenumber > 3 then
minenumber = 1
endif
endif
wend
end sub
##### Recall To Home by RuneBook or By Scroll if You See PK #####
Sub RecallToHome(k)
var w, p, hx, hy
hx = uo.getx("self")
hy = uo.gety("self")
repeat
if uo.dead() then
goto dead
endif
if k == 1 then
if uo.waiting() then
uo.canceltarget()
endif
uo.warmode(false)
CheckLag()
uo.deletejournal("World is saving")
uo.waittargettype('0x1f14')
uo.usetype('0x1f4c')
w = 0
while not uo.getx("self") <> hx and not uo.gety("self") <> hy and not uo.injournal("World is saving") and w <= 50
wait(100)
w = w + 1
wend
if UO.InJournal("World is saving") then
CheckLag()
wait(4000)
UO.Warmode(True)
wait(500)
UO.Warmode(False)
endif
else
if uo.waiting() then
uo.canceltarget()
endif
uo.warmode(false)
uo.deletejournal("World is saving")
uo.useobject('0x4046B3F8')
CheckLag()
uo.Lclick(135,115)
w = 0
while not uo.getx("self") <> hx and not uo.gety("self") <> hy and not uo.injournal("World is saving") and w <= 70
wait(100)
w = w + 1
wend
if UO.InJournal("World is saving") then
CheckLag()
wait(4000)
UO.Warmode(True)
wait(500)
UO.Warmode(False)
endif
endif
until uo.getx("self") <> hx or uo.gety("self") <> hy
if k == 1 then
wait(30000)
endif
dead:
endsub
##### Standard Unload Ore Script #####
Sub Unload()
var MetallSafe
var a
MetallSafe = '0x4010CC11' ; личный сейф перса
DIM Ore[4]
Ore[0] = '0x19B9' ; 4 and more ore
Ore[1] = '0x19B7' ; 1 ore
Ore[2] = '0x19BA' ; 2 ore
Ore[3] = '0x19B8' ; 3 ore
for a = 0 to 3
uo.findtype(Ore[a])
if uo.findcount('finditem') > 0 then
repeat
uo.moveitem('finditem', '0', MetallSafe)
wait(500)
CheckLag()
uo.findtype(Ore[a])
until not uo.findcount()
endif
next
endsub
##### Recall To Mines From RuneBook #####
Sub RecallToMine(mn)
var r, w, mx, my, runa
var Rbag = '0x4010CC11'
if mn == 1 then
runa = 85 ; руна в первую шахту
endif
if mn == 2 then
runa = 70 ; руна во вторую шахту
endif
if mn == 3 then
runa = 100 ; руна в третью шахту
endif
mx = uo.getx("self")
my = uo.gety("self")
repeat
if uo.dead() then
goto deadagain
endif
if uo.waiting() then
uo.canceltarget()
endif
uo.deletejournal("World is saving")
uo.useobject('0x4046B3F8')
CheckLag()
uo.Lclick(135,runa)
w = 0
while not uo.getx("self") <> mx and not uo.gety("self") <> my and not uo.injournal("World is saving") and w < 70
wait(100)
w = w + 1
wend
if UO.InJournal("World is saving") then
CheckLag()
wait(4000)
UO.Warmode(True)
wait(500)
UO.Warmode(False)
wait(500)
endif
until uo.getx("self") <> mx or uo.gety("self") <> my
deadagain:
endsub
##### Run From Elemental and Recall #####
sub RunFromElem()
var mx, my, ex, ey, w, stepx, stepy
mx = uo.getx("self")
my = uo.gety("self")
uo.set('finddistance', '12')
uo.findtype('0x0010', '-1', '1')
repeat
if uo.dead() then
goto damn
endif
if uo.waiting() then
uo.canceltarget()
endif
uo.deletejournal("fizzles")
uo.warmode(false)
CheckLag()
uo.waittargettype('0x1f14')
uo.usetype('0x1f4c')
w = 0
while (uo.getx("self") <> 2498 and uo.gety("self") <> 66) and not uo.injournal("fizzles") and w < 28
# wait(250)
ex = uo.getx('finditem')
ey = uo.gety('finditem')
stepx = uo.getx("self")
stepy = uo.gety("self")
if (uo.getx("self") - ex) > 0 and (uo.gety("self") - ey) > 0 then
CheckLag()
uo.addstep(2)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) > 0 and (uo.gety("self") - ey) < 0 then
CheckLag()
uo.addstep(6)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) < 0 and (uo.gety("self") - ey) < 0 then
CheckLag()
uo.addstep(8)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) < 0 and (uo.gety("self") - ey) > 0 then
CheckLag()
uo.addstep(4)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) == 0 and (uo.gety("self") - ey) > 0 then
CheckLag()
uo.addstep(1)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) == 0 and (uo.gety("self") - ey) < 0 then
CheckLag()
uo.addstep(9)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) < 0 and (uo.gety("self") - ey) == 0 then
CheckLag()
uo.addstep(7)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
if (uo.getx("self") - ex) > 0 and (uo.gety("self") - ey) == 0 then
CheckLag()
uo.addstep(3)
repeat
wait(100)
until uo.getx("self") <> stepx or uo.gety("self") <> stepy
endif
w = w + 1
wend
until not uo.getx("self") <> 2498 and not uo.gety("self") <> 66
damn:
endsub
##### Auto Ressurection if You are Dead (with ankh in Minoc) #####
Sub Ressurect()
var mx, my, kx, ky
uo.warmode(false)
mx = uo.getx("self")
my = uo.gety("self")
CheckLag()
uo.Lclick(858,57)
wait(500)
CheckLag()
uo.Lclick(268,306)
wait(500)
CheckLag()
uo.Lclick(175,201)
repeat
wait(100)
until uo.getx("self") <> mx or uo.gety("self") <> my
CheckLag()
uo.addstep(6)
wait(500)
CheckLag()
uo.addstep(6)
wait(500)
CheckLag()
uo.useobject('0x4001D120')
while uo.dead()
wait(100)
wend
endsub
##### CheckLag #####
Sub CheckLag()
UO.DeleteJournal('backpack')
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub
##### Pause #####
Sub Pause(x)
DIM PauseArg[8]
PauseArg[0] = "Pause! You're dead!"
PauseArg[1] = "Pause! Full weight!"
PauseArg[2] = "Pause! Paused by player!"
PauseArg[3] = "Pause! Not enough ingots to continue!"
PauseArg[4] = "Pause! There is no ingots here!"
PauseArg[5] = "Pause! Not enough reagents to continue!"
PauseArg[6] = "Pause! There is no reagents here!"
PauseArg[7] = "Pause! Elemental here. Can' recall!"
var MsSB = "spellbook"
var t, m, h, s, const
t = 0
uo.deletejournal(MsSB)
repeat
uo.print(PauseArg[x])
wait(10000)
t = t + 10
Timer(t)
until uo.injournal(MsSB)
uo.print("Script is continues now")
endsub
##### Timer for Pause #####
Sub Timer(const)
var h, m, s
h = 0
m = 0
while const > 3600
const = const - 3600
h = h + 1
wend
while const > 60
const = const - 60
m = m + 1
wend
s = const
uo.print("Paused: "+str(h)+" hour(s) "+str(m)+" min(s) "+str(s)+" sec(s).")
uo.print("Paused: "+str(h)+" hour(s) "+str(m)+" min(s) "+str(s)+" sec(s).")
endsub
P.S. в предыдущей модификации не было реколлов со свитка + немножко поменял елемчеки. Но впринципе все должно работать. Скорее всего где-то просто "ендифа" не хватает.. или наоборот лишний стоит. Но я уже не могу на это смотреть. Помогите если не лень. Буду чрезвычайно благодарен.
