Pomogite so skriptom!

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Dim
Posts: 37
Joined: 2006-03-05 17:13:50

Pomogite so skriptom!

Post by Dim »

sub alchemy()
# BETEP™ #
VAR Exit=0, LastTimer
uo.print('Noiaoe n ?aaaie e aooueeaie')
uo.exec('addobject Bag')
while uo.targeting()
wait(100)
wend
uo.print('Noiaoe eoaa aooueee a?inaou')
uo.exec('addobject Bag2')
while uo.targeting()
wait(100)
wend
while Exit<>1
UO.DeleteJournal()

UO.FindType('0x0F0E','0x0998','backpack')
If UO.GetQuantity('finditem')>0 Then
UO.SetReceivingContainer('Bag2')
wait(1000)
UO.Grab('all','finditem')
wait(1000)
UO.UnSetReceivingContainer()
Endif

UO.FindType('0x0F0E',-1,'backpack')
If UO.GetQuantity('finditem')<10 then
UO.FindType('0x0F0E','0x0000','Bag')
wait(1000)
UO.Grab('500','finditem')
wait(1000)
Endif

UO.FindType('0x0F88','0x0000','backpack')
If UO.GetQuantity('finditem')<20 then
UO.FindType('0x0F88','0x0000','Bag')
wait(1000)
UO.Grab('400','finditem')
wait(1000)
Endif

LastTimer=UO.Timer()
UO.DeleteJournal()

UO.UseType('0x0F88')
UO.WaitMenu('What','(2)')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You toss the failed")
wait(500)
wend
If UO.InJournal("You toss the failed") then
repeat
wait(100)
until UO.Timer()>=LastTimer+100
Else
EndIf
wend
end sub



Kuda nada 4to zapisatj 4tobi 4ar delal Mana Refresh!!!?????
Zaranie blagodarju!
Doktor_Kor
Posts: 31
Joined: 2006-05-29 15:29:42

Re: Pomogite so skriptom!

Post by Doktor_Kor »

Code: Select all

############################################################################################ 
###                                                                                      ### 
###                                 Alchemy / Алхимия                                    ### 
###                                  Шард Dragon World                                   ### 
###                                        v2.85                                         ### 
###                                                                                      ### 
###                                    Автор  Corwin                                     ### 
###                                                                                      ### 
###                             Тестирование  Euronimus                                  ### 
###                                                                                      ### 
############################################################################################ 

############################################################################################ 
### Глобальные переменные ### 
############################# 

## к скрипту Alchemy 
var BottleType='0x0F0E'  ## - тип пустой бутылки 
var BottleNumber=100     ## - количество бутылок, забираемое из сундука за раз 
var BottleMinNumber=0    ## - минимальное количество бутылок, которое надо оставить в сундуке 
var DoEating=1           ## 1 - включить потребление еды, 0 - отключить 
var FoodType='0x097B'    ## - тип еды, которую будем есть (fish steaks) 
var BagType='0x0E76'     ## - тип мешка для складывания вещей 
var MaxWeight=700        ## - максимальный вес в рюкзаке 
var MaxNumber=500        ## - максимальное количество делаемых вещей в рюкзаке и для заполнения одного мешка 
var Reconnect=0          ## 1 - включить реконнект на сервер, если выкинет, 0 - отключить реконнект 
var UseBags=0            ## 1 - использовать раскладывание делаемых бутылок по мешкам 
var UseHide=0            ## 1 - включить уход в хайд во время крафта, 0 - отключить 
var UseHeal=0            ## 1 - включить лечение в хайд во время крафта, если здоровье падает, 0 - отключить 

############################################################################################ 
### Код скрипта ### 
################### 

# Формат вызова процедуры алхимии для получения нужного снадобья 
# Sub Alchemy('тип реагента 1', 'тип реагента 2', 'тип реагента 3', 'название снадобья в меню крафта', 
#             'цвет бутылки с готовым снадобьем', количество реагента 1 для одного крафта, 
#             количество реагента 2 для одного крафта, количество реагента 3 для одного крафта) 

sub Agility() 
  Alchemy("0x0F7B", "", "", "Agility", "0x0489", 1, 0, 0) 
end sub 

sub GreaterAgility() 
  Alchemy("0x0F7B", "", "", "Greater Agility", "0x0489", 3, 0, 0) 
end sub 

sub LesserCure() 
  Alchemy("0x0F84", "", "", "Lesser Cure", "0x09A6", 1, 0, 0) 
end sub 

sub Cure() 
  Alchemy("0x0F84", "", "", "Cure", "0x09A6", 3, 0, 0) 
end sub 

sub GreaterCure() 
  Alchemy("0x0F84", "", "", "Greater Cure", "0x09A6", 6, 0, 0) 
end sub 

sub LesserHeal() 
  Alchemy("0x0F85", "", "", "Lesser Heal", "0x09BB", 1, 0, 0) 
end sub 

sub Heal() 
  Alchemy("0x0F85", "", "", "Heal", "0x09BB", 3, 0, 0) 
end sub 

sub GreaterHeal() 
  Alchemy("0x0F85", "", "", "Greater Heal", "0x09BB", 7, 0, 0) 
end sub 

sub NightSight() 
  Alchemy("0x0F8D", "", "", "Nightsight", "0x0B9D", 1, 0, 0) 
end sub 

sub LesserPoison() 
  Alchemy("0x0F88", "", "", "Lesser Poison", "0x0998", 1, 0, 0) 
end sub 

sub Poison() 
  Alchemy("0x0F88", "", "", "Poison", "0x0998", 2, 0, 0) 
end sub 

sub GreaterPoison() 
  Alchemy("0x0F88", "", "", "Greater Poison", "0x0998", 3, 0, 0) 
end sub 

sub DeadlyPoison() 
  Alchemy("0x0F88", "", "", "Deadly Poison", "0x0998", 8, 0, 0) 
end sub 

sub Refresh() 
  Alchemy("0x0F7A", "", "", "Refresh", "0x0997", 1, 0, 0) 
end sub 

sub TotalRefresh() 
  Alchemy("0x0F7A", "", "", "Total Refresh", "0x0997", 5, 0, 0) 
end sub 

sub Strength() 
  Alchemy("0x0F86", "", "", "Strength", "0x0482", 2, 0, 0) 
end sub 

sub GreaterStrength() 
  Alchemy("0x0F86", "", "", "Greater Strength", "0x0482", 5, 0, 0) 
end sub 

sub Shrink() 
  Alchemy("0x0F78", "", "", "Shrink", "0x0388", 10, 0, 0) 
end sub 

sub Invisibility() 
  Alchemy("0x0F91", "", "", "Invisibility", "0x0631", 4, 0, 0) 
end sub 

sub ManaRefresh() 
  Alchemy("0x0F87", "", "", "Mana", "0x09DF", 3, 0, 0) 
end sub 

sub TotalManaRefresh() 
  Alchemy("0x0F87", "", "", "Total Mana", "0x09DF", 6, 0, 0) 
end sub 

sub Clever() 
  Alchemy("0x0F81", "", "", "Clever", "0x0482", 1, 0, 0) 
end sub 

sub GreaterClever() 
  Alchemy("0x0F81", "", "", "Greater Clever", "0x0482", 2, 0, 0) 
end sub 

sub Bless() 
  Alchemy("0x0F81", "0x0F86", "0x0F7B", "Bless", "0x09C5", 1, 1, 1) 
end sub 

sub GreaterBless() 
  Alchemy("0x0F81", "0x0F86", "0x0F7B", "Greater Bless", "0x09C5", 2, 5, 3) 
end sub 

sub Steelskin() 
  Alchemy("0x0F84", "0x0F85", "0x0F86", "Steelskin", "0x0962", 1, 1, 2) 
end sub 

sub Stoneskin() 
  Alchemy("0x0F84", "0x0F85", "0x0F86", "Stoneskin", "0x0964", 1, 1, 1) 
end sub 

sub LavaBomb() 
  Alchemy("0x0F8F", "", "", "Lava Bomb", "0x09DA", 1, 0, 0) 
end sub 

#sub RuneBook() 
#  Alchemy("0x1F4C", "0x0E34", "0x0F80", "0x0F90", "Runebook", "0x0510", 50, 50, 50, 50) 
#end sub 
# 
############################################################################################ 
### Процедуры поддержки ### 
########################### 

Sub Alchemy(Reagent1, Reagent2, Reagent3, Potion, BottleColor, ReagentNumber1, ReagentNumber2, ReagentNumber3) 

var Exit, AllExit=0, CExit=0, k, findnumber 
var BottleInChest=0 
var ReagentNumber=0 
var CurrentBag 
var tmp 

  UO.Exec ('set distance 2') 
  uo.Exec('set finddistance 3') 
  UO.UnSetReceivingContainer() 
  UO.DeleteJournal() 
  UO.CancelMenu() 
  uo.AutoMenu('What sort of potion do you want to', Potion) 

  SetObjects() 
  uo.IgnoreReset() 

  Open('ChestFrom') 
  Open('ChestFrom2') 
  Open('ChestTo') 

  if Reconnect==1 then 
    uo.Exec('exec Reconnect') 
  endif 

  while not uo.Dead() and not (AllExit==1) and not (CExit==1) 
    uo.DeleteJournal() 
    Exit=0 

    if (UseBags==1) then 
      uo.SetReceivingContainer('backpack') 

      CheckLag() 
      uo.print('Выбираем пустой мешок') 
      uo.findtype(BagType,'-1','backpack') 
      wait(100) 
      if uo.findcount()<=0 then 
        while Exit==0 
          uo.findtype(BagType,'-1','ChestFrom') 
          wait(100) 
          if uo.findcount()>0 then 
            CurrentBag=uo.GetSerial('finditem') 
            Open(CurrentBag) 
            uo.findtype('-1','-1',CurrentBag) 
            wait(100) 
            if uo.findcount()>0 then 
              uo.Ignore(CurrentBag,'on') 
            else 
              uo.grab('0',CurrentBag) 
              wait(1000) 
              uo.IgnoreReset() 
              Exit=1 
            endif 
          else 
            uo.print('Пустые мешки закончились, скрипт остановлен') 
            uo.IgnoreReset() 
            Exit=1 
            CExit=1 
          endif 
        wend 
      else 
        CurrentBag=uo.getserial('finditem') 
      endif 

      wait(1000) 
      uo.UnSetReceivingContainer('backpack') 
      Exit=0 
    else 
      CurrentBag=uo.getserial('ChestTo') 
    endif 

    while (Exit==0) and (CExit==0) 
      if UseHeal == 1 then 
        ToHeal() 
      endif 
      if UseHide == 1 then 
        ToHide() 
      endif 

      CheckLag() 
      uo.findtype(BottleType,'0x0000','ChestFrom') 
      wait(100) 
      if (uo.findcount()<=0) or (uo.GetQuantity('finditem')<0) then 
        BottleInChest=0 
      else 
        BottleInChest=uo.GetQuantity('finditem') 
      endif 

      CheckLag() 
      uo.findtype(BottleType,'0x0000',uo.GetSerial('backpack')) 
      wait(100) 
      if (uo.findcount()<=0) or (uo.GetQuantity('finditem')<1) then 
        if (BottleInChest-BottleMinNumber)<BottleNumber then 
          MoveItems(BottleType,'0x0000',str((BottleInChest-BottleMinNumber),0),'ChestFrom',uo.GetSerial('backpack')) 
        else 
          MoveItems(BottleType,'0x0000',str(BottleNumber,0),'ChestFrom',uo.GetSerial('backpack')) 
        endif 
      endif 

      if Reagent1<>'' then 
        CheckLag() 
        uo.findtype(Reagent1,'0x0000',uo.GetSerial('backpack')) 
        wait(100) 
        ReagentNumber = uo.GetQuantity('finditem') 
        if (uo.findcount()<=0) or (ReagentNumber<ReagentNumber1) then 
          MoveItems(Reagent1,'0x0000',str((ReagentNumber1*BottleNumber-ReagentNumber),0),'ChestFrom2',uo.GetSerial('backpack')) 
        endif 
      endif 

      if Reagent2<>'' then 
        CheckLag() 
        uo.findtype(Reagent2,'0x0000',uo.GetSerial('backpack')) 
        wait(100) 
        ReagentNumber = uo.GetQuantity('finditem') 
        if (uo.findcount()<=0) or (ReagentNumber<ReagentNumber2) then 
          MoveItems(Reagent2,'0x0000',str((ReagentNumber2*BottleNumber-ReagentNumber),0),'ChestFrom2',uo.GetSerial('backpack')) 
        endif 
      endif 

      if Reagent3<>'' then 
        CheckLag() 
        uo.findtype(Reagent3,'0x0000',uo.GetSerial('backpack')) 
        wait(100) 
        ReagentNumber = uo.GetQuantity('finditem') 
        if (uo.findcount()<=0) or (ReagentNumber<ReagentNumber3) then 
          MoveItems(Reagent3,'0x0000',str((ReagentNumber3*BottleNumber-ReagentNumber),0),'ChestFrom2',uo.GetSerial('backpack')) 
        endif 
      endif 

      CheckLag() 
      if (uo.Count(BottleType)<=0) or ((BottleInChest-BottleMinNumber)<BottleNumber) then 
        uo.Print('Скрипт работу заканчивает') 
        Exit=1 
        AllExit=1 
      endif 
      if (Reagent1<>'') then 
        if (uo.Count(Reagent1)<ReagentNumber1) and (AllExit<>1) then 
          uo.Print('Скрипт работу заканчивает') 
          Exit=1 
          AllExit=1 
        endif 
      endif 
      if (Reagent2<>'') then 
        if (uo.Count(Reagent2)<ReagentNumber2) and (AllExit<>1) then 
          uo.Print('Скрипт работу заканчивает') 
          Exit=1 
          AllExit=1 
        endif 
      endif 
      if (Reagent3<>'') then 
        if (uo.Count(Reagent3)<ReagentNumber3) and (AllExit<>1) then 
          uo.Print('Скрипт работу заканчивает') 
          Exit=1 
          AllExit=1 
        endif 
      endif 

      if AllExit<>1 then 
        k=0 
        uo.DeleteJournal() 
        CheckLag() 
        uo.UseType(Reagent1,'0x0000') 
        while not UO.InJournal('You put the') and not UO.InJournal('You toss the failed') and (k<200) 
          wait(100) 
          k=k+1 
        wend 
        if (uo.Weight>=MaxWeight) or (uo.Count(BottleType,BottleColor)>=MaxNumber) then 
          Exit=1 
        endif 
      endif 
    wend 

    if CExit==0 then 
      CheckLag() 
      MoveItems(BottleType,BottleColor,'0',uo.GetSerial('backpack'),CurrentBag) 

      if (UseBags==1) then 
        CheckLag() 
        uo.SetReceivingContainer('ChestTo') 
        uo.Grab('0',CurrentBag) 
        wait(1000) 
        uo.UnSetReceivingContainer('ChestTo') 
      endif 
    endif 

    if DoEating==1 then 
      CheckLag() 
      Eating() 
    endif 
    wait(3000) 
  wend 

  uo.Print('Скрипт Alchemy остановлен') 
end sub 

########## 

Sub SetObjects() 

  UO.Print('Выберите сундук-источник с пустыми бутылками, пустыми мешками и едой: ') 
  UO.Exec('addobject ChestFrom') 
  While UO.Targeting() 
    Wait(100) 
  Wend 

  UO.Print('Выберите сундук-источник с реагентами: ') 
  UO.Exec('addobject ChestFrom2') 
  While UO.Targeting() 
    Wait(100) 
  Wend 

  UO.Print('Выберите сундук-приемник: ') 
  UO.Exec('addobject ChestTo') 
  While UO.Targeting() 
    Wait(100) 
  Wend 

end sub # SetObjects 

########## 

Sub CheckLag() 

  while (uo.ObjAtLayer('Bpack')=='') 
    wait(1000) 
  wend 
  if UO.Waiting() then 
    UO.CancelTarget() 
  endif 
  uo.DeleteJournal() 
  uo.Click('backpack') 
  repeat 
    wait(50) 
  until uo.InJournal('backpack') 

end sub # CheckLag 

########## 

Sub MoveItems(ItemType,ItemColor,ItemQuantity,FromContainer,ToContainer) 

var CurrentQuantity, flag=true 

  CheckLag() 
  uo.SetReceivingContainer(ToContainer) 

  uo.FindType(ItemType,ItemColor,FromContainer) 
  wait(100) 
  CurrentQuantity=uo.GetQuantity('finditem') ## кол-во предметов в найденной стопке 

  while (uo.FindCount()>0) and (flag==true) ## если что-то нашли и еще не все нужное переместили 
    CheckLag() 
    if val(ItemQuantity)<=CurrentQuantity then ## если переместить нужно все или меньше, чем в стопке 
      uo.Grab(ItemQuantity,'finditem') ## перемещаем всю стопку или заданное кол-во 
      wait(500) 
      if ItemQuantity=='0' then ## если переместить надо все 
        CheckLag() 
        uo.FindType(ItemType,ItemColor,FromContainer) ## ищем следующую стопку 
        wait(100) 
        CurrentQuantity=uo.GetQuantity('finditem') 
      else ## если уже переместили нужное кол-во - выход из процедуры 
        flag=false 
      endif 
    else ## если переместить нужно не все, но больше, чем в найденной стопке 
      uo.Grab('0','finditem') ## перемещаем всю стопку 
      wait(500) 
      ItemQuantity=str((val(ItemQuantity)-CurrentQuantity),0) ## вычисляем, сколько еще нужно 
      CheckLag() 
      uo.FindType(ItemType,ItemColor,FromContainer) ## ищем следующую стопку 
      wait(100) 
      CurrentQuantity=uo.GetQuantity('finditem') 
    endif 
  wend 

  uo.UnSetReceivingContainer(ToContainer) 

end sub # MovingItems 

########## 

Sub Eating() 

var flag=true 

  MoveItems(FoodType,'-1','10','ChestFrom',uo.GetSerial('backpack')) 

  repeat 
    uo.DeleteJournal() 
    uo.FindType(FoodType,'-1',uo.GetSerial('backpack')) 
    wait(100) 
    if uo.FindCount()>0 then 
      CheckLag() 
      uo.UseType(FoodType) 
      repeat 
        wait(100) 
      until uo.InJournal('full') or uo.InJournal('stuffed') or uo.InJournal('hungry') or uo.InJournal('satiated') or uo.Dead() 
      wait(1000) 
    else 
      flag=false 
    endif 
  until uo.InJournal('too full') or uo.Dead() or (flag==false) 

  MoveItems(FoodType,'-1','0',uo.GetSerial('backpack'),'ChestFrom') 

end sub # Eating 

########## 

Sub Open(Container) 

  CheckLag() 
  uo.UseObject(Container) 
  wait(3000) 

end sub # Open 

########## 

Sub Reconnect() 

var ReconnectTime,rFlag 

  ReconnectTime='0' 
  rFlag=1 
  repeat 
    while (uo.ObjAtLayer('Bpack')=='') 
      if rFlag then 
        ReconnectTime=Time() 
        rFlag=0 
      endif 
      wait(20000) 
      uo.Say('') 
      wait(3000) 
      uo.Say('') 
      wait(3000) 
      uo.Say('') 
      wait(3000) 
      uo.LDblClick(357,164) 
      uo.LClick(616,459) 
      wait(3000) 
    wend 

    wait(3000) 
    if (rFlag==0) and (ReconnectTime<>'0') then 
      uo.TextOpen() 
      uo.TextPrint(ReconnectTime+' | Потеря связи с сервером, повторное подсоединение') 
      rFlag=1 
      ReconnectTime='0' 
    endif 
  until false 

end sub # Reconnect 

########## 

Sub Time() 

var hh,mm,ss,hms,t=str(uo.Time()) 

  if len(t)<=2 then 
    hh="0" 
    mm="0" 
    ss=t 
  endif 

  if len(t)==3 then 
    hh="0" 
    mm=left(t,len(t)-2) 
    ss=right(t,len(t)-1) 
  endif 

  if len(t)==4 then 
    hh="0" 
    mm=left(t,len(t)-2) 
    ss=right(t,len(t)-2) 
  endif 

  if len(t)==5 then 
    hh=left(t,len(t)-4) 
    hms=left(t,len(t)-2) 
    mm=right(hms,len(hms)-1) 
    ss=right(t,len(t)-3) 
  endif 

  if len(t)==6 then 
    hh=left(t,len(t)-4) 
    hms=left(t,len(t)-2) 
    mm=right(hms,len(hms)-2) 
    ss=right(t,len(t)-4) 
  endif 

  return hh+":"+mm+":"+ss 

end sub # Time 

########## 

Sub ToHide() 
  while not uo.Hidden() 
    uo.Print('Пытаемся уйти в хайд...') 
    CheckLag() 
    uo.UseSkill('Hiding') 
    repeat 
      wait(200) 
    until uo.InJournal('have hidden') or uo.InJournal('seem to hide') 
    wait(100) 
  wend 
end sub # ToHide 

########## 

Sub ToHeal() 
  var k 
  while uo.Life < (uo.Str-10) 
    CheckLag() 
    uo.BandageSelf() 
    k=0 
    repeat 
      Wait(100) 
      k=k+1 
    until UO.InJournal("You put") or UO.InJournal("barely help") or UO.InJournal("don't need") or k>300 
  wend 
end sub # ToHeal
держи фулл алхимия.
Dim
Posts: 37
Joined: 2006-03-05 17:13:50

Re: Pomogite so skriptom!

Post by Dim »

Doktor_Kor wrote:

Code: Select all

############################################################################################ 
###                                                                                      ### 
###                                 Alchemy / Алхимия                                    ### 
###                                  Шард Dragon World                                   ### 
###                                        v2.85                                         ### 
###                                                                                      ### 
###                                    Автор  Corwin                                     ### 
###                                                                                      ### 
###                             Тестирование  Euronimus                                  ### 
###                                                                                      ### 
############################################################################################ 

############################################################################################ 
### Глобальные переменные ### 
############################# 

## к скрипту Alchemy 
var BottleType='0x0F0E'  ## - тип пустой бутылки 
var BottleNumber=100     ## - количество бутылок, забираемое из сундука за раз 
var BottleMinNumber=0    ## - минимальное количество бутылок, которое надо оставить в сундуке 
var DoEating=1           ## 1 - включить потребление еды, 0 - отключить 
var FoodType='0x097B'    ## - тип еды, которую будем есть (fish steaks) 
var BagType='0x0E76'     ## - тип мешка для складывания вещей 
var MaxWeight=700        ## - максимальный вес в рюкзаке 
var MaxNumber=500        ## - максимальное количество делаемых вещей в рюкзаке и для заполнения одного мешка 
var Reconnect=0          ## 1 - включить реконнект на сервер, если выкинет, 0 - отключить реконнект 
var UseBags=0            ## 1 - использовать раскладывание делаемых бутылок по мешкам 
var UseHide=0            ## 1 - включить уход в хайд во время крафта, 0 - отключить 
var UseHeal=0            ## 1 - включить лечение в хайд во время крафта, если здоровье падает, 0 - отключить 

############################################################################################ 
### Код скрипта ### 
################### 

# Формат вызова процедуры алхимии для получения нужного снадобья 
# Sub Alchemy('тип реагента 1', 'тип реагента 2', 'тип реагента 3', 'название снадобья в меню крафта', 
#             'цвет бутылки с готовым снадобьем', количество реагента 1 для одного крафта, 
#             количество реагента 2 для одного крафта, количество реагента 3 для одного крафта) 

sub Agility() 
  Alchemy("0x0F7B", "", "", "Agility", "0x0489", 1, 0, 0) 
end sub 

sub GreaterAgility() 
  Alchemy("0x0F7B", "", "", "Greater Agility", "0x0489", 3, 0, 0) 
end sub 

sub LesserCure() 
  Alchemy("0x0F84", "", "", "Lesser Cure", "0x09A6", 1, 0, 0) 
end sub 

sub Cure() 
  Alchemy("0x0F84", "", "", "Cure", "0x09A6", 3, 0, 0) 
end sub 

sub GreaterCure() 
  Alchemy("0x0F84", "", "", "Greater Cure", "0x09A6", 6, 0, 0) 
end sub 

sub LesserHeal() 
  Alchemy("0x0F85", "", "", "Lesser Heal", "0x09BB", 1, 0, 0) 
end sub 

sub Heal() 
  Alchemy("0x0F85", "", "", "Heal", "0x09BB", 3, 0, 0) 
end sub 

sub GreaterHeal() 
  Alchemy("0x0F85", "", "", "Greater Heal", "0x09BB", 7, 0, 0) 
end sub 

sub NightSight() 
  Alchemy("0x0F8D", "", "", "Nightsight", "0x0B9D", 1, 0, 0) 
end sub 

sub LesserPoison() 
  Alchemy("0x0F88", "", "", "Lesser Poison", "0x0998", 1, 0, 0) 
end sub 

sub Poison() 
  Alchemy("0x0F88", "", "", "Poison", "0x0998", 2, 0, 0) 
end sub 

sub GreaterPoison() 
  Alchemy("0x0F88", "", "", "Greater Poison", "0x0998", 3, 0, 0) 
end sub 

sub DeadlyPoison() 
  Alchemy("0x0F88", "", "", "Deadly Poison", "0x0998", 8, 0, 0) 
end sub 

sub Refresh() 
  Alchemy("0x0F7A", "", "", "Refresh", "0x0997", 1, 0, 0) 
end sub 

sub TotalRefresh() 
  Alchemy("0x0F7A", "", "", "Total Refresh", "0x0997", 5, 0, 0) 
end sub 

sub Strength() 
  Alchemy("0x0F86", "", "", "Strength", "0x0482", 2, 0, 0) 
end sub 

sub GreaterStrength() 
  Alchemy("0x0F86", "", "", "Greater Strength", "0x0482", 5, 0, 0) 
end sub 

sub Shrink() 
  Alchemy("0x0F78", "", "", "Shrink", "0x0388", 10, 0, 0) 
end sub 

sub Invisibility() 
  Alchemy("0x0F91", "", "", "Invisibility", "0x0631", 4, 0, 0) 
end sub 

sub ManaRefresh() 
  Alchemy("0x0F87", "", "", "Mana", "0x09DF", 3, 0, 0) 
end sub 

sub TotalManaRefresh() 
  Alchemy("0x0F87", "", "", "Total Mana", "0x09DF", 6, 0, 0) 
end sub 

sub Clever() 
  Alchemy("0x0F81", "", "", "Clever", "0x0482", 1, 0, 0) 
end sub 

sub GreaterClever() 
  Alchemy("0x0F81", "", "", "Greater Clever", "0x0482", 2, 0, 0) 
end sub 

sub Bless() 
  Alchemy("0x0F81", "0x0F86", "0x0F7B", "Bless", "0x09C5", 1, 1, 1) 
end sub 

sub GreaterBless() 
  Alchemy("0x0F81", "0x0F86", "0x0F7B", "Greater Bless", "0x09C5", 2, 5, 3) 
end sub 

sub Steelskin() 
  Alchemy("0x0F84", "0x0F85", "0x0F86", "Steelskin", "0x0962", 1, 1, 2) 
end sub 

sub Stoneskin() 
  Alchemy("0x0F84", "0x0F85", "0x0F86", "Stoneskin", "0x0964", 1, 1, 1) 
end sub 

sub LavaBomb() 
  Alchemy("0x0F8F", "", "", "Lava Bomb", "0x09DA", 1, 0, 0) 
end sub 

#sub RuneBook() 
#  Alchemy("0x1F4C", "0x0E34", "0x0F80", "0x0F90", "Runebook", "0x0510", 50, 50, 50, 50) 
#end sub 
# 
############################################################################################ 
### Процедуры поддержки ### 
########################### 

Sub Alchemy(Reagent1, Reagent2, Reagent3, Potion, BottleColor, ReagentNumber1, ReagentNumber2, ReagentNumber3) 

var Exit, AllExit=0, CExit=0, k, findnumber 
var BottleInChest=0 
var ReagentNumber=0 
var CurrentBag 
var tmp 

  UO.Exec ('set distance 2') 
  uo.Exec('set finddistance 3') 
  UO.UnSetReceivingContainer() 
  UO.DeleteJournal() 
  UO.CancelMenu() 
  uo.AutoMenu('What sort of potion do you want to', Potion) 

  SetObjects() 
  uo.IgnoreReset() 

  Open('ChestFrom') 
  Open('ChestFrom2') 
  Open('ChestTo') 

  if Reconnect==1 then 
    uo.Exec('exec Reconnect') 
  endif 

  while not uo.Dead() and not (AllExit==1) and not (CExit==1) 
    uo.DeleteJournal() 
    Exit=0 

    if (UseBags==1) then 
      uo.SetReceivingContainer('backpack') 

      CheckLag() 
      uo.print('Выбираем пустой мешок') 
      uo.findtype(BagType,'-1','backpack') 
      wait(100) 
      if uo.findcount()<=0 then 
        while Exit==0 
          uo.findtype(BagType,'-1','ChestFrom') 
          wait(100) 
          if uo.findcount()>0 then 
            CurrentBag=uo.GetSerial('finditem') 
            Open(CurrentBag) 
            uo.findtype('-1','-1',CurrentBag) 
            wait(100) 
            if uo.findcount()>0 then 
              uo.Ignore(CurrentBag,'on') 
            else 
              uo.grab('0',CurrentBag) 
              wait(1000) 
              uo.IgnoreReset() 
              Exit=1 
            endif 
          else 
            uo.print('Пустые мешки закончились, скрипт остановлен') 
            uo.IgnoreReset() 
            Exit=1 
            CExit=1 
          endif 
        wend 
      else 
        CurrentBag=uo.getserial('finditem') 
      endif 

      wait(1000) 
      uo.UnSetReceivingContainer('backpack') 
      Exit=0 
    else 
      CurrentBag=uo.getserial('ChestTo') 
    endif 

    while (Exit==0) and (CExit==0) 
      if UseHeal == 1 then 
        ToHeal() 
      endif 
      if UseHide == 1 then 
        ToHide() 
      endif 

      CheckLag() 
      uo.findtype(BottleType,'0x0000','ChestFrom') 
      wait(100) 
      if (uo.findcount()<=0) or (uo.GetQuantity('finditem')<0) then 
        BottleInChest=0 
      else 
        BottleInChest=uo.GetQuantity('finditem') 
      endif 

      CheckLag() 
      uo.findtype(BottleType,'0x0000',uo.GetSerial('backpack')) 
      wait(100) 
      if (uo.findcount()<=0) or (uo.GetQuantity('finditem')<1) then 
        if (BottleInChest-BottleMinNumber)<BottleNumber then 
          MoveItems(BottleType,'0x0000',str((BottleInChest-BottleMinNumber),0),'ChestFrom',uo.GetSerial('backpack')) 
        else 
          MoveItems(BottleType,'0x0000',str(BottleNumber,0),'ChestFrom',uo.GetSerial('backpack')) 
        endif 
      endif 

      if Reagent1<>'' then 
        CheckLag() 
        uo.findtype(Reagent1,'0x0000',uo.GetSerial('backpack')) 
        wait(100) 
        ReagentNumber = uo.GetQuantity('finditem') 
        if (uo.findcount()<=0) or (ReagentNumber<ReagentNumber1) then 
          MoveItems(Reagent1,'0x0000',str((ReagentNumber1*BottleNumber-ReagentNumber),0),'ChestFrom2',uo.GetSerial('backpack')) 
        endif 
      endif 

      if Reagent2<>'' then 
        CheckLag() 
        uo.findtype(Reagent2,'0x0000',uo.GetSerial('backpack')) 
        wait(100) 
        ReagentNumber = uo.GetQuantity('finditem') 
        if (uo.findcount()<=0) or (ReagentNumber<ReagentNumber2) then 
          MoveItems(Reagent2,'0x0000',str((ReagentNumber2*BottleNumber-ReagentNumber),0),'ChestFrom2',uo.GetSerial('backpack')) 
        endif 
      endif 

      if Reagent3<>'' then 
        CheckLag() 
        uo.findtype(Reagent3,'0x0000',uo.GetSerial('backpack')) 
        wait(100) 
        ReagentNumber = uo.GetQuantity('finditem') 
        if (uo.findcount()<=0) or (ReagentNumber<ReagentNumber3) then 
          MoveItems(Reagent3,'0x0000',str((ReagentNumber3*BottleNumber-ReagentNumber),0),'ChestFrom2',uo.GetSerial('backpack')) 
        endif 
      endif 

      CheckLag() 
      if (uo.Count(BottleType)<=0) or ((BottleInChest-BottleMinNumber)<BottleNumber) then 
        uo.Print('Скрипт работу заканчивает') 
        Exit=1 
        AllExit=1 
      endif 
      if (Reagent1<>'') then 
        if (uo.Count(Reagent1)<ReagentNumber1) and (AllExit<>1) then 
          uo.Print('Скрипт работу заканчивает') 
          Exit=1 
          AllExit=1 
        endif 
      endif 
      if (Reagent2<>'') then 
        if (uo.Count(Reagent2)<ReagentNumber2) and (AllExit<>1) then 
          uo.Print('Скрипт работу заканчивает') 
          Exit=1 
          AllExit=1 
        endif 
      endif 
      if (Reagent3<>'') then 
        if (uo.Count(Reagent3)<ReagentNumber3) and (AllExit<>1) then 
          uo.Print('Скрипт работу заканчивает') 
          Exit=1 
          AllExit=1 
        endif 
      endif 

      if AllExit<>1 then 
        k=0 
        uo.DeleteJournal() 
        CheckLag() 
        uo.UseType(Reagent1,'0x0000') 
        while not UO.InJournal('You put the') and not UO.InJournal('You toss the failed') and (k<200) 
          wait(100) 
          k=k+1 
        wend 
        if (uo.Weight>=MaxWeight) or (uo.Count(BottleType,BottleColor)>=MaxNumber) then 
          Exit=1 
        endif 
      endif 
    wend 

    if CExit==0 then 
      CheckLag() 
      MoveItems(BottleType,BottleColor,'0',uo.GetSerial('backpack'),CurrentBag) 

      if (UseBags==1) then 
        CheckLag() 
        uo.SetReceivingContainer('ChestTo') 
        uo.Grab('0',CurrentBag) 
        wait(1000) 
        uo.UnSetReceivingContainer('ChestTo') 
      endif 
    endif 

    if DoEating==1 then 
      CheckLag() 
      Eating() 
    endif 
    wait(3000) 
  wend 

  uo.Print('Скрипт Alchemy остановлен') 
end sub 

########## 

Sub SetObjects() 

  UO.Print('Выберите сундук-источник с пустыми бутылками, пустыми мешками и едой: ') 
  UO.Exec('addobject ChestFrom') 
  While UO.Targeting() 
    Wait(100) 
  Wend 

  UO.Print('Выберите сундук-источник с реагентами: ') 
  UO.Exec('addobject ChestFrom2') 
  While UO.Targeting() 
    Wait(100) 
  Wend 

  UO.Print('Выберите сундук-приемник: ') 
  UO.Exec('addobject ChestTo') 
  While UO.Targeting() 
    Wait(100) 
  Wend 

end sub # SetObjects 

########## 

Sub CheckLag() 

  while (uo.ObjAtLayer('Bpack')=='') 
    wait(1000) 
  wend 
  if UO.Waiting() then 
    UO.CancelTarget() 
  endif 
  uo.DeleteJournal() 
  uo.Click('backpack') 
  repeat 
    wait(50) 
  until uo.InJournal('backpack') 

end sub # CheckLag 

########## 

Sub MoveItems(ItemType,ItemColor,ItemQuantity,FromContainer,ToContainer) 

var CurrentQuantity, flag=true 

  CheckLag() 
  uo.SetReceivingContainer(ToContainer) 

  uo.FindType(ItemType,ItemColor,FromContainer) 
  wait(100) 
  CurrentQuantity=uo.GetQuantity('finditem') ## кол-во предметов в найденной стопке 

  while (uo.FindCount()>0) and (flag==true) ## если что-то нашли и еще не все нужное переместили 
    CheckLag() 
    if val(ItemQuantity)<=CurrentQuantity then ## если переместить нужно все или меньше, чем в стопке 
      uo.Grab(ItemQuantity,'finditem') ## перемещаем всю стопку или заданное кол-во 
      wait(500) 
      if ItemQuantity=='0' then ## если переместить надо все 
        CheckLag() 
        uo.FindType(ItemType,ItemColor,FromContainer) ## ищем следующую стопку 
        wait(100) 
        CurrentQuantity=uo.GetQuantity('finditem') 
      else ## если уже переместили нужное кол-во - выход из процедуры 
        flag=false 
      endif 
    else ## если переместить нужно не все, но больше, чем в найденной стопке 
      uo.Grab('0','finditem') ## перемещаем всю стопку 
      wait(500) 
      ItemQuantity=str((val(ItemQuantity)-CurrentQuantity),0) ## вычисляем, сколько еще нужно 
      CheckLag() 
      uo.FindType(ItemType,ItemColor,FromContainer) ## ищем следующую стопку 
      wait(100) 
      CurrentQuantity=uo.GetQuantity('finditem') 
    endif 
  wend 

  uo.UnSetReceivingContainer(ToContainer) 

end sub # MovingItems 

########## 

Sub Eating() 

var flag=true 

  MoveItems(FoodType,'-1','10','ChestFrom',uo.GetSerial('backpack')) 

  repeat 
    uo.DeleteJournal() 
    uo.FindType(FoodType,'-1',uo.GetSerial('backpack')) 
    wait(100) 
    if uo.FindCount()>0 then 
      CheckLag() 
      uo.UseType(FoodType) 
      repeat 
        wait(100) 
      until uo.InJournal('full') or uo.InJournal('stuffed') or uo.InJournal('hungry') or uo.InJournal('satiated') or uo.Dead() 
      wait(1000) 
    else 
      flag=false 
    endif 
  until uo.InJournal('too full') or uo.Dead() or (flag==false) 

  MoveItems(FoodType,'-1','0',uo.GetSerial('backpack'),'ChestFrom') 

end sub # Eating 

########## 

Sub Open(Container) 

  CheckLag() 
  uo.UseObject(Container) 
  wait(3000) 

end sub # Open 

########## 

Sub Reconnect() 

var ReconnectTime,rFlag 

  ReconnectTime='0' 
  rFlag=1 
  repeat 
    while (uo.ObjAtLayer('Bpack')=='') 
      if rFlag then 
        ReconnectTime=Time() 
        rFlag=0 
      endif 
      wait(20000) 
      uo.Say('') 
      wait(3000) 
      uo.Say('') 
      wait(3000) 
      uo.Say('') 
      wait(3000) 
      uo.LDblClick(357,164) 
      uo.LClick(616,459) 
      wait(3000) 
    wend 

    wait(3000) 
    if (rFlag==0) and (ReconnectTime<>'0') then 
      uo.TextOpen() 
      uo.TextPrint(ReconnectTime+' | Потеря связи с сервером, повторное подсоединение') 
      rFlag=1 
      ReconnectTime='0' 
    endif 
  until false 

end sub # Reconnect 

########## 

Sub Time() 

var hh,mm,ss,hms,t=str(uo.Time()) 

  if len(t)<=2 then 
    hh="0" 
    mm="0" 
    ss=t 
  endif 

  if len(t)==3 then 
    hh="0" 
    mm=left(t,len(t)-2) 
    ss=right(t,len(t)-1) 
  endif 

  if len(t)==4 then 
    hh="0" 
    mm=left(t,len(t)-2) 
    ss=right(t,len(t)-2) 
  endif 

  if len(t)==5 then 
    hh=left(t,len(t)-4) 
    hms=left(t,len(t)-2) 
    mm=right(hms,len(hms)-1) 
    ss=right(t,len(t)-3) 
  endif 

  if len(t)==6 then 
    hh=left(t,len(t)-4) 
    hms=left(t,len(t)-2) 
    mm=right(hms,len(hms)-2) 
    ss=right(t,len(t)-4) 
  endif 

  return hh+":"+mm+":"+ss 

end sub # Time 

########## 

Sub ToHide() 
  while not uo.Hidden() 
    uo.Print('Пытаемся уйти в хайд...') 
    CheckLag() 
    uo.UseSkill('Hiding') 
    repeat 
      wait(200) 
    until uo.InJournal('have hidden') or uo.InJournal('seem to hide') 
    wait(100) 
  wend 
end sub # ToHide 

########## 

Sub ToHeal() 
  var k 
  while uo.Life < (uo.Str-10) 
    CheckLag() 
    uo.BandageSelf() 
    k=0 
    repeat 
      Wait(100) 
      k=k+1 
    until UO.InJournal("You put") or UO.InJournal("barely help") or UO.InJournal("don't need") or k>300 
  wend 
end sub # ToHeal
держи фулл алхимия.


I snova BOLJ6OE SPOSIBO!!!!!!!!!!!!!!!!!!!!!!!
discon
Posts: 34
Joined: 2006-08-09 20:33:57

Post by discon »

Народ подскажите, чего за фигня??? я запускаю этот скрипт делать пойсоны а он делает лессер пойсоны?! Помогите плиз
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

НА дрв вроде бывает такой глюк частенько. Используй в меню выбора цифру с порядком, покоторому стоит poison.

'(2)' или (2) вроде.
discon
Posts: 34
Joined: 2006-08-09 20:33:57

Post by discon »

You Must Die wrote:НА дрв вроде бывает такой глюк частенько. Используй в меню выбора цифру с порядком, покоторому стоит poison.

'(2)' или (2) вроде.
Можно поточнее, что где и как использовать?
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Смотир в факе или уроке по меню
discon
Posts: 34
Joined: 2006-08-09 20:33:57

Post by discon »

You Must Die wrote:Смотир в факе или уроке по меню
Люди кто умеет сделайте пожалуйста чтоб работало на ДРВ. ПЛИЗ
Serpent
Posts: 12
Joined: 2005-04-08 02:17:27
Location: Новороссийск

Post by Serpent »

хелп в помошь!
Post Reply