| Yoko http://forum.yoko.com.ua/ |
|
| Скрипт на мининг http://forum.yoko.com.ua/viewtopic.php?f=17&t=13675 |
Page 1 of 1 |
| Author: | Strat [ 2008-06-10 17:24:22 ] |
| Post subject: | Скрипт на мининг |
Напишите пожалуйста скрипт на мининг для шарда Alien World (клон абусса) Суть такова: нужно чтоб чар копал руду в шахте а при весе в 420 портовался домой, выгружал руду в сундук и снова летел работать. Причем чтобы если руда в шахте закончилась или атачит другой игрок, чар улетал в другую шахту и продолжал копать. В общем чтоб он мог копать в 3-4 шахтах, то биш скрипт должен быть полностью автоматический и не требовал никаких действий от игрока. Вот что то типа этого но чтобы без вара с элементалями (они не появляются) и без использования рунбуки ( рекол через руны в банке): ########################################################################################################################### #_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', 'Sunduk1') 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', 'Sunduk2') wait(1000) checklag() uo.findtype(Ore[a]) wend next uo.useobject('Sunduk1') 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]) < 50 then uo.findtype(Reg[b], '-1', 'Sunduk1') if uo.findcount() > 0 then uo.moveitem('finditem', '50') wait(1000) checklag() else uo.print('Нет необходимого количества регов в сундуке') return endif endif next if uo.count('0x0F08') < 5 then #тип инвизок# uo.findtype('0x0F08', '-1', 'Sunduk1') if uo.findcount() > 0 then uo.moveitem('finditem', '5') wait(1000) checklag() else uo.print('Нет необходимого количества инвизок в сундуке') ;return endif endif uo.findtype('0x0E85') #тип кирок# while uo.findcount() < 7 uo.findtype('0x0E85', '-1', 'Sunduk1') if uo.findcount() > 0 then uo.moveitem('finditem', '1') 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')) == 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 > 600 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('Home') 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) wend end sub Ну как, ребят, неслабо сотворить такой скриптик. Всем шардом скажем спасибо и благодарности автору на офсайте выразим.... |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|