Собственно вот скрипт, писал сам, дописал на днях, еще не тестил
Code: #################################################################################################################### #_Mining for Forgotten World v1.0_#####_Crafted by SaUroN_########################################################## #################################################################################################################### #_Для работы скрипта вам понадобится: дом, руна к дому, 2 сундука, в первом должно быть: много кирок, много_######## #_тотал манок, много инвизок, много регов, во второй будет складываться руда, так же вам понадобится_############### #_мин 90% магии для убийства элементалей, 5 рун в бэкпаке, в различные шахты. ВНИМАНИЕ!!!: руны должны_############# #_быть замарчены следующим образом, чар ходит по квадруту 5 на 5 тайтлов (шагов) и копает руду,_#################### #_при этом руна дожна быть замарчена в левом верхнем углу этого квардарта, так же вам нужно учитывать то что_####### #_чар не будет обходить препятствия, поэтому выбирайте шахты по просторнее, при убийстве элементаля чар отходит_#### #_от него на 3 тайтла (шага) вниз, руна к дому должна быть замарчена напротив входа, в 5 тайтлах (шагах)_########### #_от него, чар будет входить в дом путем ходьбы на северо-восток._################################################## #################################################################################################################### #_Принцип работы скрипта: чар стоит в доме, набирает все необходимое из первого сундука, телепортируется_########### #_в шахту, копает, как только выкапывает все вокруг себя, переходит на следующее место, при появлении эелементаля_## #_убавет его и лутает, продолжает копать, при появлении других игроков, телепортируется в следующую шахту,_######### #_затем продолжает копать, при наборе максимального веса чар телепортируется к дому, подходит вплотную к двери,_#### #_использует детект хид, кастует Reveal на себя, если в радиусе 3м никого не обнаруживает,_######################### #_за пол секунды=>(открывает дверь, залетает в дом, закрывает дверь), проходит к дальней стенке дома, где стоят_#### #_сундуки, затем складывает руду во второй сундук, набирает все необходимое и телепортируется в следующую _######### #_шахту, при обкопке меняет сломавшиеся кирки._##################################################################### #################################################################################################################### sub Mining() uo.setglobal('per1', '0') wait(100) uo.setglobal('per2', '1') wait(100) uo.setglobal('per3', '0') wait(100) uo.setglobal('per4', '1') uo.print('Укажите сундук с регами, кирками, инвизками, манками') uo.exec('addobject Sunduk1') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите сундук для руды') uo.exec('addobject Sunduk2') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите дверь в дом') uo.exec('addobject Door') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну к дому') uo.exec('addobject Home') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 1') uo.exec('addobject mine1') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 2') uo.exec('addobject mine2') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 3') uo.exec('addobject mine3') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 4') uo.exec('addobject mine4') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 5') uo.exec('addobject mine5') while uo.targeting() wait(100) wend uo.deletejournal() uo.exec('exec CheckingItems') end sub
sub CheckingItems() if val(uo.getglobal('per1')) == 1 then DIM Ore[4] Ore[0] = '0x19B9' Ore[1] = '0x19B7' Ore[2] = '0x19BA' Ore[3] = '0x19B8' for var a = 0 to 3 uo.findtype(Ore[a]) while uo.findcount() > 0 uo.moveitem('finditem', '-1', 'Sunduk2') wait(1000) uo.findtype(Ore[a]) wend next endif uo.setglobal('per1', '1') DIM Reg[6] Reg[0] = '0x0F7A' Reg[1] = '0x0F7B' Reg[2] = '0x0F86' Reg[3] = '0x0F84' Reg[4] = '0x0F8C' Reg[5] = '0x0F88' VAR b for b = 0 to 5 if uo.count( Reg[b] ) < 20 then uo.findtype( Reg[b], '-1', 'Sunduk1') if uo.findcount() > 0 then uo.moveitem('finditem', '20') wait(1000) else uo.print('Нет необходимого количества регов в сундуке') wait(1000) return endif endif next DIM Botl[2] Botl[0] = '0x0F09' Botl[1] = '0x0F08' VAR c for c = 0 to 1 if uo.count( Botl[c] ) < 5 then uo.findtype( Botl[c], '-1', 'Sunduk1') if uo.findcount() > 0 then uo.moveitem('finditem', '5') wait(1000) else uo.print('Нет необходимого количества ботлов в сундуке') wait(1000) return endif endif next uo.findtype('0x0E85') while uo.findcount() < 7 uo.findtype('0x0E85', '-1', 'Sunduk1') if uo.findcount() > 0 then uo.moveitem('finditem', '1') else uo.print('Нет необходимого количества кирок в сундуке') wait(500) return endif wait(1000) wend end sub
sub KillElemental() VAR a, b, c, d, e for a = 1 to 3 uo.press(40) wait(300) next wait(1000) uo.usetype('0x0F08') wait(100) uo.exec('exec CheckingInvis') uo.set('finddistance', '5') uo.findtype( '0x000E', '-1', '1' ) b = uo.getserial('finditem') step1: if uo.Mana < 50 then uo.usetype('0x0F09') wait(500) endif uo.waittargetobject('b') uo.cast('Energy Vortex') wait(7000) if uo.injournal('fizzles') then wait(1000) uo.deletejournal('fizzles') goto step1 else while not uo.injournal('Body of') uo.set('finddistance', '12') uo.findtype( '0x000D', '-1', '1' ) c = uo.getserial('finditem') if not uo.findcount() > 0 then goto step1 else wait(5000) endif wend uo.deletejournal('Body of') step2: if uo.Mana < 20 then uo.usetype('0x0F09') wait(100) endif uo.waittargetobject('c') uo.cast('Dispel') wait(5000) if uo.injournal('fizzles') then wait(1000) uo.deletejournal('fizzles') goto step2 endif for d = 1 to 3 uo.press(38) wait(300) next wait(1000) if uo.weight > 600 then uo.exec('exec GoHome') wait(100) uo.exec('terminate Obkopka') return endif DIM item[2] item[0] = '0x1BF5' item[1] = '0x0EED' uo.useobject('lastcorpse') wait(1000) for e = 0 to 1 uo.findtype( item[e], '-1', 'lastcorpse') while uo.findcount() > 0 uo.moveitem('finditem') wait(1000) wend next end sub
sub CheckingInvis() uo.deletejournal() while not uo.injournal('An Ort') if uo.injournal('revealed') then uo.deletejournal('revealed') uo.usetype('0x0F08') else wait(500) endif wend uo.deletejournal('An Ort') end sub
sub Teleportation() VAR a step1: if uo.Mana < 11 then uo.usetype('0x0F09') wait(300) endif if val(uo.getglobal('per2')) == 1 then uo.waittargetobject('mine1') uo.cast('Recall') endif if val(uo.getglobal('per2')) == 2 then uo.waittargetobject('mine2') uo.cast('Recall') endif if val(uo.getglobal('per2')) == 3 then uo.waittargetobject('mine3') uo.cast('Recall') endif if val(uo.getglobal('per2')) == 4 then uo.waittargetobject('mine4') uo.cast('Recall') endif if val(uo.getglobal('per2')) == 5 then uo.waittargetobject('mine5') uo.cast('Recall') endif wait(3000) if uo.injournal('fizzles') then wait(500) uo.deletejournal('fizzles') goto step1 endif a = val(uo.getglobal('per2')) + 1 wait(100) uo.setglobal('per2', str(a)) if val(uo.getglobal('per2')) > 5 then uo.setglobal('per2', '1') endif uo.setglobal('per3', '0') wait(100) uo.exec('exec CheckingPK') wait(100) uo.exec('exec Obkopka') end sub
sub CheckingPK() while uo.Life > 0 uo.set('finddistance', '12') uo.findtype('0x0190', '-1', '1') if uo.findcount() > 1 then uo.usetype('0x0F08') wait(100) Taleportation() wait(100) return else wait(1000) endif wend end sub
sub GoHome() uo.exec('terminate CheckingPK') uo.deletejournal() VAR a, b step1: if uo.Mana < 11 then uo.usetype('0x0F09') wait(300) endif uo.waittargetobject('Home') uo.cast('Recall') wait(3000) if uo.injournal('fizzles') then wait(500) uo.deletejournal('fizzles') goto step1 endif for a = 1 to 5 uo.press(33) wait(300) next uo.useskill('Detect Hidden') wait(4000) step2: if uo.Mana < 20 then uo.usetype('0x0F09') wait(300) endif uo.cast('Reveal', 'self') wait(4000) if uo.injournal('fizzles') then wait(500) uo.deletejournal('fizzles') goto step2 endif uo.set('finddistance', '3') uo.findtype('0x0190', '-1', '1') if uo.findcount() > 1 then return endif uo.useobject('Door') wait(500) uo.press(33) uo.useobject('Door') for b = 1 to 6 uo.press(33) wait(300) next uo.exec('exec CheckingItems') end sub
sub Obkopka() step1: VAR mx, my, mz, a, b, c mx = uo.getx('self') my = uo.gety('self') mz = uo.getz('self') uo.deletejournal() for a = mx-2 to mx+2 for b = my-2 to my+2 while not uo.Hidden() uo.warmode('0') uo.useskill('Stelth') wait(4000) wend uo.print('Копаем тут: '+str(mx-a)+' '+str(my-b)) c = val(uo.getglobal('per3')) + 1 wait(100) uo.setglobal('per3', str(c)) while not uo.injournal('no ore here') and not uo.injournal('far away') uo.deletejournal() if uo.waiting() then uo.canceltarget() else wait(100) endif uo.waittargettile('1341', str(a), str(b), str(mz)) uo.usetype('0x0E85') while not uo.injournal('You put') and not uo.injournal('no ore') and not uo.injournal('but fail') and not uo.injournal('far away') and not uo.injournal('broken') wait (500) wend uo.set('finddistance', '5') uo.findtype( '0x000E', '-1', '1' ) if uo.findcount() > 0 then KillElemental() else wait(100) endif if val(uo.getglobal('per3')) > 25 then uo.setglobal('per3', '0') ChengePlace() goto step1 else wait(100) endif if uo.weight > 600 then uo.exec('exec GoHome') wait(100) return else wait(100) endif wend uo.deletejournal() next next goto step1 end sub
sub ChengePlace() VAR a, b, c, d if val(uo.getglobal('per4')) > 3 then uo.setglobal('per4', '1') uo.exec('exec Teleportation') wait(100) uo.exec('terminate Obkopka') return endif if val(uo.getglobal('per4')) == 1 then for a = 1 to 5 uo.press(40) wait(300) next endif if val(uo.getglobal('per4')) == 2 then for b = 1 to 5 uo.press(39) wait(300) next endif if val(uo.getglobal('per4')) == 3 then for c = 1 to 5 uo.press(38) wait(300) next endif d = val(uo.getglobal('per4')) + 1 wait(100) uo.setglobal('per4', str(d)) end sub
|