Page 1 of 2

Кому надо покопайтесь =)

Posted: 2004-08-23 04:30:37
by Antis
По мне - лучший в мире скрипт на мининг, делал для себя поэтому может и работает тока у меня. Просто скажу, что с его с помощью я разбогател за 3 месяца так, что до сих пор деньги не кончились(хотя и играю редко). Написал для UO.DRW.RU сорри инструкцию неохота писать, в скрипте есть небольшая но еще пару ньюансов надо вспоминать.

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
if my>y then
#UO.Print("UR")
UO.Press(33)
goto start
endif
#UO.Print("DL")
UO.Press(35)
goto start
end if
if mx<x then
if my>y then
#UO.Print("R")
UO.Press(39)
goto start
endif
if my==y then
#UO.Print("DR")
UO.Press(34)
goto start
endif
#UO.Print("D")
UO.Press(40)
goto start
end if
if my<y then
#UO.Print("L")
UO.Press(37)
goto start
endif
if my==y then
#UO.Print("LU")
UO.Press(36)
goto start
endif
#UO.Print("U")
UO.Press(38)
goto start
end sub

############################################################
#   Остановка скрипта
############################################################
sub Stop()
log(11,"","")
wait(500)
UO.Exec("terminate all")
end sub

############################################################
#   Конец скрипта
############################################################


Блин, щас просмотрел код и увидел, где я пару раз ламернулся, например Checklag Хе! Ну да лана, зато прикольно когда домой с работы приходиш, открываеш результаты в хтмл и смотриш...., а потом сундук, и считаеш..., а потом вчерашний лог смотриш и т.д. наслаждение.

Если кто попытается его себе приспособить, у него получится и он тут отпишется буду только рад, могу даже изображения для HTML лога скинуть, тока скажите - где у вас тут в интернете Uppload?

Posted: 2004-08-23 04:37:05
by Antis
Функции передвижения по шахте взяты из Ultimate Mining Script
А логи выглядят примерно так http://antis.narod.ru/ (тока картинки, падлы не закачались)

Posted: 2004-08-24 00:41:22
by evil_Gremlin
есть пару интересных идей
и пару функций, которые все в лом было писать :)
в общем неплохо, единственное, что скрипт твой может сбиватся на лагах, т..к ты используешь в большинстве временные задержки

Posted: 2004-08-24 14:56:58
by BETEPAH
Скрипт не плох нету спору....... Но мой раз в 7 меньше и проще
И единственое что у меня в нем не стоит это проверка на имена крыс и бой с элемом (попровить 5 мин)
А идея с лог файлом в формате Хтмл просто гениальна.
Если ты его действительно сам написал а не слизал то могу сказать что ты.... Умница

Posted: 2004-08-24 16:10:43
by chip
BETEPAH wrote:Скрипт не плох нету спору....... Но мой раз в 7 меньше и проще
И единственое что у меня в нем не стоит это проверка на имена крыс и бой с элемом (попровить 5 мин)
А идея с лог файлом в формате Хтмл просто гениальна.
Если ты его действительно сам написал а не слизал то могу сказать что ты.... Умница

что за инвалид индекс на твоем скрипте ??

Posted: 2004-08-25 10:24:15
by BETEPAH
chip wrote:
BETEPAH wrote:Скрипт не плох нету спору....... Но мой раз в 7 меньше и проще
И единственое что у меня в нем не стоит это проверка на имена крыс и бой с элемом (попровить 5 мин)
А идея с лог файлом в формате Хтмл просто гениальна.
Если ты его действительно сам написал а не слизал то могу сказать что ты.... Умница

что за инвалид индекс на твоем скрипте ??

Я уже отвечал ....... возможно что изменен вид и цвет рунки (перевернутая или на шарде изменен ее вид)

Posted: 2004-09-02 02:49:55
by Kukarach
Ягать...смотрю я на вас и думаю: какой я все-же ламо...
Никто не пробивал скрипт на о1, ну понятно без всяких там Эльвин руд, подредактирован так сказать, он рабочий на о1, ГМ не запалят?

Posted: 2004-09-02 18:00:23
by kpakep
BETEPAH wrote:
chip wrote:
BETEPAH wrote:Скрипт не плох нету спору....... Но мой раз в 7 меньше и проще
И единственое что у меня в нем не стоит это проверка на имена крыс и бой с элемом (попровить 5 мин)
А идея с лог файлом в формате Хтмл просто гениальна.
Если ты его действительно сам написал а не слизал то могу сказать что ты.... Умница

что за инвалид индекс на твоем скрипте ??

Я уже отвечал ....... возможно что изменен вид и цвет рунки (перевернутая или на шарде изменен ее вид)

вот бы только его доделать для вип пешер.... ВЕТЕР если бы ты смог , то тыбы стал Супер папкой

Posted: 2004-09-02 19:41:42
by BETEPAH
для випа ?....так скрипт Savage.....
хотя и я могу свой модернизировать

Posted: 2004-09-03 01:46:40
by evil_Gremlin
Извиняюсь за оффтоп, но не советую становится супер-папкой.
Проблем с детьми не оберешься :)

Posted: 2004-09-04 23:34:00
by Kukarach
evil_Gremlin wrote:Проблем с детьми не оберешься :)

Аха, точно дедушка пенсионер...

Posted: 2004-09-05 12:19:30
by zarg
А напиши плиз нструкцию для полного счастья..

Posted: 2004-09-05 21:06:49
by BETEPAH
Kukarach wrote:
evil_Gremlin wrote:Проблем с детьми не оберешься :)

Аха, точно дедушка пенсионер...


Сам ты ...Старик Похабыч

Posted: 2004-09-07 08:20:14
by Revenant
Инструкция для полного счастья: :)

sub Happy()
VAR Money=99999999
repeat
RL.Take(Money)
RL.Eat
RL.ToShit
RL.Play(UO)
RL.FuckObjektType(Women)
RL.Sleep(me)
While not RL.Journal('awake') and not RL.Journal('smels good')
wait(1000)
wend
until RL.Dead
end sub

Вписать обьект Women

Posted: 2004-09-07 09:35:45
by Kazoo
=))

Posted: 2004-09-20 04:43:21
by Sinator
Antis дай свою ICQ !! Или запеши мою ..... 283571724

Posted: 2004-09-21 10:14:14
by gmur
Antis, спасибо тебе огромное, взял у тебя со скрипта идею с загрузкой регов, просто супер, спасибо...

Posted: 2004-09-21 10:15:43
by Sinator
ОТЛИЧНЫЙ СКРИПТ !!!! СУПЕР !!! Сумел настроить .... но проблема в том что мне нужно чтобы он ненужную руду скидывал себе под ноги и шол дальше ! Как это зделать в этом скрипте ????

Posted: 2004-10-03 12:12:59
by infected
Скрипт хороший, тока у меня есть небольшая поблемка с ним, он
не рекалится домой при попытке улететь он пишет "You need a Recall Scroll to
recharge a runebook." Скрипт нажимает на кнопку "Recharge Book" а не не слот с
рункой, как ето исправить?

Заранее спасибо.

Posted: 2004-10-15 21:05:14
by Antis
Скорее всего это происходит когда ты стоиш у дома, в этом случае, скрипт берет из сундука скроллы рекалл, и просто навсякий случай перезаряжает буку, значит в сундуке нет этих скроллов у тебя или скрипт их не может подобрать. А других случаев быть недолжно.

И еще : скрипт настроен на то, что в сундуке дожны быть реги на рекалл, реги на полиморф в демона, куча щитов хеатеров, куча бинтов, бутылок невидимости, рекаллов и непомню дальше =).