Mining... и ПК...

Anything and all.

Moderators: Murderator+, Murderator

SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Mining... и ПК...

Post by SoulMaster »

ЕСТЬ ВОТ ТАКОЙ ВОТ СКРИПТ НА МАЙНИНГ:


sub maning()
#BETEP™#
var mx, my, mz, i, j, jor, ser, noto
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.Warmode("0")
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("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
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") or uo.dead() then
pwav()
Pause()
endif
for jor = 0 to 9
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
Save()
pwavw()
wait(3500) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
goto reccal
endif
next
wend
if uo.weight > 450 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
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
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='0x402AA32D' ; АЙДИ сундука для руды
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.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:\ELEM.WAV")
endsub

sub pwavw(); звук при появлении ПК
uo.playwav("C:\PK.wav")
endsub

sub Pause() ; Пауза скрипта если выкопали Элема (продолжить сказав GO )
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!СКРИПТ НА ПАУЗЕ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!СКРИПТ ПРОДОЛЖЕН!!!!")
endif
end sub


Вопрос:

В бекпаке лежит руна с названием типа: "Ia tebia zapomnil... и т.д." вот... когда приходит ПК я почему то не перемещаюсь по этой руне в безопасное место... почему? что надо сделать? жду ответов...
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

плиззз - помогите !
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

НУ ОТВЕТЬТЕ: ПОЧЕМУ НЕТУ РЕКОЛА ОТ ПК ?
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Re: Mining... и ПК...

Post by SoulMaster »

SoulMaster wrote:
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.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


вот кусок
SoulMaster wrote: UO.Cast('Recall','finditem')

заменил на
SoulMaster wrote: UO.Cast('Recall','self')
- надеюсь поможет... а вы пока пишите ))
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

как много ответов.... сколько помощи...
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

ни у кого нету никаких идей?
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

как смешно.. :) ну помогите !
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Ломает такой огромный скрипт читать. Track World Items включен?
SoulMaster
Posts: 20
Joined: 2004-10-11 19:35:24

Post by SoulMaster »

AGRS wrote:Ломает такой огромный скрипт читать. Track World Items включен?


не... из-за этого что ли ? :)
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

SoulMaster wrote:
AGRS wrote:Ломает такой огромный скрипт читать. Track World Items включен?


не... из-за этого что ли ? :)


При работе с персонажами отличными от твоего надо всегда включать. Если сейчас не нужно, через несколько строк понадобится. :)
drcrazy
Junior Expert
Posts: 92
Joined: 2004-10-12 00:48:57
Location: Шард МЕ2

Post by drcrazy »

UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')


Проверь, какого типа у тя руны.. на всякий случай..
Проверь, есть ли у тя реги на реколл
The pleasure of satisfying a savage instinct, undomesticated by the ego, is incomparably much more intense then the one of satisfying a tamed instinct. S.Freud.
MAGICUS
Posts: 61
Joined: 2004-10-17 17:20:55

Post by MAGICUS »

Держи Скрипт а то у тя маленький и не рабочий)))))
В низу инфа.

Code: Select all

Var MiningDir="D:\inj-base\Mining\Mining_1\"# - Путь к скрипту 
Var MaxWght="700"                           # - Максимальный вес
Var HomeRune=1                              # - Номер руны в дом
Var MineRune=2                              # - Номер руны в шахту
Var LoadContainer="0x40105E07"              # - Номер загрузочного контейнера
Var UnLoadContainer="0x40105E07"            # - Номер разгрузочного контейнера
Var MineBook="0x40049994"                   # - Номер Runebook
Var HomeX="2046",HomeY="2187"               # - Координаты появления в доме
Var MineX="1424",MineY="2893"               # - Координаты появления в шахте
Var EscpX="2555",EscpY="580"                # - Координаты появления в безопасности

############################################################
#   Начало копания и контроль за смертью
############################################################
sub Start()
log(0,"","")
wait(500)
UO.Exec("exec Mining")
While not UO.Dead()
wait(1000)
wend
uo.textopen()
uo.textprint("Смерть")
log(4,uo.GetGlobal("name"),"")
wait(500)
UO.Exec("warmode 0")
UO.Exec("terminate all")
end sub

############################################################
#   Противостояние Элементалю
############################################################
sub ElemKill()
UO.Exec("terminate Mining")
UO.UseType("0x0F0E","0x0631")
wait(100)
repeat
UO.DeleteJournal()
if UO.Mana<50 then
wait(14000)
UO.UseType("0x0F0E","0x09DF")
endif
UO.WaitMenu("What","Daemon")
UO.Cast("Polymorph")
wait(1000)
while checkmorph()==false
wait(100)
wend
until NOT UO.InJournal("spell fizzles")
UO.FindType("0x0010","0xffff","ground")
UO.GetStatus("finditem")
uo.SetGlobal("name",UO.GetName("finditem"))
uo.textopen()
uo.textprint(UO.GetName("finditem"))
wait(100)
lifeup("healing")
UO.WarMode(1)
wait(100)
UO.DeleteJournal()
UO.Attack("laststatus")
while check("0x0010")==true
gotoxy(UO.GetX("laststatus"),UO.GetY("laststatus"),1)
wait(100)
wend
uo.SetGlobal("timekill",time())
UO.WaitTargetGround("0x19B9")
wait(500)
UO.Grab("all")
UO.WaitTargetGround("0x0EED")
wait(1500)
UO.Grab("all")
wait(100)
UO.Exec("warmode 0")
recall("1")
log(5,uo.GetGlobal("name"),"")
uo.textopen()
uo.textprint("Поимели рудку =)")
UO.Exec("exec Mining")
end sub

############################################################
#   Контроль за опасностью
############################################################
sub Visor()
VAR asd
while 1
UO.deletejournal()
while not UO.InJournal(":")
wait(100)
wend
if UO.InJournal("Elemental") then
uo.SetGlobal("timeelem",time())
uo.textopen()
uo.textprint("Будет бой с элементалем")
UO.Exec("exec ElemKill")
UO.Exec("terminate Visor")
endif
if UO.InJournal("attacking you") then
UO.GetStatus("UO.JournalSerial(0)")
uo.SetGlobal("name",UO.GetName(UO.JournalSerial(0)))
log(9,uo.GetGlobal("name"),"")
uo.textopen()
uo.textprint("Эта крыса "+UO.GetName(UO.JournalSerial(0))+" внезапно атаковала!" )
UO.Exec("exec Escape")
UO.Exec("terminate Visor")
endif
asd=UO.GetNotoriety(UO.JournalSerial(0))
if asd==6 then
UO.GetStatus("UO.JournalSerial(0)")
uo.SetGlobal("name",UO.GetName(UO.JournalSerial(0)))
log(6,uo.GetGlobal("name"),"")
uo.textopen()
uo.textprint("В шахте оказался ПК - "+UO.GetName(UO.JournalSerial(0)))
UO.Exec("exec Escape")
UO.Exec("terminate Visor")
endif
if asd==5 then
UO.GetStatus("UO.JournalSerial(0)")
uo.SetGlobal("name",UO.GetName(UO.JournalSerial(0)))
log(8,uo.GetGlobal("name"),"")
uo.textopen()
uo.textprint("В шахте вражеский гильдмэн - "+UO.GetName(UO.JournalSerial(0)))
UO.Exec("exec Escape")
UO.Exec("terminate Visor")
endif
if asd==4 then
UO.GetStatus("UO.JournalSerial(0)")
uo.SetGlobal("name",UO.GetName(UO.JournalSerial(0)))
log(7,uo.GetGlobal("name"),"")
uo.textopen()
uo.textprint("В шахте оказался криминал - "+UO.GetName(UO.JournalSerial(0)))
UO.Exec("exec Escape")
UO.Exec("terminate Visor")
endif
wend
end sub

############################################################
#   Побег
############################################################
sub Escape()
UO.Exec("terminate Mining")
uo.textopen()
uo.textprint("Попытка к бегству")
UO.UseType("0x0F0E","0x0631")
wait(100)
recall("3")
repeat
UO.DeleteJournal()
UO.WaitTargetType(0x1F14)
UO.Cast("Mark")
wait(8000)
until NOT UO.InJournal("spell fizzles")
recall("1")
log(10,uo.GetGlobal("name"),"")
uo.textopen()
uo.textprint("Успешно скрылся")
wait(300000)
UO.Exec("exec Mining")
end sub

############################################################
#   Пополнение жизни
############################################################
sub lifeup(mode)
if mode=="healing" then
while UO.Life<UO.Str
UO.Exec("bandageself")
wait(300)
UO.UseType("0x1B76")
wait(4000)
wend
endif
if mode=="bottle" then
if UO.Life<UO.Str then
UO.UseType("0x0F0E","0x09BB")
wait(100)
endif
endif
end sub

############################################################
#   Пополнение маны
############################################################
sub manaup(mode)
if mode=="meditation" then
while UO.Mana<UO.Int
UO.Exec("useskill Meditation")
wait(4000)
wend
endif
if mode=="bottle" then
if UO.Mana<UO.Int then
UO.UseType("0x0F0E","0x09DF")
wait(100)
endif
endif
end sub

############################################################
#   Проверка на превращение в демона
############################################################
sub checkmorph()
if UO.Mana<50 then
return true
endif
if UO.Str>300 then
return true
else
return false
end sub

############################################################
#   Проверка на координаты
############################################################
sub checkxy(CheckX,CheckY)
if UO.Injournal("spell fizzles") then
return true
endif
if UO.GetX()==val(CheckX) and UO.GetY()==val(CheckY) then
return true
else
return false
end sub

############################################################
#   Проверка на тип
############################################################
sub check(type)
uo.FindType(type, "-1", "ground")
if uo.findcount()>0 then
return true
else
return false
endif
end sub

############################################################
#   Проверка на лаги
############################################################
sub checklag()
repeat
UO.Click("self")
wait(500)
until UO.InJournal(UO.GetName("self"))
end sub

############################################################
#   Рекалл
############################################################
sub recall(type)
if type=="1" then
repeat
UO.DeleteJournal()
UO.Recall(MineBook,str(HomeRune+1))
wait(4000)
while checkxy(HomeX,HomeY)==false
wait(100)
wend
UO.Exec("terminate Visor")
until NOT UO.InJournal("spell fizzles")
endif
if type=="2" then
repeat
UO.DeleteJournal()
UO.Recall(MineBook,str(MineRune+1))
wait(4000)
while checkxy(MineX,MineY)==false
wait(100)
wend
UO.Exec("terminate Visor")
until NOT UO.InJournal("spell fizzles")
endif
if type=="3" then
repeat
UO.WaitTargetType(0x1F14)
UO.Cast("Recal")
wait(2000)
while checkxy(EscpX,EscpY)==false
wait(100)
wend
UO.Exec("terminate Visor")
until NOT UO.InJournal("spell fizzles")
endif
end sub

############################################################
#   Разгрузка и пополнение
############################################################
sub Mining()
wait(1000)
var cnt,itm
log(1,"","")
wait(500)
UO.UseObject(LoadContainer)
wait(500)
UO.UseObject(UnLoadContainer)
wait(500)
UO.WarMode(0)
lifeup("healing")
UO.Exec("useskill Meditation")
UO.FindType("0x1F4C","0x0000",LoadContainer)
UO.Grab("5","finditem")
wait(1000)
UO.Recall(MineBook,"1")
wait(500)
if UO.Count("0x0E20")>0 then
UO.WaitTargetType("0x1008")
UO.UseType("0x0E20")
wait(1500)
endif
UO.Exec("bandageself")
wait(1500)
DIM Item[13]
Var i
var Exit
Item[1]=0x19B9 ; >3 ore
Item[2]=0x19B7 ; 1 ore
Item[3]=0x19BA ; 2 ore
Item[4]=0x19B8 ; 3 ore
Item[5]=0x0F11 ; saphires
Item[6]=0x0F16 ; amethysts
Item[7]=0x0F18 ; tourmalines
Item[8]=0x0F15 ; citrines
Item[9]=0x0F10 ; emeralds
Item[10]=0x0F0F ; star sapphires
Item[11]=0x0F26 ; diamonds
Item[12]=0x1F4C ; recall scrolls
Item[13]=0x0EED ; gold

UO.SetReceivingContainer(UnLoadContainer) ; storecontainer
wait(500)
For i=1 to 13
Exit=0
repeat
UO.FindType(Item[i])
if UO.GetQuantity("finditem")>0 then
cnt=UO.GetQuantity("finditem")
itm=UO.GetColor("finditem")
if UO.GetGraphic("finditem")=="0x19B9" or UO.GetGraphic("finditem")=="0x19B7" or UO.GetGraphic("finditem")=="0x19BA" or UO.GetGraphic("finditem")=="0x19B8" then
log(2,itm,str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0EED" then
log(2,"gold",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F11" then
log(2,"saphires",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F16" then
log(2,"amethysts",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F18" then
log(2,"tourmalines",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F15" then
log(2,"citrines",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F10" then
log(2,"emeralds",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F0F" then
log(2,"star sapphires",str(cnt))
endif
if UO.GetGraphic("finditem")=="0x0F26" then
log(2,"diamonds",str(cnt))
endif
UO.Grab("0","finditem")
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
UO.Exec("warmode 0")
wait(100)
UO.WaitTargetType("0x1008")
UO.UseType("0x0E20")
wait(100)
if UO.Count("0x0E21") <= 10 then
UO.FindType("0x0E21","0x0000",LoadContainer)
UO.Grab("10","finditem")
wait(1500)
endif
if UO.Count("0x0F0E","0x09DF") <= 2 then
UO.FindType("0x0F0E","0x09DF",LoadContainer)
UO.Grab("5","finditem")
wait(1500)
endif
if UO.Count("0x0F0E","0x0631") < 1 then
UO.FindType("0x0F0E","0x0631",LoadContainer)
UO.Grab("1","finditem")
wait(1500)
endif
if UO.BM<20 then
UO.FindType("0x0F7B","0x0000",LoadContainer)
UO.Grab("20","finditem")
wait(1500)
endif
if UO.SS<10 then
UO.FindType("0x0F8D","0x0000",LoadContainer)
UO.Grab("10","finditem")
wait(1500)
endif
if UO.MR<20 then
UO.FindType("0x0F86","0x0000",LoadContainer)
UO.Grab("20","finditem")
wait(1500)
endif
if UO.BP<20 then
UO.FindType("0x0F7A","0x0000",LoadContainer)
UO.Grab("20","finditem")
wait(500)
endif
endif
log(3,"","")
wait(500)
if UO.Count(0x0e86)<1  then
if UO.Count(0x0e85)<1  then
UO.Exec("terminate all")
endif
endif
manaup("meditation")
recall("2")
UO.Exec("exec Visor")
move()
end sub

############################################################
#   Функция передвижения
############################################################
sub Move()
var cycle=0
var path=""
var test=0
var i=0
var j
var f=file(MiningDir+"mine_mov.dat")
If NOT f.Open() Then
Messagebox("Файл передвижения " +MiningDir +"mine_mov.dat не создан, Используйте record для записи")
return
EndIf
path = f.ReadString()
f.close()
UO.DeleteJournal()   
While i<LEN(path)
if VAL(path[i]) then
j=VAL(path[i])
i=i+1
else
j=1
endif
Repeat
if test<>1 then
UO.DeleteJournal()
mine_spot()
end if       
;UO.Print("Новая клетка")
if not make_step(path[i]) then
endif
j=j-1
Until j==0
i = i + 1
if cycle && i==LEN(path) then
i=0
endif
Wend
recall("1")
Mining()
UO.Exec("terminate Visor")
end sub

############################################################
#   Функция копания
############################################################
sub mine_spot()
var maxMineTime=8000
var times=0
var timeout=0
hide()
While UO.InJournal("There is no")==0
UO.DeleteJournal()
UO.WaitTargetTile("1339",STR(UO.GetX()),STR(UO.GetY()),"0")
if getpickaxe("0x0e86","0x0e85")==1 then
else
recall("1")
Mining()
UO.Exec("terminate Visor")
endif
timeout=0
times = times +1
if times>15 then
wait(maxMineTime)
times = 0
endif
Repeat
timeout=timeout+200
Wait(200)
Until UO.InJournal("You put") OR UO.InJournal("There is no") OR timeout>maxMineTime
if UO.weight>val(MaxWght) then
recall("1")
Mining()
UO.Exec("terminate Visor")
endif
if ignoretile()==1 then
return
endif
Wend
return 0
end sub

############################################################
#   Запись пути в файл
############################################################
sub record()
var x
var y
var path=""
UO.DeleteJournal()
Repeat
x=UO.GetX()
y=UO.GetY()
if waitNewPos(x,y) then
path=path+extract_dir(x,y,UO.GetX(),UO.GetY())
endif
Until UO.InJournal("stop")
path = compressPath(path)
var f=file(MiningDir +"mine_mov.dat")
If NOT f.Open() Then
f.Create()
Messagebox("Файл передвижения " +MiningDir +"mine_mov.dat создан")
endif
f.Writeln(path)
f.close()
;Messagebox("Файл передвижения " +MiningDir +"mine_mov.dat переписан")
end sub

############################################################
#   Функции кодирования и декодирования пути
############################################################
sub send_step(keycode,dir)
var x = UO.GetX()
var y = UO.GetY()
var timeout = 0
if UO.GetDir()<>dir then
UO.Press(keycode)
Repeat
wait(50)
Until UO.GetDir()==dir
endif
UO.Press(keycode)
Repeat
timeout=timeout+50
wait(50)
Until x<>UO.GetX() || y<>UO.GetY() || timeout>2000
if timeout>2000 then
return 0
endif
return 1
end sub

sub waitNewPos(x,y)
while x==UO.GetX() && y==UO.GetY()
if UO.InJournal("stop") then
return 0
endif
wend
return 1
end sub

sub compressPath(path)
Var i=0
Var j=0
Var newPath=""
while i<LEN(path)
j=1
while path[i]==path[i+1] AND j<9
i=i+1
j=j+1
wend
if j==1 then
newPath=newPath+path[i]
else
newPath=newPath+STR(j)+path[i]
endif
i=i+1
wend
return newPath
end sub

sub extract_dir(x,y,a,b)
if x>a then
if y==b then
return "i"
else
if y>b then
return "n"
else
return "w"
endif
endif
else
if x<a then
if y==b then
return "l"
else
if y>b then
return "e"
else
return "s"
endif
endif
else
if y>b then
return "o"
else
return "k"
endif
endif
endif
end sub

sub make_step(dir)
if dir=="e" then
send_step(39,1)
return 1
endif
if dir=="l" then
send_step(34,2)
return 1
endif
if dir=="s" then
send_step(40,3)
return 1
endif
if dir=="k" then
send_step(35,4)
return 1
endif
if dir=="w" then
send_step(37,5)
return 1
endif
if dir=="i" then
send_step(36,6)
return 1
endif
if dir=="n" then
send_step(38,7)
return 1
endif
if dir=="o" then
send_step(33,0)
return 1
endif
return 0
end sub

############################################################
#   Взятие кирки
############################################################
sub getpickaxe(apa,bpa)
if UO.Count(apa)>0 then
UO.UseType(apa)
return 1
else
if UO.Count(bpa)>0 then
UO.UseType(bpa)
return 1
else
Messagebox("Нет кирки")
return 0
endif
endif
end sub

############################################################
#   Хайдинг
############################################################
sub hide()
   while NOT UO.Hidden()
      UO.UseSkill('Hiding')
      wait(3000)
   wend
end sub

############################################################
#   Клетки с такими сообщениями будут пропускаться
############################################################
sub ignoretile()
if UO.InJournal("Try") then
return 1
endif
if UO.InJournal("Iron") then
return 1
endif
if UO.InJournal("Rusty") then
return 1
endif
if UO.InJournal("Old Copper") then
return 1
endif
if UO.InJournal("Copper") then
return 1
endif
if UO.InJournal("Dull Copper") then
return 1
endif
if UO.InJournal("Bronze") then
return 1
endif
if UO.InJournal("Silver") then
return 1
endif
if UO.InJournal("Shadow") then
return 1
endif
if UO.InJournal("Gold") then
return 1
endif
if UO.InJournal("Rose") then
return 1
endif
if UO.InJournal("Agapite") then
return 1
endif
if UO.InJournal("emerald") then
return 1
endif
if UO.InJournal("sapphire") then
return 1
endif
if UO.InJournal("diamond") then
return 1
endif
if UO.InJournal("star sapphire") then
return 1
endif
if UO.InJournal("amethyst") then
return 1
endif
if UO.InJournal("citrine") then
return 1
endif
if UO.InJournal("tourmaline") then
return 1
endif
return 0
end sub

############################################################
#   Определение названия руды по цвету
############################################################
sub colortostring(color)
if color=="0x0455" then
return "<font color=#0000ff>Black Rock Ore</font>"
endif
if color=="0x0028" then
return "<font color=#0000ff>Obsidian Ore</font>"
endif
if color=="0x008F" then
return "<font color=#ff0000><B>Sand Rock Ore</B></font>"
endif
if color=="0x010F" then
return "<font color=#ff0000><B>Krynite Ore</B></font>"
endif
if color=="0x09A4" then
return "<font color=#ff0000><B>Crystaline Ore</B></font>"
endif
if color=="0x09B9" then
return "<font color=#ff0000><B>Acid Ore</B></font>"
endif
if color=="0x09F0" then
return "<font color=#ff0000><B>Gorgan Ore</B></font>"
endif
if color=="0x09E6" then
return "<font color=#ff0000><B>Elvin Ore</B></font>"
endif
if color=="0x0085" then
return "<font color=#ff0000><B>Dragon Ore</B></font>"
endif
if color=="0x0BA7" then
return "<font color=#ff0000><B>Eldar Ore</B></font>"
endif
if color=="0x09D3" then
return "<font color=#ff0000><B>Steel Ore</B></font>"
endif
if color=="0x08AF" then
return "<font color=#ff0000><B>Plutonium Ore</B></font>"
endif
if color=="0x09DA" then
return "<font color=#ff0000><B>Vulcan Ore</B></font>"
endif
if color=="0x0060" then
return "<font color=#ff0000><B>Aqua Ore</B></font>"
endif
if color=="0x09EC" then
return "<font color=#ff0000><B>BloodCrest Ore</B></font>"
endif
if color=="0x0482" then
return "Silver Ore"
endif
if color=="0x052D" then
return "<font color=#0000ff>Mytheril Ore</font>"
endif
if color=="0x0032" then
return "Gold Ore"
endif
if color=="0x0488" then
return "Bronze Ore"
endif
if color=="0x04C2" then
return "<font color=#0000ff>Bloodrock Ore</font>"
endif
if color=="0x096B" then
return "Shadow Ore"
endif
if color=="0x0014" then
return "Rose Ore"
endif
if color=="0x07D5" then
return "<font color=#0000ff>Verite Ore</font>"
endif
if color=="0x0193" then
return "<font color=#0000ff>Agapite Ore</font>"
endif
if color=="0x00CE" then
return "<font color=#0000ff>Valorite Ore</font>"
endif
if color=="0x0750" then
return "Rusty Ore"
endif
if color=="0x060A" then
return "Dull Copper Ore"
endif
if color=="0x0590" then
return "Old Copper Ore"
endif
if color=="0x0088" then
return "Copper Ore"
endif
if color=="0x0000" then
return "Iron Ore"
endif
if color=="gold" then
return "<font color=#000000><B> Золотых монет</B></font>"
endif
if color=="sapphires" then
return "<font color=#00FF00><B> Saphires</B></font>"
endif
if color=="amethysts" then
return "<font color=#00FF00><B> Amethysts</B></font>"
endif
if color=="tourmalines" then
return "<font color=#00FF00><B> Tourmalines</B></font>"
endif
if color=="citrines" then
return "<font color=#00FF00><B> Citrines</B></font>"
endif
if color=="emeralds" then
return "<font color=#00FF00><B> Emeralds</B></font>"
endif
if color=="star saphires" then
return "<font color=#00FF00><B> Star saphires</B></font>"
endif
if color=="diamonds" then
return "<font color=#00FF00><B> Diamonds</B></font>"
endif

end sub

############################################################
#   Лог
############################################################
sub log(what,name,count)
var f=file(MiningDir+date()+".html")

if what==0 then
if not f.open() then
f.create()
f.writeln("<title>"+"Результаты копания "+date()+"</title><body text=#000000 bgcolor=#ffffff background=img/bg.jpg>")
f.writeln("<p align=center><font size=+1><b>Начало копания "+time()+"</b></font></p><Hr size=4>")
else
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln("<p align=center><font size=+1><b>Начало копания "+time()+"</b></font></p><Hr size=4>")
endif
f.close()
endif
############################################################
if what==1 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln("<p align=center><b>Сложил в сундук "+time()+"</b></p>")
f.close()
endif
############################################################
if what==2 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln(count+" "+colortostring(name)+"<BR>")
f.close()
endif
############################################################
if what==3 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln("<Hr size=1>")
f.close()
endif
############################################################
if what==4 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln("<p align=center><font size=+1><b>Смерть</b></font></p><p align=justify><img align=left src=img/ghost.gif>Скончался в "+time()+"<br>Скорее всего убийцей был <font color=#ff0000>"+name+"</font><br>&nbsp</p><Hr size=4>")
f.close()
endif
############################################################
if what==5 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln('<p align=center><font color=#ff0000><b>'+name+'</b></font></p><p align=justify><img align=left src="img/'+name+'.gif" width=80 height=80>Был выкопан в '+uo.GetGlobal("timeelem")+'<br>Был убит в '+uo.GetGlobal("timekill")+'<br>&nbsp<br>&nbsp</p><Hr size=1>')
f.close()
endif
############################################################
if what==6 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln('<p align=center><font color=#ff0000><b>'+name+'</b></font></p><p align=justify><img align=left src=img/killer.gif>Приходил в '+time()+'<br>')
f.close()
endif
############################################################
if what==7 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln('<p align=center><font color=#7f7f7f><b>'+name+'</b></font></p><p align=justify><img align=left src=img/criminal.gif>Приходил в '+time()+'<br>')
f.close()
endif
############################################################
if what==8 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln('<p align=center><font color=#7f7f7f><b>'+name+'</b></font></p><p align=justify><img align=left src=img/criminal.gif>Приходил в '+time()+'<br>')
f.close()
endif
############################################################
if what==9 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln('<p align=center><font color=#0000ff><b><font color=#ff0000>Нападение </font>'+name+'</b></font></p><p align=justify><img align=left src=img/killer.gif>Внезапно атаковал '+time()+'<br>')
f.close()
endif
############################################################
if what==10 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln('Успешно скрылся<br>&nbsp</p><Hr size=1>')
f.close()
endif
############################################################
if what==11 then
f.open()
repeat
safecall f.readln()
until f.eof() or fatal error
f.writeln("<Hr size=4>")
f.close()
endif

end sub

############################################################
#   Функция возвращения форматированной даты
############################################################
sub date()
var d=str(UO.Date()),month,day,ymd,ms
ymd=left(d,len(d)-2)
month=right(ymd,len(ymd)-1)
day=right(d,len(d)-3)
if month=="01" then
ms="Января"
endif
if month=="02" then
ms="Февраля"
endif
if month=="03" then
ms="Марта"
endif
if month=="04" then
ms="Апреля"
endif
if month=="05" then
ms="Мая"
endif
if month=="06" then
ms="Июня"
endif
if month=="07" then
ms="Июля"
endif
if month=="08" then
ms="Августа"
endif
if month=="09" then
ms="Сентября"
endif
if month=="10" then
ms="Октября"
endif
if month=="11" then
ms="Ноября"
endif
if month=="12" then
ms="Декабря"
endif
return day+" "+ms
end sub

############################################################
#   Функция возвращения форматированного времени
############################################################
sub time()
var hh,mm,ss,hms,t=str(UO.Time())
if len(t)<=2 then
hh="0"
mm="0"
ss=t
endif
if len(t)==3 then
hh="0"
mm=left(t,len(t)-2)
ss=right(t,len(t)-1)
endif
if len(t)==4 then
hh="0"
mm=left(t,len(t)-2)
ss=right(t,len(t)-2)
endif
if len(t)==5 then
hh=left(t,len(t)-4)
hms=left(t,len(t)-2)
mm=right(hms,len(hms)-1)
ss=right(t,len(t)-3)
endif
if len(t)==6 then
hh=left(t,len(t)-4)
hms=left(t,len(t)-2)
mm=right(hms,len(hms)-2)
ss=right(t,len(t)-4)
endif
return hh+":"+mm+":"+ss
end sub

############################################################
#   Хождение
############################################################
sub gotoxy(x,y,prec)
var ld=0,ldc=0
var dx,dy
var mx,my
var ox,oy,mk,k
#uo.print(">")
#uo.track("1",str(x),str(y))
start:
mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if
if dx<=prec then
return
end if
if not ldc then
#uo.print(STR(dx))
end if
if dx<3 then
mk=70
else
mk=15
end if

ox=mx
oy=my
for k=1 to mk
mx=UO.GetX()
my=UO.GetY()
if mx<>ox or my<>oy then
goto sdidapl
end if
wait(10)
next
sdidapl:

mx=UO.GetX()
my=UO.GetY()
dx=mx-x
if dx<0 then
dx=0-dx
endif
dy=my-y
if dy<0 then
dy=0-dy
endif
if dy>dx then
dx=dy
end if

if dx<=prec then
return
end if
if ld==dx then
ldc=ldc+1
if ldc>100 then
uo.print("Can not reach location!")
return
end if
else
ld=dx
end if

if mx==x then
if my==y then
return
endif

Рекомендуемые требования к компьютеру:

Минимальная конфигурация, на котором тестировался,
и сейчас благополучно работает скрипт без сбоев
- P3 800, память 256, видео Matrox G400
*На меньших системах скрипт к сожалению не тестировался

Рекомендуемые требования к игроку:

С максимальными характеристиками чар обходится одним БРОНЗОВЫМ
щитом в бою с элементалями.
Чем меньше боевые характеристики, тем лучше должен быть щит.

- STR 180-200
- DEX 90-100
- INT 50
- wrestling 60-100
- tactics 80-100
- parryng 80-100
- healing 80-100
- meditation 10-100
- magery 100
- mining 0-100

Ключевые особенности:

- возможность круглосуточного копания, только высшей руды
за сутки набирается примерно 100-150.
- быстрая настройка под любую шахту и любого, соответствующего
требованиям чара.
- скорость копания - копает без промедлений и задержек,
если выкапывается нежелательная руда, чар тут же
переходит на новую клетку и в то же время приступает
к раскопке новой клетки.
- убийство рудных элементалей - чар превращается в демона,
преследует, убивает элементалей, быстро поднимает руду
и телепортируется к дому.
- удобные иллюстрированные html логи, в которые записываются
все основные события процесса копания.
- максимальный контроль состояния чара, он никогда не пойдет
в шахту без маны или поврежденный, он восстановит себя
до предела, возьмет все нужные предметы с собой.
- стабильный уход от ПК, Криминалов, и атакующих синих чаров.
- улучшенная система телепортации.

Недостатки:

- невозможность копания для ПК и для Криминалов.
- отсутствие реконнекта.
- в скрипте исспользуются рекурсии, что приводит, к ошибкам на
слабых системах.
- несколько способов, позволяющих продвинутым ПК успевать
ловить чара.

Ход работы:

Дома. Открываются исспользуемые контейнеры, берутся свитки
Recall,перезаряжается рунная книга, складываются лишние вещи,
пополняется запас реагентов, бинтов и бутылок маны и т.д.,
персонаж лечится, медитирует, моет бинты и летит в шахту по
книге рун.
Шахта. Персонаж прячется и начинает копать по заранее
записанному маршруту, далее могут произойти события:
1) чар докапывает до предела, и благополучно летит домой по
книге рун.
2) выкапывается элементаль, чар пьет заранее взятую бутылку
невидимости, превращается в демона(если физл пьет ману и повтор),
лечится, берет щит, нападает, убивает, возвращается домой по
книге рун.
3) появляется ПК или Криминал - чар пьет бутылку невидимости,
и телепортируется по руне в ГЗ примерно за 4 секунды Там он
маркирует руну заново и летит домой по книге рун, отсиживается
5 минут.
4) копающий рядом синий персонаж вдруг нападает
Действие происходит по пункту 3).
5) копающий рядом синий персонаж вдруг выкапывает элементаля
Ваш чар действует по пункту 2).
Все сначала

зы.Я на форуме скопировал его а кто наваял забыл (Автору Респект.))))
Ex-Brodyaga
Junior Expert
Posts: 150
Joined: 2004-04-12 20:26:41

Post by Ex-Brodyaga »

Его по-моему Антис зовут.
CHiC777
Posts: 12
Joined: 2004-11-09 21:17:47
Contact:

ХМмммммммммм

Post by CHiC777 »

Все отлично последний скрипт очень хороший по описанию , ну так и не понял как его запускать , чтото не хочет ... Вроде запускаю "Start"
exec start он стоит у яшика нужного , Выбрасывает оры и медитируют вот и все , а дальше ? Почему не реколиться и т.д. , и еше путь к скипту мининг , к какому ?? PLz oпишите ... Буду очень признателен ..



WAITING FOR REPLY ..... Or po ICQ 52702571
.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

MAGICUS wrote:Рекомендуемые требования к компьютеру:

Минимальная конфигурация, на котором тестировался,
и сейчас благополучно работает скрипт без сбоев
- P3 800, память 256, видео Matrox G400
*На меньших системах скрипт к сожалению не тестировался


Гы... минимальные требования для скрипта... Дожили... :lol:
CHiC777
Posts: 12
Joined: 2004-11-09 21:17:47
Contact:

HELP!

Post by CHiC777 »

Народ ну помогите плз , как запускать , он чето не хочеТ!
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Antis' Mining

Post by I'm »

Что касается проблемы с реколом в скрипте Антиса то тебесюда
CHiC777
Posts: 12
Joined: 2004-11-09 21:17:47
Contact:

vvvvvvvv

Post by CHiC777 »

да нет я про вообше как запускать ...

exec .......?

И еше что за фигня нада указать путь к файлу , к какмоу ?!
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Путь к папке где находится сам скрипт, файл пути, и где будут создаваться отчеты. О как ;)
Fenixsis
Posts: 49
Joined: 2004-08-25 01:28:18

Post by Fenixsis »

ВОПРОС а именно как мне создать фаил ...
При включении оного
sub record()
var x
var y
var path=""
UO.DeleteJournal()
Repeat
x=UO.GetX()
y=UO.GetY()
if waitNewPos(x,y) then
path=path+extract_dir(x,y,UO.GetX(),UO.GetY())
endif
Until UO.InJournal("stop")
path = compressPath(path)
var f=file(MiningDir +"mine_mov.dat")
If NOT f.Open() Then
f.Create()
Messagebox("Файл передвижения " +MiningDir +"mine_mov.dat создан")
endif
f.Writeln(path)
f.close()
;Messagebox("Файл передвижения " +MiningDir +"mine_mov.dat переписан")
end sub


НЕ чего не меняется тоесть фаил не создается ..
И при включении скрипта пишет что фаил не создан и что его надо создать с помощью sub record()

Дак какже все же это делать блин ..
Post Reply