Собственно есть скрипт на мининг. Помогите туда добавить что бы если он выкапывал элементаля, то убивал его вслучае если элементаль отошел то подходил к нему и бил дальше (это если убивать катаной) и хилился если мало хитов (самое главное что выкопаные элементали вызывают других элементалей сделать так называемую проверку всех ли элементалей убили.). Вариант морфа в демона не подходит. Заранее благодарен за помощь ОТЦАМ ИНЖЕКТА!
Code: ########################################################################################################################### #_Mining for Forgotten World v1.2_###_Crafted by SaUroN_################################################################### ########################################################################################################################### # ДЛЯ РАБОТЫ СКРИПТА ВАМ ПОНАДОБИТСЯ: # # 1. Мин 90% Magery, для убийства элементалей. # # 2. Дом 1шт. # # 3. Сундуки 2шт. # # 4. В одном из сундуков много инвизок, реагов, кирок. # # # # ОСОБЕННОСТИ ШАРДА: # # 1. Невероятно быстрые и сильные елементали. # # 2. Очень быстро ломаются кирки. # # 3. Очень маленькое расстояние копки от -2 до 2. # # 4. Очень мало руды в одной точке, чар выкапывает все вокруг себя за 5 мин. # # 5. Мобы видят вас в хиде. # # # # ПРИНЦИП РАБОТЫ СКРИПТА: # # 1. Чар постоянно добирает необходимое количество регов, бутылок, кирок из сундука в доме, возвращается на прежнее # # место копки и продолжает копать в тех координатах в которых остановился # # 2. Чар убивает элементалей, как выкопанных до вас так и вами. # # 3. Чар телепортируется в следующую шахту от игроков любого цвета. # # 4. Когда чар выкапывает все вокруг себя, переходит на следующее место и так ходит по кругу. # # 5. Когда чар проходит полный круг он телепортируется в следующую шахту. # # 6. При наборе максимального веса в 600 телепортируется в дом и все выкопаное складывает в сундук, добирает необходимое. # # 7. После телепортации в дом, чар входит в дом, при этом дверь в дом будет открыта в течение 0.5 сек. # # # # РЕКОМЕНДАЦИИ ПО РАБОТЕ СО СКРИПТОМ: # # 1. Чар ходит и копает по кругу против часовой стрелки. # # 2. Руны в шахты должны бить замарчены в левой центральной части круга по которому будет ходить чар. # # 3. Т.к. в сам дом телепортация невозможна, чар будет входить в него самостоятельно, при этом руна в # # дом должна быть замарчена паралельно входу, не дальше чем в 5ти шагах (тайтлах). # # 4. Для проверки правельности марка руны встаньте вплотную к двери дома со стороны # # улицы и проидите 5 шагов в пенпендикулярном направлении относительно двери, там замарчте руну в дом. # # 5. !!!ВНИМАНИЕ!!! перед запуском скрипта нажмите Enter и ничего больше не печатайте во время # # работы скрипта, если курсор чата не будет стоять в начале строки, то в скрипте не сработает # # команда uo.press(**), отвечающая за перемещение чара. # # 6. Укажите все используемые обьекты, затем обязательно сложите все # # используемые руны в банк, да бы не потерять их при фосмажорных обстоятельствах, # # в первой сроке скрипте присваемое значение перременной "а" поменяйте на "а = 0", запустите скрипт еще раз. # # 7. Используйте скрипт TestPlace для проверки правельности марка рун в шахты. # # 8. сам же скрипт запускается в доме, запускать нужно Mining. # ########################################################################################################################### sub Mining() VAR a = 0 # 0 <=> используемые объекты указаны # 1 <=> используемые объекты не указаны # uo.setglobal('recal', '1') #отвечает за телепортацию по шахтам# uo.setglobal('place', '1') #отвечает за перемещение чара по шахте# uo.setglobal('circle', '1') #отвечает за телепортацию в следующую шахту при обходе полного круга# uo.setglobal('back', '0') #отвечает за синхронизацию возвращения на место копки после сгрузки# if a == 1 then 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 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 wait(1000) uo.print('Укажите руну в шахту 6') uo.exec('addobject mine6') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 7') uo.exec('addobject mine7') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 8') uo.exec('addobject mine8') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 9') uo.exec('addobject mine9') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 10') uo.exec('addobject mine10') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 11') uo.exec('addobject mine11') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 12') uo.exec('addobject mine12') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 13') uo.exec('addobject mine13') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 14') uo.exec('addobject mine14') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 15') uo.exec('addobject mine15') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 16') uo.exec('addobject mine16') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 17') uo.exec('addobject mine17') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 18') uo.exec('addobject mine18') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 19') uo.exec('addobject mine19') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 20') uo.exec('addobject mine20') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 21') uo.exec('addobject mine21') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 22') uo.exec('addobject mine22') while uo.targeting() wait(100) wend wait(1000) uo.print('Укажите руну в шахту 23') uo.exec('addobject mine23') while uo.targeting() wait(100) wend return endif
uo.exec('exec CheckingItems') end sub
sub CheckingItems() VAR b uo.findtype('0x0F0E') #тип пустых бутылок# if uo.findcount() > 0 then uo.moveitem('finditem', '-1', 'Sunduk2') wait(1000) checklag() endif DIM Ore[4] Ore[0] = '0x19B9' #тип 4ех и более оров# Ore[1] = '0x19B8' #тип 3ех оров# Ore[2] = '0x19BA' #тип 2ух оров# Ore[3] = '0x19B7' #тип 1го ора# for var a = 0 to 3 uo.findtype(Ore[a]) while uo.findcount() > 0 uo.moveitem('finditem', '-1', 'Sunduk1') wait(1000) checklag() uo.findtype(Ore[a]) wend next uo.useobject('Sunduk2') wait(1000) checklag() DIM Reg[3] Reg[0] = '0x0F7A' #Black Pearl# Reg[1] = '0x0F7B' #Bood Moss# Reg[2] = '0x0F86' #Mandrake Root# for b = 0 to 2 if uo.count(Reg[b]) < 7 then uo.findtype(Reg[b], '-1', 'Sunduk2') if uo.findcount() > 0 then uo.moveitem('finditem', '30') wait(1000) checklag() else uo.print('Нет необходимого количества регов в сундуке') return endif endif next #if uo.count('0x0F08') < 1 then #тип инвизок# # uo.findtype('0x0F08', '-1', 'Sunduk2') # if uo.findcount() > 0 then # uo.moveitem('finditem', '2') # wait(1000) # checklag() # else # uo.print('Нет необходимого количества инвизок в сундуке') ;return # endif #endif uo.findtype('0x0E85') #тип кирок# while uo.findcount() < 1 uo.findtype('0x0E85', '-1', 'Sunduk2') if uo.findcount() > 0 then uo.moveitem('finditem', '2') else uo.print('Нет необходимого количества кирок в сундуке') return endif wait(1000) checklag() uo.findtype('0x0E85') wend if val(uo.getglobal('back')) == 1 then wait(50) else uo.exec('exec Teleportation') endif end sub
sub Teleportation() VAR a, b, c VAR d = uo.getx('self') repeat while uo.mana < 11 uo.warmode('0') uo.useskill('Meditation') wait(1000) wend a = 0 if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then uo.usetype('0x0F08') uo.closeuo() else wait(50) endif uo.deletejournal() if val(uo.getglobal('recal')) == 1 then uo.waittargetobject('mine1') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 2 then uo.waittargetobject('mine2') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 3 then uo.waittargetobject('mine3') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 4 then uo.waittargetobject('mine4') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 5 then uo.waittargetobject('mine5') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 6 then uo.waittargetobject('mine6') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 7 then uo.waittargetobject('mine7') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 8 then uo.waittargetobject('mine8') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 9 then uo.waittargetobject('mine9') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 10 then uo.waittargetobject('mine10') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 11 then uo.waittargetobject('mine11') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 12 then uo.waittargetobject('mine12') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 13 then uo.waittargetobject('mine13') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 14 then uo.waittargetobject('mine14') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 15 then uo.waittargetobject('mine15') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 16 then uo.waittargetobject('mine16') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 17 then uo.waittargetobject('mine17') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 18 then uo.waittargetobject('mine18') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 20 then uo.waittargetobject('mine20') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 21 then uo.waittargetobject('mine21') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 22 then uo.waittargetobject('mine22') uo.cast('Recall') else wait(50) endif if val(uo.getglobal('recal')) == 23 then uo.waittargetobject('mine23') uo.cast('Recall') else wait(50) endif repeat wait(100) a = a + 1 until a > 35 or d <> uo.getx('self') or uo.injournal('The spell fizzles.') wait(500) until not uo.injournal('The spell fizzles.') b = val(uo.getglobal('recal')) + 1 uo.setglobal('recal', str(b)) if val(uo.getglobal('recal')) > 23 then uo.setglobal('recal', '1') endif uo.set('finddistance', '7') uo.findtype('0x000E', '-1', '1') #тип элементаля# if uo.findcount() > 0 then uo.usetype('0x0F08') uo.exec('exec Teleportation') return endif if val(uo.getglobal('back')) == 0 then uo.exec('exec CheckingPlayers') uo.setglobal('place', '1') uo.setglobal('circle', '1') uo.exec('exec Obkopka') else uo.setglobal('back', '0') endif end sub
sub CheckingPlayers() VAR a, b uo.ignore('self', 'on') DIM Chars[2] Chars[0] = '0x0190' #тип игрока мужского пола# Chars[1] = '0x0191' #тип игрока женского пола# while not uo.dead() for a = 0 to 1 if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then uo.usetype('0x0F08') uo.closeuo() else wait(50) endif while val(uo.getglobal('find')) == 1 wait(50) wend uo.set('finddistance', '15') uo.findtype(Chars[a], '-1', '1') if uo.findcount() > 0 then uo.usetype('0x0F08') uo.exec('terminate Teleportation') uo.exec('terminate Obkopka') uo.exec('terminate ChengePlace') uo.exec('exec Teleportation') return else wait(500) endif next wend end sub
sub Obkopka() VAR mx, my, mz, a, b, c, d, e, f while not uo.dead() if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then uo.usetype('0x0F08') uo.closeuo() else wait(50) endif uo.deletejournal() mx = uo.getx('self') my = uo.gety('self') mz = uo.getz('self') for a = mx-2 to mx+2 for b = my-2 to my+2 while not uo.Hidden() c = 0 uo.warmode('0') uo.useskill('Stealth') repeat wait(100) c = c + 1 until uo.Hidden() or c > 40 wend uo.print('!!!КОПАЕМ ТУТ!!!>>> : '+str(mx-a)+' '+str(my-b)) d = val(uo.getglobal('place')) + 1 uo.setglobal('place', str(d)) 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('You broke') if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then uo.usetype('0x0F08') uo.closeuo() else wait(50) endif uo.deletejournal() if uo.waiting() then uo.canceltarget() else wait(50) endif uo.waittargettile('1341', str(a), str(b), str(mz)) uo.usetype('0x0E85') #тип кирки# while not uo.injournal('You put') 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') and not uo.injournal('You broke') wait(500) wend uo.setglobal('find', '1') wait(200) uo.set('finddistance', '7') uo.findtype('0x000E', '-1', '1') #тип элементаля# if uo.findcount() > 0 then uo.setglobal('find', '0') uo.usetype('0x0F08') uo.exec('exec Teleportation') uo.exec('terminate CheckingPlayers') return else uo.setglobal('find', '0') endif if val(uo.getglobal('place')) > 25 then uo.setglobal('place', '1') uo.exec('exec ChengePlace') return else wait(50) endif if uo.weight > 300 then #максимальный вес# uo.setglobal('back', '1') uo.exec('terminate CheckingPlayers') GoHome() CheckingItems() Teleportation() Back() uo.exec('exec CheckingPlayers') else wait(50) endif wend if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then uo.usetype('0x0F08') uo.closeuo() else wait(50) endif uo.deletejournal() next next wend end sub
sub ChengePlace() VAR a, b, c, d, e, f, g, h, i, j, k if val(uo.getglobal('circle')) > 3 then uo.setglobal('circle', '1') uo.exec('terminate CheckingPlayers') uo.exec('exec Teleportation') return endif if val(uo.getglobal('circle')) == 1 then if uo.getdir('self') == 3 then a = 1 else a = 2 endif for b = 1 to a uo.press(40) wait(300) next for c = 1 to 3 uo.press(34) wait(300) next for d = 1 to 2 uo.press(39) wait(300) next endif endif if val(uo.getglobal('circle')) == 2 then if uo.getdir('self') == 1 then a = 1 else a = 2 endif for e = 1 to a uo.press(39) wait(300) next for f = 1 to 3 uo.press(33) wait(300) next for g = 1 to 2 uo.press(38) wait(300) next endif if val(uo.getglobal('circle')) == 3 then if uo.getdir('self') == 7 then a = 1 else a = 2 endif for h = 1 to a uo.press(38) wait(300) next for i = 1 to 3 uo.press(36) wait(300) next for j = 1 to 2 uo.press(37) wait(300) next endif k = val(uo.getglobal('circle')) + 1 uo.setglobal('circle', str(k)) uo.exec('exec Obkopka') end sub
sub checklag() uo.click('backpack') while not uo.injournal('backpack') wait(100) wend uo.deletejournal('backpack') end sub
sub GoHome() VAR a, b, c, d, e uo.warmode('0') a = uo.getx('self') repeat while uo.mana < 11 uo.warmode('0') uo.useskill('Meditation') wait(1000) wend if uo.injournal('GM') or uo.injournal('Admin') or uo.injournal('Seer') or uo.injournal('Counselor') or uo.injournal('Developer') then uo.usetype('0x0F08') uo.closeuo() else wait(50) endif b = 0 uo.deletejournal() uo.waittargetobject('0x40040CC8') uo.cast('Recall') repeat wait(100) b = b + 1 until b > 35 or a <> uo.getx('self') or uo.injournal('The spell fizzles.') until not uo.injournal('The spell fizzles.') for c = 1 to 6 uo.press(33) wait(300) next uo.opendoor() wait(500) uo.press(33) wait(300) uo.opendoor() for d = 1 to 6 uo.press(33) wait(300) next e = val(uo.getglobal('recal')) - 1 uo.setglobal('recal', str(e)) end sub
sub Back() VAR a, b, c, d, e, f, g, h, i, j if val(uo.getglobal('circle')) > 1 then if uo.getdir('self') == 3 then f = 1 else f = 2 endif for a = 1 to f uo.press(40) wait(300) next for b = 1 to 3 uo.press(34) wait(300) next for c = 1 to 2 uo.press(39) wait(300) next endif endif if val(uo.getglobal('circle')) > 2 then if uo.getdir('self') == 1 then f = 1 else f = 2 endif for d = 1 to f uo.press(39) wait(300) next for e = 1 to 3 uo.press(33) wait(300) next for g = 1 to 2 uo.press(38) wait(300) next endif if val(uo.getglobal('circle')) > 3 then if uo.getdir('self') == 7 then f = 1 else f = 2 endif for h = 1 to f uo.press(38) wait(300) next for i = 1 to 3 uo.press(36) wait(300) next for j = 1 to 2 uo.press(37) wait(300) next endif end sub
sub TestPlace() VAR a, b, c, d, e, f, g, h, i for a = 1 to 2 uo.press(40) wait(300) next for b = 1 to 3 uo.press(34) wait(300) next for c = 1 to 3 uo.press(39) wait(300) next for d = 1 to 3 uo.press(33) wait(300) next for e = 1 to 3 uo.press(38) wait(300) next for f = 1 to 3 uo.press(36) wait(300) next for g = 1 to 3 uo.press(37) wait(300) next for h = 1 to 3 uo.press(35) wait(300) next for i = 1 to 2 uo.press(40) wait(300) next end sub
sub aams() var gumpid=0 var buttonid=0 var buttontext var i=18,j,rand
dim reindex[8] reindex[0]=11 reindex[1]=12 reindex[2]=13 reindex[3]=10 reindex[4]=16 reindex[5]=14 reindex[6]=17 reindex[7]=15
for j=1 to 2 rand=uo.random(10)*100 wait(100) wait(500+rand) if uo.LastGump('text',4)<>"0" then i=19 endif GumpID =val(Mid(uo.LastGump('command',i),16,4)) ButtonID=reindex[GumpID-2225] ButtonText=uo.LastGump('command', ButtonID) uo.LClick(Val(Mid(ButtonText,7,3)),Val(Mid(ButtonText,11,3))) next wait(500) endsub
sub AntiMacro() while not uo.Dead() if not uo.LastGump('replyed') then if uo.LastGump('text', 0) == 'Antimacros System' then aams() end if endif wait(500) if uo.injournal('You have entered a true code antimacros') or uo.injournal('You have incorrectly entered') then wait(100) pickaxe() wait(300) endif wend end sub
sub pickaxe() UO.Waittargettile("1341") uo.usetype('0x0E85') if uo.injournal('You have entered a true code antimacros') or uo.injournal('You have incorrectly entered') then wait(100)
endif wend end sub
sub InvizRecall() if not uo.count(0x0F06) then uo.print(" ИНВИЗОВ НЕТ!!!") endif if not uo.count(0x1f4c) then uo.print(" РЕКОЛ СКРОЛОВ НЕТ!!!") return endif uo.usetype(0x0F06) uo.waittargetobject('0x400037F1') uo.usetype(0x1f4c) end sub
sub dom() uo.waittargetobject('0x400E2173') uo.cast('Recall') end sub
|