Помогите написать скрипт на мининг...

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Reaver
Posts: 12
Joined: 2009-09-10 17:05:10

Помогите написать скрипт на мининг...

Post by Reaver »

Очень бы хотелось попросить вас о написании скрипта для Мининга.
Суть скрипта :Копание происходит в главное шахте города Минок,чтобы чар окапывал всю шахту,постоянно был в хайде(то есть копал из хайда) и выкидывал из пака руду железа....
Заранее благодарен.
ЗЫ:Вы уж простите я вообще в скриптовании не соображаю ни капельки.....
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Post by kostjan »

Для чего существует "Поиск" ? - Mining - Мининг! :idea:
Reaver
Posts: 12
Joined: 2009-09-10 17:05:10

Post by Reaver »

Да я находил тока ничего там не понимаю((((((Там столько этих скриптов,вот и прошу помочь кто бы составил бы мне такой скрипт
Reaver
Posts: 12
Joined: 2009-09-10 17:05:10

Post by Reaver »

Ну что нету благородных людей готовых оказать помощь нуббу???
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Post by kostjan »

Данный скрипт зделан под Миноук шахту.
;Исправленый скрипт Каматоза.
;Были исправлены все баги.
;Исправлен баг с переносом руды в кол-ве (1,2,3)
;Не упустите айди сундука внизу.
;
;Чар бегает по точкам и обкапывает их с нормальной задержкой.
;Сброс в сундук будет доделан в следующей версии.
;Также будет добавлено киляние голема. (300-хп) 5к. простой побег.
sub mine()
VAR DigDistance, TileNum
VAR LastTimer
DIM BaseX[7], BaseY[7]
VAR BaseZ, WayPoint, WayPoints
VAR MaxWeight,MaxDistance
VAR i,j,TileY,TileX,DirX,DirY
VAR Delta,BeginX,EndX,BeginY,EndY
;Сам скрипт

var Reconnect=1 ; 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.
var Status=0 ; 1 - Показывать статус руды, 0 - нет.
var Detect=1 ; 1 - Перед началом копки детектим окресности, 0 - нет.
MaxWeight=550 ; Максимальный вес
WayPoints=7 ; Указываем количество точек копания.

BaseX[0]=2559 ; Здесь указываем координаты точек копания. Нужно встать на
BaseY[0]=496 ; позицию и посмотреть координаты в инжекте. Их и нужно
BaseZ=0 ; подставить вместо моих. Чара ставьте на 2 клетки от стен.

BaseX[1]=2562
BaseY[1]=488

BaseX[2]=2569
BaseY[2]=486

BaseX[3]=2565
BaseY[3]=482

BaseX[4]=2569
BaseY[4]=491

BaseX[5]=2565
BaseY[5]=486

BaseX[6]=2567
BaseY[6]=480

BaseX[7]=2571
BaseY[7]=480



If Reconnect==1 Then
UO.Exec('Exec Reconnect')
EndIf


If Detect==1 Then
UO.DeleteJournal()
UO.UseSkill("Detect Hidden")
UO.Print("ПОИСК ВРАГОВ.....")
wait(3200)
EndIf


;Начало скрипта

UO.Print ("Script: Mining. Jericho Server v.2.01 edit by Strike")
UO.Print ("Autor: KamaTozz.")
UO.Print ("Editor: Strike")
uo.print('!!Выбери Кирку!! ')
uo.exec('addobject Pickaxe')
while uo.targeting()
wait(100)
sub tohide()
wend


While NOT UO.Dead()

For WayPoint=0 to WayPoints-1
walkn(BaseX[WayPoint],BaseY[WayPoint],"")
digitstay(MaxWeight,BaseX[WayPoint],BaseY[WayPoint])
Next
wend
end sub



;Копка


sub digitstay(MaxWeight,BaseX,BaseY)
VAR x,y,z='0',TileNum='1339'
VAR Last=0,LastTimer, ContFlag=1
VAR MaxTimer=100
var mx, my, mz, i, j, Detect




mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")

for i = mx-1 to mx+1 ; Расстояние копки
for j = my -1 to my+1 ; Расстояние копки

UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
Repeat
CheckLag() ;
UO.Waittargettile("1339", str(i), str(j), str(mz))
UO.Useobject("Pickaxe")
LastTimer=UO.Timer()
Repeat
wait(100)
until UO.InJournal("Вы положили") OR UO.InJournal("You cannot mine so close to yourself")OR UO.InJournal("You loosen")OR UO.InJournal("That is too far away") OR UO.InJournal("") OR UO.InJournal("") OR UO.InJournal("") OR LastTimer+50<UO.Timer()
If NOT UO.InJournal('There is nothing here to mine for')OR UO.InJournal("That is too far away") then
Endif
If UO.InJournal('You loosen') then
repeat
wait(500)

until UO.InJournal("You put the") OR LastTimer+MaxTimer<UO.Timer()
Endif
walkn(BaseX,BaseY,"")
Else
Endif
Endif

If UO.Weight>=MaxWeight then
stop()
Endif

Until UO.InJournal("There is no") OR UO.InJournal("You cannot mine so close to yourself") OR UO.InJournal("Нет тут больше ничего") OR UO.InJournal("Далеко") OR UO.InJournal("Здесь невозможно копать") OR ContFlag==0
Next
Next
end sub



;Shared Subs {Не используеться хайд) Ф-ция убрана как таковая.Можно вписат ьесли есть кирка +5.

sub tohide()
while not UO.Hidden()
UO.Warmode("0") # снимаем war режим
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
end sub


;==============================================================
; CheckLag()
;--------------------------------------------------------------
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')

repeat
wait(500)
until UO.InJournal('backpack')
end sub

;---------------- Ходилка -----------------------
;(Поправлена ходилка)
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


sub GoN()
VAR walkwait=300
VAR x,y,dir=0
VAR key=33 ; PgUp
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.GetY()+1==y Then
return -1
Else
return 1
Endif
end sub


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 GoS()
VAR walkwait=300
VAR x,y,dir=4
VAR key=35 ; End
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.GetY()-1==y Then
return -1
Else
return 1
Endif
end sub


sub GoWN()
VAR walkwait=300
VAR x,y,dir=7
VAR key=38 ; UpArrow
x=UO.GetX()
y=UO.GetY()

If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif

If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub


sub GoNE()
VAR walkwait=300
VAR x,y,dir=1
VAR key=39 ; RightArrow
x=UO.GetX()
y=UO.GetY()

If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif

If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub


sub GoSE()
VAR walkwait=300
VAR x,y,dir=3
VAR key=40 ; DownArrow
x=UO.GetX()
y=UO.GetY()

If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif

If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub


sub GoSW()
VAR walkwait=300
VAR x,y,dir=5
VAR key=37 ; LeftArrow
x=UO.GetX()
y=UO.GetY()

If UO.GetDir()<>dir Then
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
CheckLag()
Endif
Endif

If UO.GetDir()==dir Then
UO.Press(key)
wait(walkwait)
If x==UO.GetX() AND y==UO.GetY() Then
CheckLag()
Endif
If UO.GetDir()==dir Then
return -1
Else
return UO.GetDir()
Endif
Else
return UO.GetDir()
Endif
end sub


#==============================================================
# WalkN(X,Y,Serial) - char is walking by dX and dY step
# sub using Home, End, PgUp, PgDown keys
# d'not rebind this key from default action!
# walkwait - delay after keypress
#--------------------------------------------------------------
sub WalkN(x,y,Target)
VAR i
VAR dx,dy,Exit=0

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
Exit=1
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()
Endif

If dx>0 AND dy<0 Then
GoNE()
Endif

If dx<0 AND dy>0 Then
GoSW()
Endif

If dx<0 AND dy<0 Then
GoWN()
Endif

Endif

If dx<>0 AND dy==0 Then
If dx>0 Then
GoE()
Endif

If dx<0 Then
GoW()
Endif
Endif


If dx==0 AND dy<>0 Then
If dy>0 Then
GoS()
Endif

If dy<0 Then
GoN()
Endif
Endif
Wend
end sub


sub stop()
uo.print("Цикл копки завершён, скрипт остановлен...")
ToHide()
InfoOre()
UO.DeleteJournal()
UO.Exec('terminate all')
wait(100)
UO.Exec('terminate all')
wait(100)
UO.Exec('terminate all')
wait(100)
end sub


sub InfoOre()
var Chest='0x4000B241' ;---------------(Сундук)---------------куда складываем накопанное (ID)
var LogsTime=PrintTime()
UO.FindType('0x19B9','-1','Chest')
UO.FindType('0x19B7','-1','Chest')
UO.FindType('0x19BA','-1','Chest')
UO.FindType('0x19B8','-1','Chest')

UO.TextOpen()
UO.TextPrint('#####################')
UO.TextPrint('## Время: '+LogsTime+' ##')
UO.TextPrint('#####################')
UO.TextPrint('Aluminiy Ore: '+STR(GetAmount('0x19B9','0x0964',Chest)))
UO.TextPrint('Stone Ore: '+STR(GetAmount('0x19B9','0x0774',Chest)))
UO.TextPrint('Copper Ore: '+STR(GetAmount('0x19B9','0x0655',Chest)))
UO.TextPrint('Bronze Ore: '+STR(GetAmount('0x19B9','0x06D0',Chest)))
UO.TextPrint('Iron Ore: '+STR(GetAmount('0x19B9','0x0000',Chest)))
UO.TextPrint('Steel Ore: '+STR(GetAmount('0x19B9','0x0B7F',Chest)))
UO.TextPrint('Gold Ore: '+STR(GetAmount('0x19B9','0x0B7A',Chest)))
UO.TextPrint('Silver Ore: '+STR(GetAmount('0x19B9','0x0835',Chest)))
UO.TextPrint('Adamantin Ore: '+STR(GetAmount('0x19B9','0x0845',Chest)))
UO.TextPrint('Crystal Ore: '+STR(GetAmount('0x19B9','0x0B89',Chest)))
UO.TextPrint('Meteor Ore: '+STR(GetAmount('0x19B9','0x0AE7',Chest)))
UO.TextPrint('Mytheril Ore: '+STR(GetAmount('0x19B9','0x084A',Chest)))
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
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


;Будет зделана ходилка в банк.
;Ходилка в дома и полная розгрузка чара.
;В новой версии будет дописана ф-ция битвы с элементалем ( 300-хп)
;Ожидайте.Исправил Strike.
Reaver
Posts: 12
Joined: 2009-09-10 17:05:10

Post by Reaver »

Ой спасибо огромное!!!!!!!Буду пытаться разобраться)
Reaver
Posts: 12
Joined: 2009-09-10 17:05:10

Post by Reaver »

В 77 строке ошибку выдает что-то связанное с переменной вейпоинтс, что делать???
CuHTpoH
Posts: 287
Joined: 2007-11-01 19:09:30
Location: Moscow
Contact:

Post by CuHTpoH »

ну исправь что-то связанное с переменной вейпоинтс
**Выставляем отступы в скриптах*** ©Destruction
Feel the Power of Dark Side
Reaver
Posts: 12
Joined: 2009-09-10 17:05:10

Post by Reaver »

Если бы я умел((((((((((((
Gashish379
Posts: 6
Joined: 2009-10-06 11:59:24

Post by Gashish379 »

Помогите плиз, таже проблема((((
Post Reply