| Yoko http://forum.yoko.com.ua/ |
|
| мИНИНГ!! http://forum.yoko.com.ua/viewtopic.php?f=17&t=11576 |
Page 1 of 1 |
| Author: | st.Leshiy [ 2007-03-10 21:26:55 ] |
| Post subject: | мИНИНГ!! |
############################################################### #===---====----===---===---= Mining =---=-=-=-=-=--=-=-=-=-=-=# # Single char mining for VIP Mine. DRW Shard www.drw.ru # # Scripted by Savage (c) 2005 ICQ:33336141 # #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# # To start script use ",exec mine" command from client window # ############################################################### ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ;==================== Main mining script ====================== ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" sub mine() VAR DigDistance, TileNum, KillElemental VAR ElemSignal, LastTimer DIM BaseX[4], BaseY[4] VAR BaseZ, WayPoint, WayPoints VAR MaxWeight VAR i,j,TileY,TileX,DirX,DirY VAR Delta,BeginX,EndX,BeginY,EndY ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; TileNum='Num' - Use ",infotile" command on the floor ; Номер тайла в котором можно копать ,потыкайте командой ; ",infotile" по разнвм тайлам и посмотрите не отличаются ли их ; номера. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" TileNum='1339' ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; Максимальный вес, который может поднять чар. Ставьте его ; немного меньше реального. То есть если чар поднимает 760, то ; ставим 730. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" MaxWeight=400 ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; DigDistance=4 - Distance from tile where pickaxe targeting ; Радиус круга по которому будет копать чар, то есть расстояние ; до клетки куда можно дотянуться киркой. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" DigDistance=4 ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; KillElemental='Yes'/'No' - Use 'Yes' if char skilled to morph ; in daemon and wrestling > 50 ; Если чар достаточно прокачен чтоб бить элемов, ставьте 'Yes' ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" KillElemental='No' ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; ElemSignal='Off'/'On' - Play sound when elemental is digged ; Оповешать при появлении элема ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ElemSignal='On' ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; Здесь указываем координаты точек копания. Нужно встать на ; позицию и посмотреть координаты в инжекте. Их и нужно ; подставить вместо моих. Чара ставьте на 4 клетки от стен. ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" BaseX[0]=5915 BaseY[0]=1213 BaseZ=0 BaseX[1]=5904 BaseY[1]=1213 ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" ; Указываем количество точек копания ;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" WayPoints=2 CheckLag() UO.UseObject('Sunduk') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the') OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("Podoydi k sunduku i tkni v nego pricelom!") UO.AddObject('Sunduk') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() UO.UseObject('Sunduk') Else ; UO.Say("Ok! Viju sunduk.") Endif CheckLag() UO.UseObject('IronBag') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("V kakoy meshok kidat' Iron Ore") UO.AddObject('IronBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() Else ; UO.Say("Meshok dlya Iron Ore viju") Endif CheckLag() UO.UseObject('OtherBag') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("V kakoy meshok kidat' rudu?") UO.AddObject('OtherBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() Else ; UO.Say("Meshok dlya rudy viju.") Endif CheckLag() UO.UseObject('BestBag') LastTimer=UO.Timer() Repeat wait(500) Until UO.InJournal('You can') OR UO.InJournal('What is the')OR UO.Timer()>LastTimer+100 If UO.InJournal('see the') Then UO.Say("V kakoy meshok kidat' vihu?") UO.AddObject('BestBag') While UO.Targeting()==2 wait(500) Wend UO.SaveConfig() Else ; UO.Say("Meshok dlya vihi viju.") Endif While NOT UO.Dead() For WayPoint=0 to WayPoints-1 walkn(BaseX[WayPoint],BaseY[WayPoint],"") digitstay(MaxWeight,DigDistance,KillElemental,ElemSignal,BaseX[WayPoint],BaseY[WayPoint]) Next wend end sub ; Проверка нужности руды. Закоментировать то что нужно копать. sub CheckOre() VAR Cont=1, i=0, Exit=0 VAR Count=7 ; Сколько элементов в массиве. DIM Ores[15] Ores[0]="Iron" Ores[1]="Rusty" Ores[2]="Old Copper" Ores[3]="Dull Copper" Ores[4]="Copper" Ores[5]="Bronze" Ores[6]="Silver" ; Ores[7]="Shadow" ; Ores[8]="Rose" ; Ores[9]="Gold" ; Ores[10]="Agapite" ; Ores[11]="Blood Rock" ; Ores[12]="Verite" ; Ores[13]="Valorite" ; Ores[14]="Mytheril" While i<Count AND Exit==0 If UO.InJournal(Ores[i]) Then Cont=0 Exit=1 Endif ; UO.Print(STR(i)) ; UO.Print(Ores[i]) i=i+1 Wend return Cont end sub ;-------------------- Try to mine under self ------------------ sub digitstay(MaxWeight,MaxDistance,KillElemental,ElemSignal,BaseX,BaseY) VAR x,y,z='0',TileNum='1339' VAR Last=0,LastTimer, ContFlag=1 VAR MaxTimer=110 For x=-MaxDistance to MaxDistance For y=-MaxDistance to MaxDistance Repeat CheckLag() ; deleting journal ToHide() UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z) UO.UseType('0x0E85') LastTimer=UO.Timer() Repeat wait(500) until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR LastTimer+200<UO.Timer() If NOT UO.InJournal('There is no') then ContFlag=CheckOre() Endif If UO.InJournal('You loosen') then repeat wait(500) until UO.InJournal("You put") OR LastTimer+MaxTimer<UO.Timer() Endif If UO.InJournal('something with ore') OR UO.InJournal("attacking you") then If ElemSignal=='On' Then Gong(2) Endif If KillElemental=='Yes' Then KillElem() walkn(BaseX,BaseY,"") Else ; any user defined command when char digget elemental Endif Endif If UO.InJournal("attacking you") then gong(3) Endif If UO.Weight>=MaxWeight then unloadore() Endif Until UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("Try mining") OR ContFlag==0 Next Next end sub ;------------------------- Unload ore ------------------------- sub unloadore() VAR TempX,TempY,i,Exit, Exit1, ConTainer, j VAR SundukX=5902 VAR SundukY=1214 VAR Index=14 ; количество элементов массива DIM Ore[5], Colors[20] Colors[0]="0x09F0" ; Gorgan Colors[1]="0x09D3" ; Steel Colors[3]="0x0BA7" ; Eldar Colors[4]="0x08AF" ; Plut Colors[5]="0x0085" ; Dragon Colors[6]="0x0060" ; Aqua Colors[7]="0x09E6" ; Elvin Colors[8]="0x010F" ; Krinit Colors[9]="0x09DA" ; Vulkan Colors[10]="0x09EC" ; Blood Crest Colors[11]="0x008F" ; Sand Rock Colors[12]="0x09B9" ; Acid Colors[13]="0x09A4" ; Crystaline TempX=UO.GetX() TempY=UO.GetY() walkn(SundukX,SundukY,"") ToHide() UO.UseObject("Sunduk") Ore[0]=0x19B9 ; 4 and more ore Ore[1]=0x19B7 ; 1 ore Ore[2]=0x19BA ; 2 ore Ore[3]=0x19B8 ; 3 ore For i=0 to 3 Exit=0 repeat UO.FindType(Ore[i]) if UO.GetQuantity('finditem')>0 then If UO.GetColor('finditem')=='0x0000' Then Container=UO.GetSerial('IronBag') Else Container=UO.GetSerial('OtherBag') Exit1=0 j=0 While j<Index AND Exit1<>1 If UO.GetColor('finditem')==Colors[j] Then Container=UO.GetSerial('BestBag') Exit1=1 Endif j=j+1 Wend Endif UO.MoveItem('finditem',0,Container) CheckLag() wait(1000) Else Exit=1 endif until Exit==1 Next walkn(TempX,TempY,"") ToHide() end sub ;----------- Morf in Daemon, kill elem and loot him ----------- sub killelem() VAR Count, LastTimer, Elem UO.UseType('0x0F0E','0x0631') ; inviz potion While UO.STR<201 ; U'r not morfed char max Strength + 1 If UO.Mana>=50 then UO.WaitMenu('What','Daemon') UO.Cast('Polymorph') wait(8000) else UO.UseType('0x0F0E','0x09DF') ; total mana potion wait(3000) endif Wend LastTimer=UO.Timer() repeat UO.BandageSelf() wait(4000) until UO.Life==UO.STR OR LastTimer+300<UO.Timer() UO.UseType(0x1B76) ; heater shield UO.UseType(0x1413) ; platemail gorget UO.DeleteJournal() UO.Exec('warmode 1') UO.FindType('0x0010',-1,'ground') Elem=UO.GetSerial('finditem') UO.Attack(Elem) repeat wait(1000) If UO.Life<50 Then UO.UseType('0x0F0E','0x09BB') ;GH Endif If UO.GetDistance(Elem)>1 Then walkn(0,0,Elem) Endif until UO.IsNPC(Elem)==0 wait(3000) UO.WaitTargetGround('0x19B9') ; 4 and more ore wait(1500) UO.Grab('all') UO.WaitTargetGround('0x19B8') ; 3 ore wait(1500) UO.Grab('all') UO.WaitTargetGround('0x0EED') ; gold coins wait(500) UO.Grab('all') UO.FindType('0x0010',-1,'ground') If UO.GetQuantity('finditem')>0 Then KillElem() Endif UO.Exec('warmode 0') wait(1000) UO.Print("Sdoh skotina!") LastTimer=UO.Timer() if UO.Life<200 then ; U'r max HP repeat UO.BandageSelf() wait(4000) until UO.Life>200 OR LastTimer+300<UO.Timer() endif UO.DeleteJournal() end sub ############################################################### ############################################################### ; ; Shared Subs ; ############################################################### ############################################################### #============================================================== # tohide() - try hidding char. When char lose HP, drink inviz # potion if it found in backpack # # Journal has been deleted!!! #-------------------------------------------------------------- sub tohide() while NOT UO.Hidden() UO.DeleteJournal() UO.FindType('0x0F0E','0x0631','my') if UO.Life<UO.STR/2 AND UO.GetQuantity('finditem')>0 then UO.UseType('0x0F0E','0x0631') ; inviz potion UO.Exec('warmode 0') wait(2000) else UO.Exec('warmode 0') UO.UseSkill('Stealth') repeat wait(50) until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preoccupied') endif wend end sub #============================================================== # CheckLag() - click on backpack and awaiting "backpack" # message in journal. # # Journal has been deleted!!! #-------------------------------------------------------------- sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(500) until UO.InJournal('backpack') end sub #============================================================== # Gong(counter) - playing wav-file 'counter'-times # http://www.jetta.ru/cow.wav #-------------------------------------------------------------- sub Gong(times) ; play wav-file VAR i for i=1 to times UO.Exec("playwav d:\game\uo\injection\cow") wait(1200) ; time to play sample at once next end sub #============================================================== # Alarm() - when char lose some HP, U are informed #-------------------------------------------------------------- sub Alarm() VAR CharHP=150 while 1==1 wait(1000) if UO.Life<CharHP then gong(1) endif wend end sub ;---------------- Ходилка ----------------------- sub GoW() VAR walkwait=300 VAR x,y,dir=6 VAR key=36 ; Home key x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetX()+1==x Then return -1 Else return 1 Endif end sub sub GoN() VAR walkwait=300 VAR x,y,dir=0 VAR key=33 ; PgUp x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetY()+1==y Then return -1 Else return 1 Endif end sub sub GoE() VAR walkwait=300 VAR x,y,dir=2 VAR key=34 ; PgDown x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetX()-1==x Then return -1 Else return 1 Endif end sub sub GoS() VAR walkwait=300 VAR x,y,dir=4 VAR key=35 ; End x=UO.GetX() y=UO.GetY() while UO.GetDir()<>dir UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif wend UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetY()-1==y Then return -1 Else return 1 Endif end sub sub GoWN() VAR walkwait=300 VAR x,y,dir=7 VAR key=38 ; UpArrow x=UO.GetX() y=UO.GetY() If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub sub GoNE() VAR walkwait=300 VAR x,y,dir=1 VAR key=39 ; RightArrow x=UO.GetX() y=UO.GetY() If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub sub GoSE() VAR walkwait=300 VAR x,y,dir=3 VAR key=40 ; DownArrow x=UO.GetX() y=UO.GetY() If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub sub GoSW() VAR walkwait=300 VAR x,y,dir=5 VAR key=37 ; LeftArrow x=UO.GetX() y=UO.GetY() If UO.GetDir()<>dir Then UO.Press(key) wait(walkwait) If UO.GetDir()<>dir Then CheckLag() Endif Endif If UO.GetDir()==dir Then UO.Press(key) wait(walkwait) If x==UO.GetX() AND y==UO.GetY() Then CheckLag() Endif If UO.GetDir()==dir Then return -1 Else return UO.GetDir() Endif Else return UO.GetDir() Endif end sub #============================================================== # WalkN(X,Y,Serial) - char is walking by dX and dY step # sub using Home, End, PgUp, PgDown keys # d'not rebind this key from default action! # walkwait - delay after keypress #-------------------------------------------------------------- sub WalkN(x,y,Target) VAR i VAR dx,dy,Exit=0 While Exit<>1 If Target<>"" Then dx=UO.GetX(Target)-UO.GetX() dy=UO.GetY(Target)-UO.GetY() ; UO.Print("Target locked!") If UO.GetDistance(Target)<2 Then Exit=1 Endif Else dx=x-UO.GetX() dy=y-UO.GetY() If dx==0 AND dy==0 Then Exit=1 Endif Endif If dx<>0 AND dy<>0 Then If dx>0 AND dy>0 Then GoSE() Endif If dx>0 AND dy<0 Then GoNE() Endif If dx<0 AND dy>0 Then GoSW() Endif If dx<0 AND dy<0 Then GoWN() Endif Endif If dx<>0 AND dy==0 Then If dx>0 Then GoE() Endif If dx<0 Then GoW() Endif Endif If dx==0 AND dy<>0 Then If dy>0 Then GoS() Endif If dy<0 Then GoN() Endif Endif Wend end sub подправьте плз скрипт он не кладёт в мешок руду |
|
| Author: | st.Leshiy [ 2007-03-11 06:49:30 ] |
| Post subject: | |
короч трабл в том что я сначала все прицелы в 1 мешок тыкнул можна ща какнить изменить шоб в разные мешки руду клал?патамучта так он чет не кладёт |
|
| Author: | Mihail [ 2007-03-11 16:58:00 ] |
| Post subject: | |
крута какое граматное объяснение что к чиму! сразу все становится четко и ясно! отдельное спасибо за то что использовал тег [code]! - а теперь вали отсюда и не возвращайся пока: 1. не научишься четко излагать свои мысли 2. не появится элементарное уважение к этому форуму, его особенностям и обитателям 3. не попытаешься что-то сделать САМ, благо уроков хватает |
|
| Author: | Nmy [ 2007-03-13 15:58:10 ] |
| Post subject: | |
тема закрыта по причине неуважения автора з.ы. послан это ты |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|