Я хочю найти скрипт такой чтобы вводил макро код и бил элемов без кампинга+чтобы сам ему указывал точки и руду которую я хотел бы выкапывать!
Это будет незаменимый скрипт в помощи.
Пожулуйста скиньте или тако.
Заранее благодарен.

Moderators: Murderator+, Murderator
Code: Select all
###############################################################
#===---====----===---===---= Mining =---=-=-=-=-=--=-=-=-=-=-=#
# Single char mining for OLDP Mine. OLDP Shard www.oldp.net #
# Scripted by NMY (c) 2006-07 #
#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#
#"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""#
# To start script use ",exec main" command from client window #
###############################################################
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
;==================== Main mining script ======================
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
sub main()
VAR DigDistance, TileNum, LastTimer
DIM BaseX[4], BaseY[4]
VAR BaseZ, WayPoint, WayPoints
VAR MaxWeight, KillElemental
KillElemental='Yes'
MaxWeight=uo.str*4
DigDistance=2
WayPoints=4
;uo.exec('exec Reconnector')
uo.exec('exec DeCoder')
;uo.exec('exec Alert')
uo.exec('exec closer')
uo.exec('msg Go Bitch!')
BaseX[0]=4552
BaseY[0]=3173
BaseZ=0
BaseX[1]=4547
BaseY[1]=3173
BaseX[2]=4551
BaseY[2]=3168
BaseX[3]=4547
BaseY[3]=3168
CheckLag()
UO.UseObject('Sunduk')
LastTimer=UO.Timer()
Repeat
wait(500)
Until UO.InJournal('You can') OR UO.InJournal('What is the') OR UO.Timer()>LastTimer+100
If UO.InJournal('see the') Then
UO.Say("Podoydi k sunduku i tkni v nego pricelom!")
UO.AddObject('Sunduk')
While UO.Targeting()==2
wait(500)
Wend
UO.SaveConfig()
UO.UseObject('Sunduk')
Else
UO.Say("Ok! Viju sunduk.")
end if
uo.deletejournal()
While NOT UO.Dead()
For WayPoint=0 to WayPoints-1
WalkMe(BaseX[WayPoint],BaseY[WayPoint],'')
digitstay(MaxWeight,DigDistance,KillElemental,BaseX[WayPoint],BaseY[WayPoint])
Next
wend
end sub
;-------------------- Try to mine under self ------------------
sub digitstay(MaxWeight,MaxDistance,KillElemental,BaseX,BaseY)
VAR x,y,z='0',TileNum='1339'
VAR Last=0, LastTimer
VAR MaxTimer=110
For x=-MaxDistance to MaxDistance
For y=-MaxDistance to MaxDistance
Repeat
CheckLag()
Del('There is nothing|elsewhere|location|You cannot|Region|Elemental|attacking you|You stop')
dig:
UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
UO.UseType('0x0E85')
LastTimer=UO.Timer()
Repeat
wait(500)
until UO.InJournal('There is nothing|elsewhere|location|You cannot|Region|Elemental|attacking you|You stop') OR LastTimer+200<UO.Timer() OR uo.life < uo.str
If UO.InJournal('Elemental|attacking you') or uo.life < uo.str then
If KillElemental=='Yes' Then
KillElem()
Endif
Endif
If UO.InJournal('you stop') then
UO.UseType('0x0E85')
GoTo dig
Endif
If UO.Weight>=MaxWeight then
unloadore()
Endif
Until UO.InJournal('There is nothing|location|Region|You cannot|elsewhere') OR LastTimer+200<UO.Timer()
Next
Next
end sub
;------------------------- Unload ore -------------------------
sub unloadore()
VAR Sunduk, TempX, TempY, n
VAR SundukX=4562
VAR SundukY=3168
TempX=UO.GetX()
TempY=UO.GetY()
Dim UnLoad[10]
UnLoad[1] = '0x19B9'
UnLoad[2] = '0x19B8'
UnLoad[3] = '0x19BA'
UnLoad[4] = '0x19B7'
UnLoad[5] = '0x0EED'
UnLoad[6] = '0x09AA'
UnLoad[7] = '0x1088'
UnLoad[8] = '0x1087'
UnLoad[9] = '0x1086'
UnLoad[10]= '0x108A'
WalkMe(4554,3173,'')
WalkMe(4557,3170,'')
opendoor()
WalkMe(4559,3170,'')
WalkMe(SundukX,SundukY,'')
UO.UseObject('Sunduk')
CheckLag()
For n = 1 to 10
UO.FindType( UnLoad[n] , -1 ,'backpack')
while UO.GetQuantity('finditem') > 0
UO.moveitem('finditem','0','Sunduk')
CheckLag()
UO.FindType( UnLoad[n] , -1 ,'backpack')
wend
next
UO.FindType('0x0E85', -1 ,'backpack')
If UO.FindCount() == 0 then
UO.FindType('0x0E85', -1 ,'Sunduk')
UO.MoveItem('finditem')
Endif
WalkMe(4559,3170,'')
opendoor()
WalkMe(4557,3170,'')
WalkMe(4554,3173,'')
WalkMe(TempX,TempY,'')
end sub
sub opendoor()
UO.DeleteJournal()
UO.Set('finddistance','2')
UO.FindType('0x0870', -1 ,'ground')
If UO.FindCount() then
open:
UO.UseObject('finditem')
CheckLag()
wait(250)
If UO.InJournal('you must wait') then
wait(90000)
Goto open
Endif
Endif
end sub
;----------- -----------
sub loot()
VAR n
Dim Load[10]
Load[1] = '0x19B9'
Load[2] = '0x19B8'
Load[3] = '0x19BA'
Load[4] = '0x19B7'
Load[5] = '0x0EED'
Load[6] = '0x09AA'
Load[7] = '0x1088'
Load[8] = '0x1087'
Load[9] = '0x1086'
Load[10]= '0x108A'
UO.UseObject('lastcorpse')
wait(500)
if (uo.getserial('backpack') <> uo.getserial('lastcontainer')) then
For n = 1 to 10
UO.FindType( Load[n] , -1 ,'lastcontainer')
while UO.GetQuantity('finditem') > 0
UO.moveitem('finditem','0','backpack')
CheckLag()
Wait(700)
UO.FindType( Load[n] , -1 ,'lastcorpse')
wend
next
end if
end sub
sub killelem()
VAR k=0
repeat
k = k + 1
uo.msg('.arm')
wait(1000)
until uo.life >= uo.str and k >= 10
loot()
end sub
;;;;;;;;;;;;; DeCoder ;;;;;;;;;;;;;;;
sub DeCoder()
while true AND NOT UO.Dead()
if uo.LastGump('text',0) == 'enter anti macro code:' and uo.LastGump('replyed') == 0 then
uo.lclick(uo.LastGump('x')+75, uo.LastGump('y')+69)
;UO.PlayWAV('D:\games\ultima online old paradise\inject\alert2.wav')
wait(10000)
uo.say(decode())
wait(300)
uo.lclick(uo.LastGump('x')+77, uo.LastGump('y')+108)
endif
wait(1000)
wend
end sub
sub Reconnector()
while True
while UO.IsOnline() AND NOT UO.Dead()
wait(1000)
wend
UO.TextOpen()
UO.TextPrint('Disconnected at '+MakeTime())
UO.Exec('terminate all')
connect:
wait(3000)
UO.LDblClick(616,455)
wait(3000)
UO.LDblClick(616,455)
wait(3000)
UO.LDblClick(616,455)
wait(3000)
UO.LDblClick(357,164)
if UO.IsOnline() then
UO.Exec('exec main')
UO.TextOpen()
UO.TextPrint('Reconnected at '+MakeTime())
else
goto connect
endif
wend
endsub
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 GetXY(str,arnum)
arnum[0]=val(mid(str, 7, 3))
arnum[1]=val(mid(str, 10, 3))
end sub
Sub decode()
var temp='',i=0
var pos=0
var line=5
var sX=0, sY=0
var code=''
var finding = 1
var CurrX=0
var CurrY=0
var NumSum
dim tempXY[2]
dim Num[9]
Num[0]=6
Num[1]=35
Num[2]=45
Num[3]=-24
Num[4]=34
Num[5]=-5
Num[6]=26
Num[7]=4
Num[8]=-6
Repeat
temp=uo.LastGump('command',line)
GetXY(temp, tempXY)
if pos >= 17 then
if pos == 17 then
NumSum=(CurrX-sX)*10+(CurrY-sY)
finding = 1
i=0
while finding
if NumSum == num[i] then
code=code+str(i+1)
finding = 0
end if
i=i+1
wend
end if
if tempXY[0]-CurrX > 5 then
pos=0
end if
end if
if not pos then
sX=tempXY[0]
sY=tempXY[1]
pos=15
line=line+15
end if
CurrX=tempXY[0]
CurrY=tempXY[1]
pos=pos+1
line=line+1
Until len(code) == 4
return code
end sub
sub Alert()
VAR a
UO.TextClear()
UO.DeleteJournal()
while true and not uo.dead()
If UO.InJournal('Elemental|Your total damage|You see') then
Del('Elemental|Your total damage|You see')
end if
If UO.JournalSerial()<>'0x00000000' && UO.JournalSerial()<>'0xFFFFFFFF' && UO.JournalSerial()<>'0x4013129C' && UO.JournalSerial()<>'0x001312A8' && UO.JournalSerial()=='0x000101C7' then
For a = 1 to 5
UO.PlayWAV('D:\games\ultima online old paradise\inject\alert2.wav')
wait(250)
next
uo.textopen()
uo.textprint(uo.journalserial())
end if
wait(200)
wend
end sub
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;; W A L K E R ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
################# W A L K E R ######################
sub WalkME(x,y,Target)
VAR i
VAR dir,ldir,rdir,key,olddir
VAR dx,dy,Exit=0
VAR CacheLimit=9,CacheIndex="Text"
DIM CacheX[10], CacheY[10]
CacheX[0]="Test"
While Exit<>1
If Target<>"" Then
dx=UO.GetX(Target)-UO.GetX()
dy=UO.GetY(Target)-UO.GetY()
; UO.Print("Target locked!")
If UO.GetDistance(Target)<2 Then
return
Endif
Else
dx=x-UO.GetX()
dy=y-UO.GetY()
If dx==0 AND dy==0 Then
Exit=1
Endif
Endif
If dx<>0 AND dy<>0 Then
If dx>0 AND dy>0 Then ; GoSE
dir=3
ldir=2
rdir=4
key=40 ; DownArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=0
rdir=1
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=5
rdir=6
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx>0 AND dy<0 Then ; GoNE
dir=1
ldir=0
rdir=2
key=39 ; RightArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=6
rdir=7
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy>0 Then ; GoSW
dir=5
ldir=4
rdir=6
key=37 ; LeftArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==6 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 AND dy<0 Then ; GoWN
dir=7
ldir=6
rdir=0
key=38 ; UpArrow
olddir=UO.GetDir()
If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
If olddir==0 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx<>0 AND dy==0 Then
If dx>0 Then ; GoE
dir=2
key=34 ; PgDown
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=3
rdir=4
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoNE
dir=1
ldir=1
rdir=0
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dx<0 Then ; GoW
dir=6
key=36 ; Home key
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==0 Then ; GoWN
dir=7
ldir=7
rdir=0
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=4
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
If dx==0 AND dy<>0 Then
If dy>0 Then ; GoS
dir=4
key=35 ; End
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoSE
dir=3
ldir=2
rdir=3
key=40 ; DownArrow
While UO.GetDir()<>3
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoSW
dir=5
ldir=6
rdir=5
key=37 ; LeftArrow
While UO.GetDir()<>5
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
If dy<0 Then ;GoN
dir=0
key=33 ; PgUp
olddir=UO.GetDir()
If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
If olddir==2 Then ; GoNE
dir=1
ldir=1
rdir=2
key=39 ; RightArrow
While UO.GetDir()<>1
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Else ; GoWN
dir=7
ldir=7
rdir=6
key=38 ; UpArrow
While UO.GetDir()<>7
StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
Wend
Endif
Endif
Endif
Endif
Wend
end sub
sub StepEdit(x,y,dir,key)
VAR walkwait=300
VAR ErrLevel=0
If UO.GetDir()<>dir Then
checkstam()
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif
checkstam()
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
If x==UO.GetX() AND y==UO.GetY() Then
;zatik
ErrLevel=1
Endif
Endif
Return ErrLevel
end sub
sub StepArrow(x,y,dir,ldir,rdir,key)
VAR walkwait=300
VAR ErrLevel=0
If UO.GetDir()<>dir Then
checkstam()
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
CheckLag()
Endif
Endif
If UO.GetX()==x AND UO.GetY()==y Then
checkstam()
UO.Press(key)
wait(walkwait)
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
CheckLag()
If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik
ErrLevel=1
Endif
Endif
Endif
Return ErrLevel
end sub
sub checkstam()
var refresh = '0x0F0B'
if uo.stamina < 10 then
uo.findtype(refresh,-1,'backpack')
if uo.findcount() then
uo.usetype(refresh)
wait(1000)
else
uo.print("Nety Refreshey! Stoim...")
repeat
wait(500)
until uo.stamina >= 10
endif
else
endif
endsub
Sub CHECKLAG()
del('backpack')
uo.click('backpack')
repeat
wait(200)
until uo.injournal('backpack')
del('backpack')
endsub
Sub DEL(msg)
while uo.injournal(msg)
uo.setJournalLine(uo.injournal(msg)-1,"Is Empty!")
wend
endsub
sub closer()
VAR t
For t=0 to 540
wait(60000)
next
uo.closeuo()
end sub
##########################################
Sub test()
##########################################
If uo.getglobal('test')=='11' then
uo.setglobal('test',00)
uo.print(' !!! -= Test: off =- !!! ')
uo.exec('terminate test')
else
uo.setglobal('test',11)
uo.print(' !!! -= Test: on =- !!! ')
end if
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
WalkMe(4554,3173,'')
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
uo.setglobal('test',00)
uo.print(' !!! -= Test: off =- !!! ')
##########################################
end sub
##########################################
The BOSS wrote:А поподробнее немог бы расписать пожалуйста:( а то я вообще незнаю что куда вписывать:*
Code: Select all
DIM BaseX[4], BaseY[4]
Code: Select all
for x=0 to 3
for y=0 to 3