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

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