Перейти к содержанию
Форум шарда Middle-Earth
Авторизация  
MeSSiR

Tailoring [Injection]

Рекомендуемые сообщения

Прокачка Тэйлора с 33х до 120:

 

# Create by MeSSiR
##################### MIDDLE-EARTH.RU ##########################
# Скрипт для прокачки скилла Tailoring.
# Работает по принципу изготовления необходимой вещи 
# (в зависимости от уровня скилла) и разрезания ее обратно
# в ткань.
# Для работы скрипта необходимо:    
# - Побольше ткани на пол возле себя    
# - Ножницы в сумку (желательно много, т.к. часто ломаются       
# - Иголки (Sewing Kit) в сумке ( 1 шт. вполне хватит)           
# Не забудьте, что после скилла в 100 необходимо использовать  
# Lesser Power, Power, Greater Power и Ultimate скроллы.       
# Желательно для скрипта:                                       
# - Еда                                                           
################################################################
###################### Настройка переменных ####################

var stop=120        # Стоп-отметка уровня скилла, когда нужно
                    # будет остановить прокачку для того, чтоб 
                    # применить Power скроллы. Если не нужна,
                    # то поставить значение 120.

var food='0x097B'        # Тип еды, которую будем кушать в процессе.
                    # '0x097B' - жаренная рыба
                    # '0x09F2' - жаренное мясо
                    # '0x171F' - бананы

sub Tailoring()
var time=0
uo.deletejournal()
uo.set('finddistance',1)
while uo.skillval('Tailoring',1) < 600
    checkitems()
    uo.waitmenu('Choose','shirts','What','Fancy Shirt')
    uo.waittargettype('0x1766')
    uo.usetype('0x0F9D')
    repeat
        wait(1000)
        time=time+1
    until uo.injournal("You create|You failed|You make") or time > 20
    time=0
    while uo.count('0x1EFD')>0 
        uo.waittargettype('0x1EFD')
        uo.usetype('0x0F9E')
        wait(1000)
    wend
    uo.deletejournal()
wend
while uo.skillval('Tailoring',1) < 900
    checkitems()
    uo.waitmenu('Choose','shirts','What','Robe')
    uo.waittargettype('0x1766')
    uo.usetype('0x0F9D')
    repeat
        wait(1000)
        time=time+1
    until uo.injournal("You create|You failed|You make") or time > 20
    time=0
    while uo.count('0x1F03')>0 
        uo.waittargettype('0x1F03')
        uo.usetype('0x0F9E')
        wait(1000)
    wend
    uo.deletejournal()
wend
while uo.skillval('Tailoring',1) < 1200
    checkitems()
    uo.waitmenu('Choose','carpets','Select','carpet1','Select','carpet')
    uo.waittargettype('0x1766')
    uo.usetype('0x0F9D')
    repeat
        wait(1000)
        time=time+1
    until uo.injournal("You create|You failed|You make") or time > 20
    time=0
    while uo.count('0x0ABD')>0 
        uo.waittargettype('0x0ABD')
        uo.usetype('0x0F9E')
        wait(1000)
    wend
    uo.deletejournal()
wend
end sub

Sub checkitems()
uo.msg(".pray")
eda()
while uo.count('0x0F9D') < 1
    uo.print("Нет иголок(Sewing Kit)!")
    uo.msg("Не могу работать!")
    wait(5000)
wend
while uo.count('0x0F9E') < 1
    uo.print("Нет ножниц(Scissors)!")
    uo.msg("Не могу работать!")
    wait(5000)
wend
while uo.count('0x1766') < 20
    uo.findtype('0x1766','-1','ground')
    if uo.findcount() then
        uo.moveitem('finditem','5','backpack')
        wait(500)
    else
        uo.print("Нет ткани на полу!")
        uo.msg("Не могу работать!")
        wait(5000)
    endif
wend
while uo.skillval('Tailoring',1) >= stop*10
    uo.msg("Стоп-отметка! Скилл прокачался до "+str(stop))
    wait(3000)
wend
end sub

Sub eda()
uo.findtype(food)
if uo.findcount() then
    uo.usetype(food)
else
    uo.print("Нет еды!")
endif
end sub

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость MEdition

Автострижка овец

+1 SGK

 

##################### MIDDLE-EARTH.RU ##########################
sub Sheeps()
Uo.Set('finddistance','5')
while true
Uo.FindType('0x00CF','-1','ground')
Uo.WaitTargetObject('finditem')
Uo.UseType('0x0F51')
wait(400)
repeat
wend
end sub
##################### MIDDLE-EARTH.RU ##########################

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость MEdition

Перерабатывает шерсть с овец в рулоны ткани.

При запуске первым таргетом указываем на прялку, а вторым на ткацкий станок.

+1 Aurum

 

##################### MIDDLE-EARTH.RU ##########################
sub wool()
   uo.addobject('SpinningWheel');
   while uo.targeting()
      wait(250)
   wend
   uo.addobject('Loom');
   while uo.targeting()
      wait(250)
   wend
   while uo.count('0x0DF8')
      uo.waittargetobject('SpinningWheel');
      uo.usetype('0x0DF8');
      wait(2000)
   wend
   while (uo.count('0x0E1F')-5)>0
      uo.waittargetobject('Loom');
      uo.usetype('0x0E1F');
      wait(2000)
   wend
end sub
##################### MIDDLE-EARTH.RU ##########################

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость MEdition

Скрипт на пошив полного комплекта Studded брони.

Спасибо Jackpot.

 

##################### MIDDLE-EARTH.RU ##########################
sub main()
sv()
UO.Exec("waitmenu 'Choose' 'studded' 'What' 'Tunic'")
UO.Exec("waittargettype 0x1078") #power кожа
UO.Exec("useobject '^0x0F9D'") #набор для шитья
all()

UO.Exec("waitmenu 'Choose' 'studded' 'What' 'Leggings'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.Exec("waitmenu 'Choose' 'studded' 'What' 'Sleeves'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.Exec("waitmenu 'Choose' 'studded' 'What' 'Gloves' ")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.Exec("waitmenu 'Choose' 'studded' 'What' 'Gorget'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.Exec("waitmenu 'Choose' 'Misc' 'What' 'bandana'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
wait(3000)
uo.canceltarget() 


UO.Exec("waitmenu 'Choose' 'female' 'What' 'Bustier'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.Exec("waitmenu 'Choose' 'female' 'What' 'Leather Skirt'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.Exec("waitmenu 'Choose' 'shoes' 'What' 'Sandals'")
UO.Exec("waittargettype 0x1078")
UO.Exec("useobject '^0x0F9D'")
all()

UO.print('full комплект сшил, начинаю снова')
main()
endif
end sub

sub Info() 
uo.Print('Осталось ' + str(uo.Count('0x1078')) + ' кожи в сумке') 
end sub

sub havka()
if UO.Count("0x097B")>0 then 
UO.usetype ("0x097B") 
Wait(700)
else
UO.Print("Еда закончилась……помру-)")
end if 
end sub

sub sv()
if uo.injournal("Saving World State") then
  uo.deletejournal()
   repeat
    wait(5000)
   until uo.injournal("Saving World State complete")
   UO.Print("Сохранение кончилось продолжаю скрипт")
  end if
end sub

sub all()
havka()
Info()
sv()
end sub
##################### MIDDLE-EARTH.RU ##########################

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тайлор под стелс

 

// Create by nepret
// За основу брался скрипт MeSSiR'а на Inject'е из этого поста:
// http://middle-earth.ru/forum/index.php?showtopic=6502&view=findpost&p=79565
///////////////////////// MIDDLE-EARTH.RU /////////////////////////
// Скрипт для прокачки скилла Tailoring.
// Работает по принципу изготовления необходимой вещи 
// (в зависимости от уровня скилла) и разрезания ее обратно
// в ткань.
// Для работы скрипта необходимо:
// - Include Hungry, CheckSave, WaitConnection (http://middle-earth.ru/forum/index.php?showtopic=6676)    
// - Побольше ткани на пол возле себя    
// - Ножницы в сумку (желательно много, т.к. часто ломаются)       
// - Иголки (Sewing Kit) в сумке ( 1 шт. вполне хватит)           
// Не забудьте, что после скилла в 100 необходимо использовать  
// Lesser Power, Power, Greater Power и Ultimate скроллы.       
// Желательно для скрипта:                                       
// - Еда
///////////////////////////////////////////////////////////////////
Program Tailoring;
const
////////////////////// Настройка переменных ///////////////////////
                  //
stop = 120;       // Стоп-отметка уровня скилла, когда нужно
                  // будет остановить прокачку для того, чтоб 
                  // применить Power скроллы. Если не нужна,
                  // то поставить значение 120.
                  //
///////////////////////////////////////////////////////////////////
                  //
DebugMode = 0;    // Выдавать информацию в системный журнал
                  // Включать при отслеживании ошибок в скрипте.
                  //                  
///////////////////////// Конец настроек //////////////////////////
///////////////////////////////////////////////////////////////////

var
t : integer;

{$Include 'all.inc'}

function CheckSkill : Boolean;
begin
  if not Connected then exit;
  if GetSkillValue('Tailoring') >= stop then
    begin
      AddToSystemJournal('Стоп-отметка! Скилл прокачался до: '+FloatToStrF(GetSkillValue('Tailoring'), ffgeneral, 4, 2));
      ClientPrintEx(self, 190, 200, 'Стоп-отметка! Скилл прокачался до: '+FloatToStrF(GetSkillValue('Tailoring'), ffgeneral, 4, 2));
      result := true;
      exit;
    end;
  result := false;
end;

procedure CheckRes;
var
CheckItemRes : array [0..2] of cardinal;
CheckItemResInfo : array [0..2] of string;
i : integer;
begin
  CheckItemRes[0] := $0F9D;
  CheckItemRes[1] := $0F9E;
  CheckItemResInfo[0] := 'В сумке нет "Катушки с нитками"(Sewing Kit)';
  CheckItemResInfo[1] := 'В сумке нет "Ножиниц"(Scissors)';
  if not Connected then exit;
  for i := 0 to 1 do
    begin
      FindTypeEx(CheckItemRes[i], $FFFF, Backpack, True);
      if FindCount < 1 then
        begin
          AddToSystemJournal('>>> '+CheckItemResInfo[i]);
          ClientPrintEx(self, 190, 200, CheckItemResInfo[i]);
          td := 0;
        repeat
          if not Connected then exit;
          checksave;
          if Debug(10,1000) then AddToSystemJournal('>>> Debug <<< Блок CheckRes > 1 цикл (76)');
          wait(1000);
          FindTypeEx(CheckItemRes[i], $FFFF, Backpack, True);
        until FindCount > 0;
        AddToSystemJournal('Продолжаем работу');
        ClientPrintEx(self, 190, 200, 'Продолжаем работу');
      end;
    end;
  FindTypeEx($1766, $FFFF, Ground, False);
  if FindFullQuantity < 20 then
    begin
      AddToSystemJournal('>>> На полу нет "Ткани"(Сut Сloths)');
      ClientPrintEx(self, 190, 200, 'На полу нет "Ткани"(Сut Сloths)');
      td := 0;
      repeat
        if not Connected then exit;
        checksave;
        if Debug(10,1000) then AddToSystemJournal('>>> Debug <<< Блок CheckRes > 3 цикл (93)');
        wait(1000);
        FindTypeEx($1766, $FFFF, Ground, False);
      until FindFullQuantity > 100;
      AddToSystemJournal('Продолжаем работу');
      ClientPrintEx(self, 190, 200, 'Продолжаем работу');
    end;
end;

procedure GetCloths;
var
CountCloths : integer;
begin
  FindTypeEx($1766, $FFFF, Backpack, False);
  if FindQuantity < 20 then
    begin
      if not Connected then exit;
      CountCloths := 20 - FindQuantity;
      FindTypeEx($1766, $FFFF, Ground, False);
      MoveItem(finditem, CountCloths, Backpack,0,0,0);
    end;
  td := 0;
  t := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(5,100) then AddToSystemJournal('>>> Debug <<< Блок GetCloths > 1 цикл (119)');
    wait(100);
    t := t + 1;
    FindTypeEx($1766, $FFFF, Backpack, False);
  until (FindQuantity >= 20) or (t >= 100); 
end;

function CheckTarget(SecTime : integer) : Boolean;
var
t : integer;
begin
  SecTime := SecTime * 10;
  td := 0;
  t := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(SecTime/10,100) then AddToSystemJournal('>>> Debug <<< Блок CheckTarget > 1 цикл (136)');
    wait(100);
    t := t + 1;
  until TargetPresent or (t >= SecTime);
  if t >= SecTime then result := false;
  if not Connected then exit;
  if TargetPresent then result := true;
end;

procedure DestroyItem;
var
CraftedItem : array [0..2] of cardinal;
si, i : integer;
begin
  CraftedItem[0] := $1EFD;
  CraftedItem[1] := $1F03;
  CraftedItem[2] := $0ABD;
  for i := 0 to 2 do
    begin
      repeat
        if not Connected then exit;
        FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
        if FindCount > 0 then
          begin
            si := FindCount;
            repeat
              if not Connected then exit;
              CheckRes;
              CancelTarget;
              UseType($0F9E, $FFFF);
              CheckTarget(5);
            until TargetPresent;
            FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
            WaitTargetObject(finditem);
            td := 0;
            t := 0;
            repeat
              if not Connected then exit;
              checksave;
              if Debug(10,100) then AddToSystemJournal('>>> Debug <<< Блок DestroyItem > 1 цикл (175)');
              wait(100);
              FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
            until (FindCount < si) or (t >= 50);
          end;
        if not Connected then exit;
        FindTypeEx(CraftedItem[i], $FFFF, Backpack, False);
      until FindCount = 0; 
    end;
end;

procedure Tailor;
var
cjtime : TDateTime;
begin
  DestroyItem;
  GetCloths;
  repeat
    if not Connected then exit;
    CheckRes;
    CancelTarget;
    UseType($0F9D, $FFFF);
    CheckTarget(5);
  until TargetPresent;
  FindTypeEx($1766, $FFFF, Backpack, False);
  WaitTargetObject(finditem);
  cjtime := Now;
  td := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(10,100) then AddToSystemJournal('>>> Debug <<< Блок Tailor > 2 цикл (206)');
    wait(100);
  until MenuPresent;
  if GetSkillValue('Tailoring') <= 60 then
    begin
      WaitMenu('Choose a category.','shirts');
      WaitMenu('What','Fancy Shirt');
    end;
  if GetSkillValue('Tailoring') <= 90 then
    begin
      WaitMenu('Choose','shirts');
      WaitMenu('What','Robe');
    end;
  if GetSkillValue('Tailoring') < 120 then
    begin
      WaitMenu('Choose','carpets');
      WaitMenu('Select','carpet1');
      WaitMenu('Select','carpet');
    end;
  td := 0;
  t := 0;
  repeat
    if not Connected then exit;
    checksave;
    if Debug(10,100) then AddToSystemJournal('>>> Debug <<< Блок Tailor > 3 цикл (230)');
    wait(100);
    t := t + 1;
  until (InJournalBetweenTimes('You create|You failed|You make|destroy', cjtime, Now) <> -1) or (t >= 50);
  if not Connected then exit;
end;

begin
  FindDistance := 1;
  repeat
    if not Connected then WaitConnection(5);
    if CheckSkill then exit;
    hungry(backpack);
    CheckRes;
    Tailor;
  until false;
end.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
while uo.skillval('Tailoring',1) < 900

checkitems()

uo.waitmenu('Choose','shirts','What','Robe')[/code]

 

Внимание, в этом скрипте тэйлора от Мессира есть ошибка, которая может съесть не один десяток тысяч единиц ткани, если не заметить вовремя. При пошиве роб, очки за них даются только до 890 скилла (89.0), потом надо переходить на крафт следующей вещи. В данном скрипте это

uo.waitmenu('Choose','carpets','Select','carpet1','Select','carpet')

 

Исправить вот так:

 

while uo.skillval('Tailoring',1) < 890

checkitems()

uo.waitmenu('Choose','shirts','What','Robe')

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sub main()
uo.exec('addobject bag') 
  while uo.targeting() 
   wait(100)
  wend
UO.DeleteJournal()
UO.CancelMenu()
UO.CancelTarget()
While not Uo.Dead()
part1:
UO.DeleteJournal() 
  UO.FindType('0x1F03','-1','backpack')
   if uo.getserial("finditem") <> "0x00000000" then
    UO.Exec("waittargetobject '^0x1F03'") 
    UO.Exec("useobject '^0x0F9E'")        
    repeat
     wait(100)
     UO.FindType('0x1766','-1','backpack')
    until uo.getserial("finditem") <> "0x00000000" or uo.injournal('<uninitialized object>!') or uo.injournal('I am already')
     wait(100)
    goto part1
   else
  UO.FindType('0x1766', '-1', 'backpack')
   if uo.getserial("finditem") <> "0x00000000" then
    uo.exec("moveitem 'finditem' '' 'bag'")
    goto part1
   else
  UO.FindType('0x1766','-1','bag')
   If UO.GetQuantity('finditem') > 15 and UO.SkillVal('Tailoring') < 650 Then 
    UO.MoveItem( 'finditem', '16' )
     repeat
      wait(100)
      UO.FindType('0x1766','-1','backpack')
     until uo.getserial("finditem") <> "0x00000000"
    UO.Exec("waitmenu 'Choose' 'shirts' 'What' 'Robe'")
    UO.Exec("waittargettype '0x1766'")
    UO.Exec("usetype '0x0F9D'")
     repeat
      wait(100)
      UO.FindType('0x1F03','-1','backpack')
     until uo.getserial("finditem") <> "0x00000000" or uo.injournal ('You failed')
    UO.Exec("usetype '0x097B'")
    goto part1
   else
    goto part2 
part2:
UO.DeleteJournal() 
  UO.FindType('0x163A','-1','backpack')
   if uo.getserial("finditem") <> "0x00000000" then
    UO.Exec("waittargetobject '^0x163A'") 
    UO.Exec("useobject '^0x0F9E'")        
    repeat
     wait(100)
     UO.FindType('0x1766','-1','backpack')
    until uo.getserial("finditem") <> "0x00000000" or uo.injournal('<uninitialized object>!') or uo.injournal('I am already')
     wait(100)
    goto part2
   else
  UO.FindType('0x1766', '-1', 'backpack')
   if uo.getserial("finditem") <> "0x00000000" then
    uo.exec("moveitem 'finditem' '' 'bag'")
    goto part2
   else
  UO.FindType('0x1766','-1','bag')
   If UO.GetQuantity('finditem') > 14 and UO.SkillVal('Tailoring') < 950 Then 
    UO.MoveItem( 'finditem', '15' )
     repeat
      wait(100)
      UO.FindType('0x1766','-1','backpack')
     until uo.getserial("finditem") <> "0x00000000"
    UO.Exec("waitmenu 'Choose' 'misc' 'What' 'Large Pillow'")
    UO.Exec("waittargettype '0x1766'")
    UO.Exec("usetype '0x0F9D'")
     repeat
      wait(100)
      UO.FindType('0x163A','-1','backpack')
     until uo.getserial("finditem") <> "0x00000000" or uo.injournal ('You failed')
    UO.Exec("usetype '0x097B'")
    goto part2
   else
    goto part3 

part3:
UO.DeleteJournal() 
  UO.FindType('0x0AC2','-1','backpack')
   if uo.getserial("finditem") <> "0x00000000" then
    UO.Exec("waittargetobject '^0x0AC2'") 
    UO.Exec("useobject '^0x0F9E'")        
    repeat
     wait(100)
     UO.FindType('0x1766','-1','backpack')
    until uo.getserial("finditem") <> "0x00000000" or uo.injournal('<uninitialized object>!') or uo.injournal('I am already')
     wait(100)
    goto part3
   else
  UO.FindType('0x1766', '-1', 'backpack')
   if uo.getserial("finditem") <> "0x00000000" then
    uo.exec("moveitem 'finditem' '' 'bag'")
    goto part3
   else
  UO.FindType('0x1766','-1','bag')
   If UO.GetQuantity('finditem') > 9 and UO.SkillVal('Tailoring') < 1200 Then 
    UO.MoveItem( 'finditem', '10' )
     repeat
      wait(100)
      UO.FindType('0x1766','-1','backpack')
     until uo.getserial("finditem") <> "0x00000000"
    UO.Exec("waitmenu 'Choose' 'carpets' 'Select' 'carpet1' 'Select' 'carpet corner'")
    UO.Exec("waittargettype '0x1766'")
    UO.Exec("usetype '0x0F9D'")
     repeat
      wait(100)
      UO.FindType('0x0AC2','-1','backpack')
     until uo.getserial("finditem") <> "0x00000000" or uo.injournal ('You failed')
    UO.Exec("usetype '0x097B'")
    goto part3
   else
    endsub   
wend
end sub

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
Авторизация  

×
×
  • Создать...