Держи Скрипт а то у тя маленький и не рабочий)))))
В низу инфа.
Code: 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> </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> <br> </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> </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).
Все сначала
зы.Я на форуме скопировал его а кто наваял забыл (Автору Респект.))))
|