Yoko

All sides of Injection
It is currently 2024-04-19 04:27:16

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
PostPosted: 2010-07-10 10:42:50 
Offline

Joined: 2009-04-01 16:04:35
Posts: 8
Незабудьте прописать еще раз ади сундука в разделе чек рекс

##################
### Переменные ###
###################################################################################################
var Reconnect=1 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.(не проверял работает или нет с этим скриптом)
###
var Food=0 ## - Кушать после сброса руды или нет? 1 - да, 0 - нет.
###
var Status=0 ## - Статус руды, показывает скока накопали (для опытных скриптёров) 1 - да, 0 - нет.
###
var Chest='0x400008C4' ## - ID сундука куда будут выгружаться руду, где должны лежать реги и еда.
###
var TypeFood='0x160A' ## - Type еды которую будем кушать.(сейчас фиштейки)
###
var CountReg=50 ## - Кол-во регов для подзарядки.
###
var OreQty=420## - Максимальный вес при котором домой с рудой
###
var maxjamp=21 ## - Для рекола (изменять не нужно)
var rune=1 ## - Для рекола (изменять не нужно)
###################################################################################################
### Wait - Ждёт сообшения после замаха кирки, чтобы повторить. ##
### Fizzle - Если пришло такое сообшение, то переходим на след. клетку копать. ##
###################################################################################################
var Wait1="You put"
var Wait2="heavy"
var Wait3="location"
var Wait4="no ore"
var Wait5="you loosen some roks but fail to finde any useable ore"
var Wait6="far away"
var Wait7="in rock"
var Wait8="You can't"
var Wait9="nothing here"
var Wait10="You have found some"
###
var Fizzle1="There is no ore here to mine."
var Fizzle2="You can't use the"
var Fizzle3="Try mining elsewhere."
var Fizzle4="location"
###################################################################################################
#################
### Включалка ###
#################
sub Start()
If UO.GetGlobal('Maningcheck')=='on' Then
UO.SetGlobal('Maningcheck','off')
UO.Exec('Exec Terminate')
Else
UO.Exec('Exec Maning')
UO.SetGlobal('Maningcheck','on')
EndIf
End sub
###############
### Майнинг ###
###############
Sub Maning()
var Mine=1
UO.print('!!!SELECT YOU PICKAXE!!!')
UO.exec('addobject Shovel')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('!!!SELECT YOU RUNE TO HOME!!!')
UO.exec('addobject Home')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (1)')
UO.exec('addobject Mine1')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (2)')
UO.exec('addobject Mine2')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (3)')
UO.exec('addobject Mine3')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (4)')
UO.exec('addobject Mine4')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (5)')
UO.exec('addobject Mine5')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (6)')
UO.exec('addobject Mine6')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (7)')
UO.exec('addobject Mine7')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (8)')
UO.exec('addobject Mine8')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (9)')
UO.exec('addobject Mine9')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (10)')
UO.exec('addobject Mine10')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (11)')
UO.exec('addobject Mine11')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (12)')
UO.exec('addobject Mine12')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (13)')
UO.exec('addobject Mine13')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (14)')
UO.exec('addobject Mine14')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (15)')
UO.exec('addobject Mine15')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (16)')
UO.exec('addobject Mine16')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (17)')
UO.exec('addobject Mine17')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (18)')
UO.exec('addobject Mine18')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (19)')
UO.exec('addobject Mine19')
while UO.targeting()
wait(100)
wend

wait(1000)
UO.print('SELECT YOU RUNE TO MINE (20)')
UO.exec('addobject Mine20')
while UO.targeting()
wait(100)
wend

If Reconnect==1 Then
UO.Exec('Exec Reconnect')
EndIf
##############################
### Копаем руду возле себя ###
##############################
If Mine==1 Then
REPEAT
JumpToRune()
GetOre()
wait(2000)
Until UO.Dead()
End sub

Sub GetOre()
var CheckTime
var mx, my, mz, i, j
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
for i = mx-2 to mx+2
for j = my-2 to my+2
ToHide()
UO.Print("Get Coordinate: "+str(mx-i)+' '+str(my-j))
If UO.waiting() Then
UO.canceltarget()
EndIf
REPEAT
If UO.weight >= OreQty Then
ToRecall()
EndIf
ToHide()
UO.Waittargettile("1341",str(i),str(j),str(mz))
UO.Useobject("Shovel")
CheckTime=UO.Timer()
UO.DeleteJournal()
REPEAT
wait(300)
Until UO.InJournal(Wait1) or UO.InJournal(Wait2) or UO.InJournal(Wait3) or UO.InJournal(Wait4) or UO.InJournal(Wait5) or UO.InJournal(Wait6) or UO.InJournal(Wait7) or UO.InJournal(Wait8) or UO.InJournal(Wait9) or UO.InJournal(Wait10) or CheckTime+200<uo.Timer() or UO.Dead()
Until UO.InJournal(Fizzle1) or UO.InJournal(Fizzle2) or UO.InJournal(Fizzle3) or UO.InJournal(Fizzle4) or UO.Dead()
If UO.weight >= OreQty Then
ToRecall()
EndIf
Next
Next
End sub
###################
### Рекол домой ###
###################
Sub ToRecall()
RecallToHome()
ToHide()
DropOre()
CheckReg()
If Food==1 Then
ToEat()
EndIf
If Status==1 Then
InfoOre()
EndIf
BackToMine()
End sub
########################################################
### Система реколов по рунам (с проверкой на прыжки) ###
########################################################
Sub JumpToRune()
var x=0
var mx, my
mx = UO.GetX("self")
my = UO.GetY("self")
dim runes[20]
runes[1]='Mine1'
runes[2]='Mine2'
runes[3]='Mine3'
runes[4]='Mine4'
runes[5]='Mine5'
runes[6]='Mine6'
runes[7]='Mine7'
runes[8]='Mine8'
runes[9]='Mine9'
runes[10]='Mine10'
runes[11]='Mine11'
runes[12]='Mine12'
runes[13]='Mine13'
runes[14]='Mine14'
runes[15]='Mine15'
runes[16]='Mine16'
runes[17]='Mine17'
runes[18]='Mine18'
runes[19]='Mine19'
runes[20]='Mine20'


RecallMana()
If rune==maxjamp Then
rune=1
EndIf
UO.Print("Go to Mine: "+str(rune))
UO.Cast('Recall',runes[rune])
Wait(5000)
If UO.getx()==mx and UO.gety()==my Then
REPEAT
x=x+1
RecallMana()
UO.Cast('Recall',runes[rune])
Wait(5000)
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead()
EndIf
CheckMark()
rune=rune+1
End sub

Sub BackToMine()
var x=0
var mx, my
mx = UO.GetX("self")
my = UO.GetY("self")
dim runes[20]
runes[1]='Mine1'
runes[2]='Mine2'
runes[3]='Mine3'
runes[4]='Mine4'
runes[5]='Mine5'
runes[6]='Mine6'
runes[7]='Mine7'
runes[8]='Mine8'
runes[9]='Mine9'
runes[10]='Mine10'
runes[11]='Mine11'
runes[12]='Mine12'
runes[13]='Mine13'
runes[14]='Mine14'
runes[15]='Mine15'
runes[16]='Mine16'
runes[17]='Mine17'
runes[18]='Mine18'
runes[19]='Mine19'
runes[20]='Mine20'
If rune==1 Then
rune=2
EndIf
rune=rune-1
RecallMana()
UO.Print("Go back to Mine: "+str(rune))
UO.Cast('Recall',runes[rune])
Wait(5000)
If UO.getx()==mx and UO.gety()==my Then
REPEAT
x=x+1
RecallMana()
UO.Cast('Recall',runes[rune])
Wait(5000)
Until UO.getx()<>mx and UO.gety()<>my or (x==2) or UO.Dead()
EndIf
CheckMark()
rune=rune+1
End sub

Sub CheckMark()
dim runes[20]
runes[1]='Mine1'
runes[2]='Mine2'
runes[3]='Mine3'
runes[4]='Mine4'
runes[5]='Mine5'
runes[6]='Mine6'
runes[7]='Mine7'
runes[8]='Mine8'
runes[9]='Mine9'
runes[10]='Mine10'
runes[11]='Mine11'
runes[12]='Mine12'
runes[13]='Mine13'
runes[14]='Mine14'
runes[15]='Mine15'
runes[16]='Mine16'
runes[17]='Mine17'
runes[18]='Mine18'
runes[19]='Mine19'
runes[20]='Mine20'
If UO.InJournal('The recall rune is starting to fade') Then
UO.print("Mark Rune: "+str(rune))
REPEAT
UO.DeleteJournal()
MarkMana()
UO.Cast('Mark',runes[rune])
wait(5000)
Until NOT UO.InJournal('The spell fizzles') or UO.Dead()
UO.DeleteJournal()
EndIf
End sub
#######################################################
### Реколимся домой по рунам (с проверкой на прыжки) ##
#######################################################
Sub RecallToHome()
var x=0
var mx, my
mx = UO.GetX("self")
my = UO.GetY("self")
REPEAT
x=x+1
RecallMana()
UO.Print('Go to Home')
UO.Cast('Recall','Home')
wait(5000)
Until UO.getx()<>mx and UO.gety()<>my or (x==3) or UO.Dead()
If UO.InJournal('The recall rune is starting to fade') Then
UO.print("Mark Rune")
REPEAT
UO.DeleteJournal()
MarkMana()
UO.Cast('Mark','Home')
wait(5000)
Until NOT UO.InJournal('The spell fizzles') or UO.Dead()
UO.DeleteJournal()
EndIf
End sub
####################################
### Выкладываем руду в контейнер ###
####################################
Sub DropOre()
If UO.waiting() Then
UO.canceltarget()
EndIf
VAR a,Exit
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(Chest)
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 or UO.Dead()
Next
UO.UnSetReceivingContainer()
End sub
#####################################
### Проверяем кол-во регов в паке ###
#####################################
Sub CheckReg()
var Chest = '0x400008C4' ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If UO.MR <= 10 or UO.BM <= 10 or UO.BP <= 10 Then
UO.Print("!!!Download Regs!!!")
UO.SetReceivingContainer('backpack')
UO.UseObject(Chest)
wait(5000)
UO.FindType('0x0F86','-1',Chest) ; MR
UO.Grab(STR(CountReg-UO.MR),'finditem')
wait(5000)
UO.FindType('0x0F7B','-1',Chest) ; BM
UO.Grab(STR(CountReg-UO.BM),'finditem')
wait(5000)
UO.FindType('0x0F7A','-1',Chest) ; BP
UO.Grab(STR(CountReg-UO.BP),'finditem')
wait(5000)
UO.UnsetReceivingContainer()
UO.Print("!!!Download Regs: Done!!!")
EndIf
End sub
##########################################
### Берём хавку из контейнера и кушаем ###
##########################################
Sub ToEat()
UO.UseObject(Chest)
wait(5000)
UO.FindType(TypeFood,'-1',Chest)
If UO.FindCount() > 0 Then
UO.SetReceivingContainer('backpack')
UO.Grab('25','finditem')
wait(2000)
REPEAT
UO.UseType(TypeFood)
wait(1000)
Until UO.InJournal('You are simply too full to eat any more!') or UO.Dead()
Else
UO.print("!!! Not Food !!!")
EndIf
DropFood()
End sub

Sub DropFood()
var f,Exit
dim Food[1]
Food[0]=TypeFood
If UO.Waiting() Then
UO.CancelTarget()
EndIf
UO.SetReceivingContainer(Chest)
for f=0 to 0
Exit=0
repeat
UO.FindType(Food[f])
If UO.GetQuantity('finditem') > 0 Then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
EndIf
Until Exit==1 or UO.Dead()
next
UO.UnsetReceivingContainer()
End sub
####################################
### Проверяем ману перед кастами ###
####################################
Sub RecallMana()
If UO.mana <= 11 Then
UO.print('!!!Meditation!!!')
UO.Exec('warmode 0')
wait(1000)
REPEAT
UO.UseSkill('Meditation')
wait(15000); 15 секунд медетируем.
Until UO.mana > 50 or UO.Dead()
EndIf
End sub

Sub MarkMana()
If UO.mana <= 17 Then
UO.print('!!!Meditation!!!')
UO.Exec('warmode 0')
wait(1000)
REPEAT
UO.UseSkill('Meditation')
wait(15000); 15 секунд медетируем.
Until UO.mana > 50 or UO.Dead()
EndIf
End sub
#######################
### Прячимся в хайд ###
#######################
Sub ToHide()
var CheckTime
while NOT UO.Hidden()
UO.Print('Hidden...')
UO.Exec("warmode 0")
wait(1000)
UO.UseSkill('Stealth')
CheckTime=UO.Timer()
REPEAT
wait(300)
Until UO.Hidden() or CheckTime+60<uo.Timer() or UO.Dead()
Wend
End sub
###################################
### Смотрим скока накопали руды ###
###################################
Sub InfoOre()
var LogsTime=PrintTime()
UO.FindType('0x1BDD','-1',Chest)
UO.TextOpen()
UO.TextPrint('#####################')
UO.TextPrint('## Время: '+LogsTime+' ##')
UO.TextPrint('#####################')
UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest)))
UO.TextPrint('Rose Ore: '+STR(GetAmount('0x19B9','0x0665',Chest)))
UO.TextPrint('Golden Ore: '+STR(GetAmount('0x19B9','0x084D',Chest)))
UO.TextPrint('Orion Ore: '+STR(GetAmount('0x19B9','0x048A',Chest)))
UO.TextPrint('Dwarf Ore: '+STR(GetAmount('0x19B9','0x0488',Chest)))
UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0482',Chest)))
UO.TextPrint('Shadow Ore: '+STR(GetAmount('0x19B9','0x0770',Chest)))
UO.TextPrint('Valorite Ore: '+STR(GetAmount('0x19B9','0x0515',Chest)))
UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0487',Chest)))
UO.TextPrint('Magma Ore: '+STR(GetAmount('0x19B9','0x0486',Chest)))
UO.TextPrint('Obsidian Ore: '+STR(GetAmount('0x19B9','0x0485',Chest)))
UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x048D',Chest)))
UO.TextPrint('#####################')
End sub

Sub GetAmount(Type, Color, Cont)
Var item_amount = 0
UO.IgnoreReset()
Repeat
UO.FindType(Type, Color, Cont)
If UO.FindCount() > 0 Then
If UO.GetQuantity('finditem')==0 Then
item_amount = item_amount + 1
Else
item_amount = item_amount + UO.GetQuantity('finditem')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount() < 1 or UO.Dead()
UO.IgnoreReset()
Return item_amount
End sub

Sub PrintTime()
Var HR = ''
Var MIN = ''
Var SEC = ''
Var CurrentTime = UO.Time()
If CurrentTime>99999 Then
HR = Mid(STR(CurrentTime),0,2)
MIN = Mid(STR(CurrentTime),2,2)
SEC = Mid(STR(CurrentTime),4,2)
Else
If CurrentTime > 9999 Then
HR = '0'+Mid(STR(CurrentTime),0,1)
MIN = Mid(STR(CurrentTime),1,2)
SEC = Mid(STR(CurrentTime),3,2)
Else
If CurrentTime > 999 Then
HR = '00'
MIN = Mid(STR(CurrentTime),0,2)
SEC = Mid(STR(CurrentTime),2,2)
Else
If CurrentTime > 99 Then
HR = '00'
MIN = '0'+Mid(STR(CurrentTime),0,1)
SEC = Mid(STR(CurrentTime),1,2)
Else
If CurrentTime > 9 Then
HR = '00'
MIN = '00'
SEC = STR(CurrentTime)
Else
HR = '00'
MIN = '00'
SEC = '0'+STR(CurrentTime)
EndIf
EndIf
EndIf
EndIf
EndIf
UO.TextPrint(STR(CurrentTime ))
Return (HR+':'+MIN+':'+SEC)
End sub
##################
### РЕКОНЕКТОР ###
##################
Sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
while (UO.ObjAtLayer('Bpack')=='')
If rFlag Then
ReconnectTime=MakeTime()
rFlag=0
EndIf
wait(20000)
UO.Say('')
wait(3000)
UO.Say('')
wait(3000)
UO.Say('')
wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
wait(3000)
wend
wait(3000)
If (rFlag==0) and (ReconnectTime<>'0') Then
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
rFlag=1
ReconnectTime='0'
EndIf
Until false
End sub

Sub MakeTime()
var d,t,ret,i
ret=str(UO.Time())
t=""
for i=0 to Len(ret)
t=ret[Len(ret)-i]+t
If (i==2) or (i==4) Then
t=":"+t
EndIf
next
ret=str(UO.Date())
d=""
for i=0 to Len(ret)
d=ret[Len(ret)-i] + d
If (i==2) or (i==4) Then
d="."+d
EndIf
next
ret=t+" @ "+d
return ret
End sub
#############################
### Выключаем все скрипты ###
#############################
Sub Terminate()
UO.Print("Mining script: Off!")
UO.DeleteJournal()
UO.Exec('terminate all')
wait(100)
UO.Exec('terminate all')
wait(100)
UO.Exec('terminate all')
wait(100)
End sub :!:


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1 post ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 31 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited