|
Injection скрипты (обучение) |
|
|
Destruction |
11.3.2005, 1:09
|

         
Группа: Администраторы Наличность: 0
Пользователь №: 1.833

|
Внимание! Флуд будет удаляться, самым жестоким образом :!: Голос "да" - мне вполне понятен, а вот те кто голосуют против, просьба отписаться в ПМ, чем же я Вам так не угодил. Не отписавшиеся голоса "против" в ПМ считать не буду !!! (на момент правки топика, только 1 голос против.)
Вобщем, я вот понемногу, стал понимать скрипты инжекта, ну, если вы прочитав это, еще не разобрались, то попытаться разобраться, на готовых, грамотно расписанных скриптах, думаю будет гораздо легче. Собственно, для написания скриптов следует использовать это, чтобы не путаться в синтаксисе и это, чтобы знать синтаксис, почти всех функций ижекта (кроме этого есть еще штук 15 недокументированных, о них ищите информацию сами). Через пару дней проверю голосование, если будет преимущество голосов за - прилепим. Вобщем, начну, скрипт на БС. Код #Blacksmithing by Destruction 1.0 #(c) 2005, Darkness In Cor Por'ated, все права защищены #Копирование, строго с разрешения автора sub BS() #Объявляем функцию с названием BS, без параметров. var ingots = "0x1BF2" #Объявляем переменную содержащию тип ингов var dagger = "0x0F51" #Объявляем переменную с типом ножей var forge = "0x0FB1" #Объявляем переменную с типом плавилки var lasttimer #Объявляем пустую переменную lasttimer repeat #объявляем цикл №1 uo.findtype(ingots,"-1","ground") #ищем предмет типа заданного в переменной ingots на земле. uo.grab("3","finditem")#поднимаем 3 штуки найденных ингов lasttimer = uo.timer()#переменной lasttimer присваиваем значения uo.timer(), который отсчитываеться с начала запуска скрипта. repeat #объявляем цикл #2 uo.findtype(ingots) #Ищем в бекпаке предмета типа заданного переменной ingots wait(100) #ждем 100мс until uo.findcount() > 0 or uo.timer()>lasttimer+500 #объявляем условие для 2 цикла, он будет повторяться, пока условие не станет истинным (true). Т.е. ждем пока инготы не появяться в паке. uo.waitmenu("Blacksmithing", "Weapons", "Swords & Blades", "dagger")#вешаем ловушку на прицел, с целью сковать ножик. uo.usetype(ingots)#используем инги в паке lasttimer = uo.timer()#переменной lasttimer присваиваем значение uo.timer() uo.deletejournal()#очищаем журнал, для корректности inJournal() repeat#объявляем цикл #3 wait(100)#Ждем 100мс until uo.InJournal("You put") or uo.InJournal("You have failed") or uo.timer()>lasttimer+500#Объявляем условие для 3его цикла. uo.findtype(dagger)#ищем ножи в бекпаке if uo.findcount() > 0 then #Условие 1, если нажи найдены, то uo.waittargettype(dagger) #вешаем ловушку на нож uo.usefromground(forge) #используем плавильню с пола имеющую тип forge. uo.deletejournal() #очищаем журнал, для корректности inJournal() lasttimer = uo.timer()#переменной lasttimer присваиваем значение uo.timer() repeat #Объявляем цикл 4 wait(100)#Ждем 100мс. until uo.inJournal("You smelt") or uo.inJournal("You failed") or uo.timer()>lasttimer+500#Объявляем уловие 4ого цикла - пока в журнале не будет сообщения о результате переплавки, с последней deletejournal() endif#конец условия 1 uo.findtype(ingots)#Ищем в бекпаке инги uo.drophere("finditem")#Кидаем найденные инги под ноги wait(100)#ждем 100мс until false#Объявеляем уловие 1ого цикла, т.к. ложь никогда не станет правдой (true<>false), то цикл будет повторяться до тех пор, пока не будет выключен вручную. endsub #Конец ф-ции BS. Собсно суть скрипта - берем инги с пола, куем нож, плавим нож, кидаем полученные инги под ноги, и опять по-новой.
--------------------
Telegram: @tatikom
|
|
|
|
|
  |
Ответов
Destruction |
11.3.2005, 9:32
|

         
Группа: Администраторы Наличность: 0
Пользователь №: 1.833

|
Продолжу свою сагу, голоса уж целых два и оба за (IMG: style_emoticons/default/smile.gif)) Скрипт на плавку руды по 1ой штуке. Суть такова - кидаем все руду под ноги, после чего по одной подбираем и плавим. Ессно, вы спросите, зачем геммор выкидывать, потом поднимать, когда можно выкидывать по одной и сразу плавить? Отвечаю - на моем шарде на выкидывание вещей пауза 1сек, а на подбирание паузы нету, и вообще такого плана шардов хватает. Этот скрипт будет расписан менее подробно, в отличии от первого. Код #Smelt ore by Destruction 1.0 #(c) 2005, Darkness In Cor Por'ated, все права защищены #Копирование, строго с разрешения автора sub smelt() var ore1 = 0x19B7 #Type 1 рудинки var ore2 = 0x19BA #Type 2 рудинок var ore3 = 0x19B8 #Type 3 рудинок var ore4 = 0x19B9 #Type 4 рудинок или более var delay = 1000 #Задержка на кидание шмота из бекпака var lasttimer #Объявляем переменную, для последущего использования. ore2: #Метка uo.findtype(ore2)#Ищем тип if uo.findcount() > 0 then#Условие №1, если найдено предметов больше нуля то UO.Drop('0',0,0,0,'finditem') #кидаем под ноги найденный предмет wait(delay)#Ждем goto ore2#Отправляемся к метке endif#Конец условия №1 ore3:#Метка uo.findtype(ore3)#Ищем тип if uo.findcount() > 0 then#Условие №2, если найдено предметов больше нуля, то UO.Drop('0',0,0,0,'finditem') #Кидаем под ноги wait(delay)#Ждем goto ore3#Отправляемся к метке endif#Конец условия №2 ore4:#Метка uo.findtype(ore4)#Ищем тип if uo.findcount() > 0 then#Условие 3, если найдено больше 0, то UO.Drop('0',0,0,0,'finditem') #Кидаем под ноги wait(delay)#Ждем goto ore4#Отправляемся к метке endif#Конец условия №3 repeat#Объявляем цикл №1 uo.findtype(ore4, "-1", "ground")#Ищем тип if uo.findcount() == 0 then#Условие №4, если найдено предметов 0, то goto ore4_end#Отправляемся к метке endif#Конец условия №4 uo.grab("1","finditem")#Подбираем 1 штуку найенного предмета lasttimer = uo.timer()#Присваиваем значение repeat#Объявляем цикл №1_1 wait(100)#Ждем uo.findtype(ore1)#Ищем тип until uo.findcount() > 0 or uo.timer()>lasttimer+500#Проверяем условия цикла №1_1 uo.usetype(ore1)#Используем тип uo.findtype(ore4, "-1", "ground")#Ищем тип на земле until uo.findcount() == 0#Проверяем условие цикла №1 ore4_end:#Метка #Далее не расписываю, в связи с конкретной повторностью данной комбинации, для кучек руды состоящих из меньшего кол-ва руды. repeat uo.findtype(ore3, "-1", "ground") if uo.findcount() == 0 then goto ore3_end endif uo.grab("1","finditem") lasttimer = uo.timer() repeat wait(100) uo.findtype(ore1) until uo.findcount() > 0 or uo.timer()>lasttimer+500 uo.usetype(ore1) uo.findtype(ore3, "-1", "ground") until uo.findcount() == 0 ore3_end: repeat uo.findtype(ore2, "-1", "ground") if uo.findcount() == 0 then goto ore2_end endif uo.grab("1","finditem") lasttimer = uo.timer() repeat wait(100) uo.findtype(ore1) until uo.findcount() > 0 or uo.timer()>lasttimer+500 uo.usetype(ore1) uo.findtype(ore2, "-1", "ground") until uo.findcount() == 0 ore2_end: repeat uo.findtype(ore1, "-1", "ground") if uo.findcount() == 0 then goto ore1_end endif uo.grab("1","finditem") lasttimer = uo.timer() repeat wait(100) uo.findtype(ore1) until uo.findcount() > 0 or uo.timer()>lasttimer+500 uo.usetype(ore1) uo.findtype(ore1, "-1", "ground") until uo.findcount() == 0 ore1_end: endsub#Конец ф-ции
--------------------
Telegram: @tatikom
|
|
|
|
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|