Помогите доработать мининг на ДРВ

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Qwart
Posts: 15
Joined: 2005-04-08 11:11:51

Помогите доработать мининг на ДРВ

Post by Qwart »

Сегодня на шарде сократили количество выкапываемых и добываемых рессурсов.

Вообщем есть скрипт. Его надо поправить малость. Если всё вокруг себя выкопали, по смещаемся чуть ниже. Вообщем примитивную ходилку чтоли в него вклеить. Спасибо.

Code: Select all

sub maning() 
var mx, my, mz, i, j, jor, ser, noto, ya,k, name, QWART = '0x002D3690', cave = 1
Uo.exec("set norbcheck 1"); äëÿ ðåêîëà
uo.exec("set norbcalc 1"); òîæå

uo.print('!!Âûáåðè Ëîïàòó!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
 
uo.print('!!Âûáåðè Ðóíáóê!! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend

na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Say(",warmode 0")
wait(200)
uo.print("Ïðÿ÷åìñÿ...")
UO.UseSkill("Hiding")
wait(4000)
wend
UO.Print("Êîïàåì â êîîðäèíàòàõ: "+str(mx-i)+" "+str(my-j))
while 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("You put the Iron") and not UO.InJournal("You put the Old Copper") and not UO.InJournal("You put the Dull Copper") and not UO.InJournal("You put the Copper") and not UO.InJournal("You put the Rusty") and not UO.InJournal("You put the Bronze")
if UO.Dead() then
pwav()
UO.TextPrint('Êðûñà!!!==='+name+ 'Öâåò=' +str(noto))
Pause()
end if
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Deletejournal()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
k = 0
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock") and k < 10
wait (1000)
k = k + 1
for jor = 0 to 9   
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
name = UO.GetName(ser)
ya = UO.GetSerial('self')
if ser <> ya and noto <> 0 and ser <> QWART  then
UO.TextOpen()
UO.TextPrint('Ñðóëèë :) --- '+name+ ' Öâåò=' +str(noto))
if uo.waiting() then
uo.canceltarget()
endif
Save()
pwavw()
loot()
cave = cave + 1
if cave > 4 then
cave = 1
end if
Mana()
;wait(30000) ; âðåìÿ â ñåêóíäàõ ïðè îæèäàíèè ïîêà óéäåò ÏÊ
goto reccal
endif
next   
wend
if UO.InJournal("but fail") AND k < 2 then
wait(8000)
UO.DeleteJournal()
endif
if uo.weight > 720 then  ; Ìàêñèìàëüíûé âåñ ïðè êîòîðîì äîìîé ñ ðóäîé
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; äîìîé ( â ðóíáóêå ñëîò 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif

if cave == 1 then
uo.exec("recall Runebook 33") ; â øàõòó ( â ðóíáóêå ñëîò 2 )
end if

if cave == 2 then
uo.exec("recall Runebook 46") ; â øàõòó ( â ðóíáóêå ñëîò 3 )
end if

if cave == 3 then
uo.exec("recall Runebook 58") ; â øàõòó ( â ðóíáóêå ñëîò 4 )
end if

if cave == 4 then
uo.exec("recall Runebook 64") ; â øàõòó ( â ðóíáóêå ñëîò 5 )
end if

mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub

sub loot()    ; ïåðåêëàäêà ðóäû â ñóíäóê
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont= '0x40429DFC' ; ÀÉÄÈ ñóíäóêà äëÿ ðóäû 
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub

sub Save() ; Ðåêîëë îò ÏÊ ïðè èõ ïîÿâëåíèè (â ïàêå ðóíêà â áåçîïàñíîå ìåñòî è ðåãè)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.Usetype('0x0F0E','0x0631')
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub

sub pwav() ; çâóê ïðè âûêàïûâàíèè ÝËÅÌÅÍÒÀËÀ
uo.playwav("C:\Trumpet1.wav")
endsub

sub pwavw(); çâóê ïðè ïîÿâëåíèè ÏÊ
uo.playwav("C:\Alarm.wav")
endsub

sub Pause() ; Ïàóçà ñêðèïòà åñëè âûêîïàëè Ýëåìà (ïðîäîëæèòü ñêàçàâ GO )
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!ÑÊÐÈÏÒ ÍÀ ÏÀÓÇÅ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!ÑÊÐÈÏÒ ÏÐÎÄÎËÆÅÍ!!!!")
endif
end sub

#############################Ïðÿ÷åì îêíî ÓÎ##################################3
sub HideWindowUO()
  UO.asmUOHideEx(); Ïðÿ÷åì îêíî ÓÎ â òðåé
end sub
########################################################

sub Mana()
while UO.Mana < UO.Int
UO.Useskill('Meditation')
wait(1000)
wend
end sub
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

актуально =)
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

вот тебе примитивная ходилка

Code: Select all

sub go()
uo.press(34)
uo.press(34)
uo.press(36)
uo.press(36)
endsub


:)
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Доработай скрипт он на самом деле октуален! сделайте готовый а то не особо разбираюсь!
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

Question wrote:вот тебе примитивная ходилка

Code: Select all

sub go()
uo.press(34)
uo.press(34)
uo.press(36)
uo.press(36)
endsub


:)


Квест, помоги плз, как мне добавить в скрипт ветера ходилку :?:
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

что ни у кого нет скрипта с ходилкой? :(
Qwart
Posts: 15
Joined: 2005-04-08 11:11:51

Post by Qwart »

Code: Select all

sub Mining() 
var mx, my, mz, i, j, z
for z = 1 to 100
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
hide()
for i = mx-2 to mx+2
for j = my -2 to my +2
UO.Print("Now Mining In: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("where") and not UO.InJournal("in rock") and not UO.InJournal("iron")
hide()
UO.DeleteJournal()
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Usetype("0x0E85")
while not UO.InJournal("You put") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("where") and not UO.InJournal("no ore here") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait (100)
wend
wend
UO.DeleteJournal()
next
next
UO.Press(34)
wait(100)
UO.Press(34)
wait(100)
UO.Press(36)
wait(100)
UO.Press(36)
wait(100)
next
end sub

sub hide()
while not UO.Hidden()
uo.WarMode("0")
uo.UseSkill("Hiding")
wait(1500)
wend
end sub


Вот это реально вклеить. Помогите плз. Я вчера копался, так и не вышло :(
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

uisran wrote:что ни у кого нет скрипта с ходилкой? :(


Ищите скрипт Mountain Minig, выкладывали его, там хождение по координатам, и то ХЗ успеешь ты их натыкать, быстрее чем ПК прилетит
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

Cooper wrote:
uisran wrote:что ни у кого нет скрипта с ходилкой? :(


Ищите скрипт Mountain Minig, выкладывали его, там хождение по координатам, и то ХЗ успеешь ты их натыкать, быстрее чем ПК прилетит


нужно не хождение по заданным координатам, а чтобы чар спускался на пару тайлов если все выкопано, у меня был такой скриптик но формат это исправил :D
uisran
Posts: 64
Joined: 2005-01-21 10:00:30
Location: 74
Contact:

Post by uisran »

ну что, неужели никто не в силах помочь?
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

Code: Select all

################
##### Мининг версия 2.5 #####
#############################
sub maning()
var mx, my, mz, i, j, e, f, g, t, Exit1, a
Uo.exec("set norbcheck 1") # нужно для рекола #
uo.exec("set norbcalc 1") # нужно для рекола #
e=1 # перменная местонахождения #
f=0 # перменная подсчета пустых тайлов #
# необходимо указать Runebook в Object - from target #
na4alo: # поехали #
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4 # радиус окапывания по х #
for j = my-4 to my+4 # радиус окапывания по у #
tohide() # прячемся #
UO.Print("Mine in: "+str(mx-i)+" "+str(my-j))
# ниже убрать мессагу по которой вы нехотите переходить на следующий тайл #
# необходимо указать Shovel в Object - from target #
while 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("Ore") and not UO.InJournal("Elvin") and not UO.InJournal("You put")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel") # необходимо указать Shovel в Object Types - from target #
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait(500)
if uo.injournal("heavy") then # вырыли элемента #
# ниже поменять на свою мелодию #
uo.playwav("d:\Games\Ultima Online 2D\element.wav")
# убиваем элемента, собираем руду и копаем дальше #
Vortex:
uo.exec('usetype 0x0f0e 0x0631')
uo.cast('Energy Vortex','self')
wait(4000)
CheckLag()
if uo.injournal("fizzles") or uo.injournal("line") then
goto Vortex
else
wait(10000)
CheckLag()
istka:
uo.exec('usetype 0x0f0e 0x09DF') # пьем манку #
uo.cast('Mass Dispel','self')
wait(4000)
CheckLag()
if uo.injournal("fizzles") then
goto istka
endif
DIM Ore[5]
Ore[0]=0x19B9 # 4 и более руды #
Ore[1]=0x19B7 # 1 руда #
Ore[2]=0x19BA # 2 руды #
Ore[3]=0x19B8 # 3 руды #
UO.SetReceivingContainer('backpack')
wait(500)
For t=0 to 3
Exit1=0
repeat
UO.FindType(Ore[a],'ground')
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
else
Exit1=1
endif
until Exit1==1
next
UO.UnSetReceivingContainer()
endif
goto na4alo
endif
# ниже записать всех своих знакомых киллеров =) #
Scaner()
if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("revealed") or uo.injournal("LEXEY") or uo.injournal("REM") then # смотрим как ПК обломался и улыбаемся #
tut:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec('usetype 0x0f0e 0x0631') # пьем инвизку, лежат в паке #
Save() # улетаем домой если ПК Вас раздетектил(при появлении записанных ПК), все выкладываем пополняем реги перемаркиваем руну, медитируем, прячемся и назад через установленное время () #
e=1 # устанавливаем начальное положение #
# ниже поменять на свою мелодию #
uo.playwav("d:\Games\Ultima Online 2D\pk.wav")
wait(180000) # стоко времени ждем дома у сейфа #
goto reccal
endif
wend
if uo.weight > 600 then # вес по которому летим домой по рунбуке #
goto end
endif
wend
###########################################################
##### Переход если 20 раз не найдена руда вокруг себя #####
###########################################################
if UO.InJournal("no ore here") then
f=f+1
endif
if f>20 then # 20 раз #
# ниже поменять на свою мелодию - это я так для себя сделал, необязательная мелодия #
uo.playwav("d:\Games\Ultima Online 2D\perehod.wav")
f=0 # обнуление переменной пустых тайлов #
g=0 # переменная перехода #
if e == 1 then
UO.Print("Go West 7 step.") # столько раз будем шагать на West #
repeat
g=g+1
GoW()
if uo.injournal('revealed') then # прячемся #
tohide()
endif
if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then  # предохраняемся #
goto tut
endif
until g>6 # 6+1 стоко шагов #
UO.DeleteJournal()
e=2
goto na4alo
else
UO.Print("Go East 7 step.") # столько раз будем шагать на East #
repeat
g=g+1
GoE()
if uo.injournal('revealed') then
tohide()
endif
if uo.injournal("Quas") or uo.injournal("Valkirye") or uo.injournal("[DN]") or uo.injournal("Bloodman") or uo.injournal("Tangar") or uo.injournal("BilaZ") or uo.injournal("TiamaT") or uo.injournal("man") or uo.injournal("LEXEY") or uo.injournal("REM") then 
goto tut
endif
until g>6
UO.DeleteJournal()
e=1
goto na4alo
endif
endif
#########
UO.DeleteJournal()
next # переключатель цикла #
next # то же #
goto na4alo # и по кругу пока не найдем 20 пустых тайлов #
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") # домой по рунбуку - в первом слоте руна к сейфу #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto end # проверка на физл #
endif
e=1
loot() # выкладывает накопанное в сейф #
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") # назад трудиться в шахте =), рунка в 8-м слоте рунбуки #
mx = UO.GetX("self")
my = UO.GetY("self")
wait(11000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal # проверка на физл #
endif
goto na4alo
end sub
##################################################
##### Переход на 1 клетку в направлении West #####
##################################################
sub GoW()
VAR walkwait=300
VAR x,y,dir=6
VAR key=36 ; Home key
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
Endif
if UO.GetX()+1==x then
return -1
else
return 1
endif
end sub
##################################################
##### Переход на 1 клетку в направлении East #####
##################################################
sub GoE()
VAR walkwait=300
VAR x,y,dir=2
VAR key=34 ; PgDown
x=UO.GetX()
y=UO.GetY()
while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
if UO.GetDir()<>dir then
CheckLag()
endif
wend
UO.Press(key)
wait(walkwait)
if x==UO.GetX() and y==UO.GetY() then
CheckLag()
endif
if UO.GetX()-1==x then
return -1
else
return 1
endif
end sub
#############################################################
##### Анти ПК: если Вас раздетектили - по рунке к сейфу #####
#############################################################
sub Save() # описано выше #
reccal:
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
repeat
wait(500)
until uo.injournal("fizzles") or uo.injournal("Kal Ort Por")
wait(3000)
if uo.injournal("fizzles") then
goto reccal
endif
tohide()
loot()
wait(3000)
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Mark','finditem')
wait(5000)
uo.exec('usetype 0x0f0e 0x09DF') # Пьем манку #
Med:
repeat
UO.UseSkill('Meditation')
wait(5000)
until uo.injournal("peace") or uo.injournal("lose")
if UO.InJournal('You lose') then
UO.DeleteJournal()
goto Med
endif
fillreagents()
wait(3000)
tohide()
end sub
#########################################
##### Упаковка готового продукта =) #####
#########################################
sub loot() # складываем руду в сейф #
VAR a, Exit
if uo.waiting() then
uo.canceltarget()
endif
VAR UnloadCont='0x4000E3AA' # поменять на ID своего сейфа куда складываем руду, узнать его можно командой ',info' #
DIM Ore[5]
Ore[0]=0x19B9 # 4 и более руды #
Ore[1]=0x19B7 # 1 руда #
Ore[2]=0x19BA # 2 руды #
Ore[3]=0x19B8 # 3 руды #
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a = 0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
else
Exit=1
endif
until Exit==1
next
UO.UnSetReceivingContainer()
end sub
####################
##### Прячемся #####
####################
sub tohide()
while NOT UO.Hidden()
UO.DeleteJournal()
UO.Exec('warmode 0')
UO.UseSkill('Stealth')
repeat
wait(300)
until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied')
wend
end sub
##############################################
##### Пополнение всех нужных регов до 10 #####
##############################################
sub fillreagents()
VAR StoreRegCont='0x40173275' # непосредственно сам пак с регами в сейфе #
VAR CharRegBag='backpack' # куда сложить реги себе #
VAR CountReg=10 # количество регов каждого типа #
VAR WaitTime=1500
VAR MainSafe='0x4000E3AA' # сейф где лежит пак с регами #
UO.FindType('0x09B0','0x0044','backpack')
if UO.GetQuantity('finditem')>0 then
CharRegBag='finditem'
endif
UO.UseObject(MainSafe)
UO.UseObject(StoreRegCont)
UO.SetReceivingContainer(CharRegBag)
wait(WaitTime)
if UO.BM<CountReg then
UO.FindType('0x0F7B','-1',StoreRegCont) ; BM
UO.Grab(STR((CountReg-UO.BM)),'finditem')
wait(WaitTime)
endif
if UO.BP<CountReg then
UO.FindType('0x0F7A','-1',StoreRegCont) ; BP
UO.Grab(STR(CountReg-UO.BP),'finditem')
wait(WaitTime)
endif
if UO.GA<CountReg then
UO.FindType('0x0F84','-1',StoreRegCont) ; GA
UO.Grab(STR(CountReg-UO.GA),'finditem')
wait(WaitTime)
endif
if UO.MR<CountReg then
UO.FindType('0x0F86','-1',StoreRegCont) ; MR
UO.Grab(STR(CountReg-UO.MR),'finditem')
wait(WaitTime)
endif
if UO.NS<CountReg then
UO.FindType('0x0F88','-1',StoreRegCont) ; NS
UO.Grab(STR(CountReg-UO.NS),'finditem')
wait(WaitTime)
endif
if UO.SA<CountReg then
UO.FindType('0x0F8C','-1',StoreRegCont) ; SA
UO.Grab(STR(CountReg-UO.SA),'finditem')
wait(WaitTime)
endif
UO.UnsetReceivingContainer()
end sub
###########################
##### Проверка на лаг #####
###########################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub
###############################
##### Модуль сканирования #####
###############################
Sub Scaner()
var jor, ser, noto
uo.ignore('self')
for jor = 0 to 9   
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") and not uo.injournal("You loosen") then
uo.print("!!!ALARM!!!")
endif
next
endsub
###############################


это тот же скрипт только мной переделанный возьми из него только то что тебе нужно, а именно ходилку =) ... если ты хоть немного понимаешь в скриптах, то думаю тебе не составит труда это сделать
My Game is Ultima online on DRW!
Post Reply