Скрипты от Mitako
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:36
Сообщение #1
Вообщем решил выложить свои скрипты, которые я затачивал под себя. Может они кому-то покажутся нубскими, может кто-то поблагодарит. Все ошибки и замечания учту

зы: предупреждаю сразу, что многие скрипты не дописаны - где-то было лень, где-то устраивало то, что имеется
зыы: буду рад, если мне дадут доступ на редактирование своих постов в этой теме
зыыы: Ха! не могу запостить скрипты из-за превышения символов, txt или sc на форум не подгружаются :rtfm:
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:42
Сообщение #2
1. Картография (ежедневные заказы)


VAR Mesh1 = '0x40DF4837'; сумка с бланк мапами
VAR Mesh2 = '0x4034D450'; сумка с готовыми картами
VAR itemM, timemove

sub Risyem()
   UO.Useobject(Mesh1)
   UO.Useobject(Mesh2)
   repeat
      GET()
      checklag()
      repeat
         UO.DeleteJournal()
         UO.WaitMenu('What sort','(random)')
         UO.UseType('0x14EB')
         Repeat
            wait(300)
         Until UO.InJournal( 'Thy|You put the Map')
      until UO.InJournal('You put the Map')
      wait (200)
      PUT()
   until uo.Dead()
endsub

Sub GET(); берем предмет
   UO.FindType('0x14EB', '0x0000',Mesh1)
   if UO.FindCount() > 0 Then
      itemM=UO.GetSerial('finditem')
      timemove=UO.Timer()
      uo.unsetreceivingcontainer()
      while UO.ContainerOf(itemM)==Mesh1 && timemove+20>UO.Timer()
         uo.Grab(1, 'finditem')
         wait(300)
      wend
   else
      UO.Exec('terminate all')
   endif
end sub

Sub PUT() # кладем предмет
   while UO.Count('0x14EB') > 0
      UO.FindType('0x14EB', '0x0000', 'backpack' )  
      uo.setreceivingcontainer(Mesh2)
      uo.Grab( 1, 'finditem' )
      wait (500)
   wend
end sub

Sub checklag()
   uo.deletejournal()
   UO.Click("backpack")
   repeat
      wait(100)
   until UO.InJournal("ackpack")
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:43
Сообщение #3
2. Переплавка руды

var printcolour = '1069'
var kol_vo = 300

sub pereplavka()    
   var otkuda, kuda, forge
  
   uo.unsetreceivingcontainer()
  
   UO.AddObject('forge')
   wait(500)
   while UO.targeting()
      wait(200)
   wend
  
   uo.charprint(printcolour, 'Где руда?' )
   UO.AddObject('otkuda')
   wait(500)
   while UO.Targeting()
      wait(200)
   wend  
  
   uo.charprint(printcolour, 'Куда скидываем инги?')
   UO.AddObject('kuda')
   wait(500)
   while UO.Targeting()
      wait(200)
   wend
  
   repeat
      get()
      UO.FindType('0x19B9', '0x0000', 'backpack')
      if UO.FindCount() > 0 then
         uo.useobject('forge')
         uo.waittargettype('0x19B9')
         wait(1000)
      end if
      put()
      UO.FindType('0x19B9', '0x0000', 'otkuda')
   until UO.FindCount()<1
   uo.charprint(printcolour, 'Готово!' )
end sub


Sub get()
   UO.FindType('0x19B9', '0x0000', 'otkuda')
   if UO.FindCount() > 0 then
      UO.Grab(Str(kol_vo), 'finditem')
      wait (1000)
      checklag()
   else
      uo.charprint(printcolour, 'Нет руды' )
      UO.Exec('terminate all')
   end if
end sub


Sub put()
   UO.FindType('0x1BEF', '0x0000', 'backpack')
   if UO.FindCount() > 0 then
      uo.setreceivingcontainer('kuda')
      uo.Grab( 0, 'finditem' )
      wait (1000)
      uo.unsetreceivingcontainer()
   end if
end sub

Sub checklag()
   uo.DeleteJournal()
   UO.Click("backpack")
   repeat
      wait(100)
   until UO.InJournal("ackpack")
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:44
Сообщение #4
3. Переработка хлопка из бекпака

sub Hlopok_Nitki()
   var koleso = '0x40DE3ADF'
   var printcolour = '1069'
  
   repeat
      UO.FindType('0x0DF9','-1','backpack')
      if UO.FindCount() > 0 then
         UO.WaitTargetObject(koleso)
         UO.UseObject('finditem')
         wait (2600)
      else
         uo.charprint(printcolour, 'Хлопка нет!' )
         return
      end if
   Until UO.Dead()
end sub

sub Nitki_Tkan()
   var pryalka = '0x40DE79C6'
   var printcolour = '1069'
  
   repeat
      UO.FindType('0x0FA0','-1','backpack')
      if UO.FindCount() > 0 then
         UO.WaitTargetObject(pryalka)
         UO.UseObject('finditem')
         wait (300)
      else
         uo.charprint(printcolour, 'Ниток нет!' )
         return
      end if
   Until UO.Dead()
end sub

sub Hlopok_Tkan()
   var koleso = '0x40DE3ADF'
   var printcolour = '1069'
  
   repeat
      UO.FindType('0x0DF9','-1','backpack')
      if UO.FindCount() > 0 then
         UO.WaitTargetObject(koleso)
         UO.UseObject('finditem')
         wait (2600)
      else
         uo.charprint(printcolour, 'Хлопка нет!' )
         Nitki_Tkan()
         return
      end if
   Until UO.Dead()
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:46
Сообщение #5
4. Поиск нужной головы в контейнере

var Nameboshka = 'Head of WiB'   #  ник чара, чью бошку искать

var item = '0x1CE1' # тип предмета, который ищем
var gde, itemN, i


sub poisk()  

   uo.charprint('self','1069', 'Где искать?' )
   UO.AddObject('gde')
   wait(500)
   while UO.Targeting()
      wait(200)
   wend
   uo.useobject('gde')
  
   UO.Ignorereset()
   i=0
   repeat
      UO.FindType(item, -1, 'gde')
      if UO.FindCount() > 0 then
         uo.click('finditem')
         checklag()
         if Nameboshka==uo.getName( 'finditem') then
            UO.Grab("0","finditem")
            wait (500)
            i=i+1
         else
            UO.Ignore('finditem')
         end if
      end if
      UO.FindType(item, -1, 'gde')
   until UO.FindCount()<=0
   UO.Ignorereset()
   uo.charprint('self','1069', 'Всего найдено ' + str(i))
end sub

Sub checklag()
   uo.deletejournal('ackpack')
   UO.click("backpack")
   repeat
      wait(100)
   until UO.InJournal("ackpack")
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:47
Сообщение #6
5. Поиск руин руды в песках (просто запускаете скрипт, факел в руки и бегом)

sub loot_ruin_ryda()  
   repeat
      wait (100)
      uo.findtype('0x09B0' ,"-1",'ground')
      if UO.FindCount()>0 then
         UO.UseObject('finditem')
         wait(200)
      end if
   until UO.dead()
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:49
Сообщение #7
6. Поиск нужного эля в контейнере

# 0 - не искать, 1 - искать
var Alchemy = 0
var AnimalTaming = 0
var Archery = 0
var Blacksmithing = 0
var Bowcraft = 0
var Carpentry = 0
var Fencing = 0
var Fishing = 0
var Herding = 0
var Inscription = 1
var Lockpicking = 0
var Lumberjacking = 0
var Magery = 0
var Macefighting = 0
var Mining = 0
var Swordsmanship = 0
var Tailoring = 0
var Tinkering = 0

var Drugoy = 0         #   на случай того, если надо искать другой объект
var DrugoyName = '.....'   #  имя нужного объекта при поиске

var item = '0x099F' # тип предмета, который ищем
var gde, itemN, i


sub sort()  
  
   uo.charprint('self','1069', 'Где искать?' )
   UO.AddObject('gde')
   wait(500)
   while UO.Targeting()
      wait(200)
   wend
   uo.useobject('gde')
  
   If Alchemy == 1 Then
      poisk('Alchemy')
   Endif
  
   If AnimalTaming == 1 Then
      poisk('Taming')
   Endif
  
   If Archery == 1 Then
      poisk('Archery')
   Endif
  
   If Blacksmithing == 1 Then
      poisk('Blacksmithing')
   Endif
  
   If Bowcraft == 1 Then
      poisk('Bowcraft')
   Endif
  
   If Carpentry == 1 Then
      poisk('Carpentry')
   Endif
  
   If Fencing == 1 Then
      poisk('Fencing')
   Endif
  
   If Fishing == 1 Then
      poisk('Fishing')
   Endif
  
   If Herding == 1 Then
      poisk('Herding')
   Endif
  
   If Inscription == 1 Then
      poisk('Inscription')
   Endif
  
   If Lockpicking == 1 Then
      poisk('Lockpicking')
   Endif
  
   If Lumberjacking == 1 Then
      poisk('Lumberjacking')
   Endif
  
   If Magery == 1 Then
      poisk('Magery')
   Endif
  
   If Macefighting == 1 Then
      poisk('Macefighting')
   Endif  
  
   If Mining == 1 Then
      poisk('Mining')
   Endif
  
   If Swordsmanship == 1 Then
      poisk('Swordsmanship')
   Endif
  
   If Tailoring == 1 Then
      poisk('Tailoring')
   Endif
  
   If Tinkering == 1 Then
      poisk('Tinkering')
   Endif
  
   If Drugoy == 1 Then
      poisk(DrugoyName)
   Endif  
  
   uo.charprint('self','1069', 'Поиск закончен' )  
   UO.DeleteObject('gde')
end sub



Sub poisk(Name)
   UO.Ignorereset()
   i=0
   repeat
      UO.FindType(item, -1, 'gde')
      if UO.FindCount() > 0 then
         uo.click('finditem')
         checklag()
         itemN=uo.getName( 'finditem')
         if strcmp(Name,itemN) then
            UO.Grab("0","finditem")
            wait (500)
            i=i+1
         else
            UO.Ignore('finditem')
         end if
      end if
      UO.FindType(item, -1, 'gde')
   until UO.FindCount()<=0
   UO.Ignorereset()
   uo.charprint('self','1069', 'Найдено ' + str(i) + ' бутылок' )
end sub

Sub checklag()
   uo.deletejournal('ackpack')
   UO.click("backpack")
   repeat
      wait(100)
   until UO.InJournal("ackpack")
end sub

Sub strcmp(str,cmp)
   var i,len=strlen(str)
   for i=0 to len-1
      if str[i]<>cmp[i] then
         return false
      endif
   next
   return true
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:51
Сообщение #8
7. Ослабляем заатаченного моба

Sub disko()
   uo.deletejournal()
   uo.WarMode(0)
   uo.waittargetobject('lastattack')
   uo.useskill('Enticement')
   repeat
      wait(100)
   until uo.injournal('недоступен') or uo.injournal('музыки ослабило') or uo.injournal('the song.') or uo.injournal('the target')                                                                                                                         
   uo.WarMode(1)
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:52
Сообщение #9
8. Лут с земли по кнопке

Sub loot_zemlya()  
  
   Item('0x10B0', '-1'); Handing Pole
   Item('0x10AD', '-1'); Handing Pole
   Item('0x0E26', '-1'); фласка
   Item('0x0EED', '-1'); Golden Coin
   Item('0x0F3F', '-1'); Arrow
   Item('0x14FB', '-1'); Lockpick
   Item('0x0F7C', '-1'); блуд спаун
   Item('0x19B7', '-1'); 1 руда
   Item('0x0F26', '-1'); камень (гранат, диамонд)
   Item('0x0F25', '-1'); камень (амбер)
   Item('0x0F13', '-1'); камень (рубин)
   Item('0x0F11', '-1'); камень (сапфир)
   Item('0x0F18', '-1'); камень (турмалин)
   Item('0x0F15', '-1'); камень (цитрин)
   Item('0x0F10', '-1'); камень (эмиральд)
   Item('0x0F16', '-1'); камень (аметист)
   Item('-1', '0x0991'); руин цвет  
   Item('0x0E76', '-1'); мешок
End Sub


Sub Item(Type, Color)
   UO.Set('finddistance', '2')
   Repeat
      UO.FindType(Type, Color, 'ground')
      If UO.FindCount() > 0 Then
         UO.Grab('-1', 'finditem')
         Wait(100)
      Endif
   Until UO.FindCount() < 1
End Sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 14:55
Сообщение #10
9. Лут ПвМ. Убили 3 монстра сразу, подошли к каждому из них (не имеет значение в каком порядке), запустили скрипт - скрипт порезал и полутал. Если Вы не долутали и отбежали от трупа, то при последующем приближении скрипт получает

Sub loot_PvM()
  
   VAR nozh = '0x0EC3'
   VAR body     = '0x2006';   труп (не разделанный)
   VAR corpse=0, Otkuda=0, Color=0
  
   UO.Set('finddistance', '2')
  
   UO.FindType(body,'-1','ground')
   if UO.FindCount()>0 and Uo.GetDistance('finditem')<=2 then  
      uo.useobject('finditem')
      wait(200)
      corpse = uo.getSerial("finditem")
      if rezka == 1 Then
         uo.waittargetobject(corpse)
         uo.usetype(nozh)
         wait(600)
      end if
      uo.warmode(1)
      
      PUTLootPvM('0x1869', -1, corpse) # энч
      PUTLootPvM('0x1BFB', -1, corpse) # болты
      PUTLootPvM('0x0EED', -1, corpse) # золото
      PUTLootPvM(-1,  '0x0991', corpse) # руин цвет
      PUTLootPvM('0x0F83', -1, corpse) # сердце (орк, гоблин)
      PUTLootPvM('0x1078', -1, corpse) # шкура животных
      PUTLootPvM('0x0F3F', -1, corpse) # стрелы
      PUTLootPvM('0x0F81', -1, corpse) # фертил дирт
      PUTLootPvM('0x1BD1', -1, corpse) # перья
      PUTLootPvM('0x09F1', -1, corpse) # мясо животных
      PUTLootPvM('0x09B9', -1, corpse) # мясо птицы
      PUTLootPvM('0x1607', -1, corpse) # мясо курицы (ножки)
      PUTLootPvM('0x1BDD', -1, corpse) # логи
      PUTLootPvM('0x0FAB', -1, corpse) # краски
      PUTLootPvM('0x19B7', -1, corpse) # руда 1 шт
      PUTLootPvM('0x19BA', -1, corpse) # руда 2 шт
      PUTLootPvM('0x19B9', -1, corpse) # руда 4 шт
      PUTLootPvM('0x0F8A', -1, corpse) # пиг ирон
      PUTLootPvM('0x0F8D', -1, corpse) # реагент (паутина)
      PUTLootPvM('0x0F8B', -1, corpse) # реагент (пумис)
      PUTLootPvM('0x0F90', -1, corpse) # дидвуды
      PUTLootPvM('0x0F8F', -1, corpse) # вулканик аш
      PUTLootPvM('0x0E34', -1, corpse) # бланк скроллы
      PUTLootPvM('0x0F78', -1, corpse) # батвинги
      PUTLootPvM('0x09B5', -1, corpse) # яйца
      PUTLootPvM('0x0F7E', -1, corpse) # кости
      PUTLootPvM('0x141B', -1, corpse) # орк маски срезаемые
      PUTLootPvM('0x0F87', -1, corpse) # глазки
      PUTLootPvM('0x0F7D', -1, corpse) # тип драгон крови
      PUTLootPvM('0x0F26', -1, corpse) # гранад
      PUTLootPvM('0x0F25', -1, corpse) # амбер
      PUTLootPvM('0x0F13', -1, corpse) # рубин
      PUTLootPvM('0x0F11', -1, corpse) # сапфир
      PUTLootPvM('0x0F18', -1, corpse) # турмалин
      PUTLootPvM('0x0F15', -1, corpse) # цитрин
      PUTLootPvM('0x0F10', -1, corpse) # эмиральд
      PUTLootPvM('0x0F16', -1, corpse) # аметист
      PUTLootPvM('0x0F26', -1, corpse) # диамонд
      PUTLootPvM('0x09C1', -1, corpse) # Gazer Guts
      PUTLootPvM('0x0F21', -1, corpse) # Fairy Gems
      PUTLootPvM('0x1E86', -1, corpse) # Centaur Tails  
      PUTLootPvM('0x09EC', -1, corpse) # Infernal Spirits
      PUTLootPvM('0x1059', -1, corpse) # Pixie Wing
      
      #uo.forget(corpse)
      UO.Ignore(corpse)
   else
      return
   end if
   uo.print('Готово')
end sub


Sub PUTLootPvM(Type, Color, Otkuda)
   while UO.FindType(Type, Color, Otkuda)
      if Uo.GetDistance(Otkuda)<=2 then
         UO.Grab("0","finditem")  
         wait(300)
         UO.FindType(Type, Color, Otkuda)
      else
         waitforcorpsedistance(Otkuda)
      end if
   wend
end sub


Sub waitforcorpsedistance(Otkuda)
   var j=0
   for j=0 to 500
      if Uo.GetDistance(Otkuda)<=2 then
         return
      endif
      wait(500)
   next
end sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 15:01
Сообщение #11
10. Трекинг нужных животных

Sub Tracking2()  
;===========================================================================;
   VAR Rezerv = 1; Отслеживать резерв
   VAR Bear = 0; Отслеживать медведей
   VAR Wolf = 0; Отслеживать волков
   VAR GolEnt = 0; Отслеживать големов\энтов
   VAR BullCow = 1; Отслеживать коров
   VAR BoarPig = 0; Отслеживать свиней
   VAR Gorilla = 1; Отслеживать горилл
   VAR Harpy = 0; Отслеживать гарпий
;===========================================================================;
  
   Repeat    
      If Rezerv == 1 Then
         Monsters('Forest Spider')
      Endif  
      
      If Bear == 1 Then
         Animal('Black Bear')
         Animal('Brown Bear')
         Animal('Grizzly Bear')
      Endif
      
      If Wolf == 1 Then
         Animal('Dire Wolf')
         Animal('Grey Wolf')
         Animal('Timber Wolf')
         Animal('White Wolf')
      Endif
      
      If BullCow == 1 Then
         Animal('Brown Bull')
         Animal('Brown Cow')
         Animal('Bull')
         Animal('Cow')
      Endif
      
      If BoarPig == 1 Then
         Animal('Boar')
         Animal('Pig')
      Endif
      
      If Gorilla == 1 Then
         Animal('Gorilla')
      Endif
      
      If GolEnt == 1 Then
         #Monsters('Forest Golem')
         Monsters('Forest Ent')
      Endif
      
      If Harpy == 1 Then
         Monsters('Forest Harpy')
      Endif
   Until UO.Dead()
End Sub


Sub Animal(Name)
  
   Var LastTimer='', A=''
  
  
   UO.DeleteJournal()
  
   LastTimer = UO.Timer()
  
   UO.WaitMenu('Tracking','Animals','Tracking',Name)
   UO.UseSkill('Tracking')
   Repeat
      If UO.InJournal('is far to the') or UO.Timer() > LastTimer + 10 Then
         UO.CharPrint('self','0x005B',Name)
         UO.CharPrint('self','0x0038','Find Him & Kill Him!')
         OtklSkript()
      Else
         Wait(100)
      Endif
   Until UO.InJournal('no signs|Tracking Cancelled')
End Sub


Sub Monsters(Name)
  
   Var LastTimer=0, A=0
  
   UO.DeleteJournal()
  
   LastTimer = UO.Timer()
  
   UO.WaitMenu('Tracking','Monsters','Tracking',Name)
   UO.UseSkill('Tracking')
   Repeat
      If UO.InJournal('is far to the') or UO.Timer() > LastTimer + 10 Then
         UO.CharPrint('self', '0x005B', Name)
         UO.CharPrint('self', '0x0038', 'Find Him & Kill Him!')
         OtklSkript()
      Else
         Wait(100)
      Endif
   Until UO.InJournal('no signs|Tracking Cancelled')
End Sub
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 15:02
Сообщение #12
К сожалению, такие скрипты, как Разгрузка после ПвМа, ежедневки на алхимию, ежедневки на инскрипт не поместились по символам
Майор (10730640)14 летИнквизитор
Inquisitor
Сообщений: 1041
Рег. 12.07.2010
23 ноября 2014 15:39
Сообщение #13
Спасибо.
Цитата: Mitako
К сожалению, такие скрипты, как Разгрузка после ПвМа, ежедневки на алхимию, ежедневки на инскрипт не поместились по символам

Залей куда нибудь и выложи ссылку.)
Майор (11770708)11 лет
Dragonstalker
Сообщений: 1028
Рег. 4.01.2013
23 ноября 2014 16:10
Сообщение #14
Цитата: Mitako
Вообщем решил выложить свои скрипты, которые я затачивал под себя. Может они кому-то покажутся нубскими, может кто-то поблагодарит. Все ошибки и замечания учту

Спасибо, хорошие скрипты
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 16:15
Сообщение #15
Цитата: Rociel Del Mar
Залей куда нибудь и выложи ссылку.)

какой хост держит долго?

Старший Лейтенант (5006416)15 лет
Администратор
Сообщений: 19675
Рег. 31.07.2009
23 ноября 2014 17:36
Сообщение #16
Форум Yoko.)
И, кстати, тема же прикреплена для готовых скриптов...

--------------------
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
23 ноября 2014 18:07
Сообщение #17
Цитата: Jose Cuervo
И, кстати, тема же прикреплена для готовых скриптов...

пофиг
Лейтенант (4548828)11 лет
Dragonstalker
Сообщений: 3319
Рег. 19.11.2013
23 ноября 2014 23:03
Сообщение #18
Советы советывать или пофиг? :victory:
PS на yoko нет такого жесткого ограничения на добавления/редактирования. Так что прошу в гости :hi:
Старший Лейтенант (6395350)12 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
24 ноября 2014 00:14
Сообщение #19
Mirage,
Загляну в рабочее время )
Генерал Полковник (31351072)15 лет
Dragonstalker
Сообщений: 4091
Рег. 6.09.2009
24 ноября 2014 11:26
Сообщение #20
смешно :)
Последние посетители (0):

 
Сейчас: 24 ноября 2024 04:19